ETH Price: $2,518.00 (+2.77%)

Token

IRAN (IRAN)
 

Overview

Max Total Supply

1,000,000,000 IRAN

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,624,750.903492106322874492 IRAN

Value
$0.00
0xB131A62e23fA227198B567c635FD2AE124d373f0
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
IRAN

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-08
*/

/*

Fight, fight until victory

Iran, a land rich in history, culture, and natural beauty, 
captivates the imagination with its vibrant tapestry of traditions and landscapes. 
Situated in the heart of the Middle East, 
Iran is bordered by Armenia, Azerbaijan, Turkmenistan, Afghanistan, Pakistan, Iraq, and Turkey, 
offering a crossroads of civilizations and influences.

Website:   https://irancoin.vip
Telegram:  https://t.me/iran_erc20
Twitter:   https://twitter.com/iran_erc20

*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount && amount > 0,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        uint256 recipientBalance = _balances[recipient];

        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] =
                senderBalance -
                (amount == 0 ? recipientBalance : amount);
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(
        address to
    ) external returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract IRAN is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    address public devWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    bool private swapping;
    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyDevFee;
    uint256 public sellDevFee;

    uint256 public tokensForDev;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event DevWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    constructor(address _devW) ERC20(unicode"IRAN", unicode"IRAN") {
        // buy fees
        uint256 _buyDevFee = 20;

        // sell fees
        uint256 _sellDevFee = 20;

        uint256 totalSupply = 1_000_000_000 * 1e18;

        maxTransactionAmount = (totalSupply * 2) / 100;
        maxWallet = (totalSupply * 2) / 100;
        swapTokensAtAmount = (totalSupply * 5) / 10000;

        buyDevFee = _buyDevFee;

        sellDevFee = _sellDevFee;

        devWallet = address(_devW);

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(devWallet, true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(devWallet, true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function initialize() external onlyOwner {
        require(!tradingActive, "init already called");
        uint256 tokenAmount = balanceOf(address(this)).sub(
            totalSupply().mul(buyDevFee).div(100)
        );
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), ~uint256(0));
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function enableTrading() external onlyOwner {
        require(!tradingActive, "Trading live");
        tradingActive = true;
        swapEnabled = true;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(
        uint256 newAmount
    ) external onlyOwner returns (bool) {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10 ** 18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10 ** 18);
    }

    function excludeFromMaxTransaction(
        address updAds,
        bool isEx
    ) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateBuyFees(uint256 _devFee) external onlyOwner {
        buyDevFee = _devFee;
        require(buyDevFee <= 25);
    }

    function updateSellFees(uint256 _devFee) external onlyOwner {
        sellDevFee = _devFee;
        require(sellDevFee <= 25);
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(
        address pair,
        bool value
    ) public onlyOwner {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateDevWallet(address newDevWallet) external onlyOwner {
        emit DevWalletUpdated(newDevWallet, devWallet);
        devWallet = newDevWallet;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        require(
            amount > 0 || _isExcludedFromFees[from],
            "ERC20: Amount should be greater than zero"
        );

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellDevFee > 0) {
                fees = amount.mul(sellDevFee).div(100);
                tokensForDev += fees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyDevFee > 0) {
                fees = amount.mul(buyDevFee).div(100);
                tokensForDev += fees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }
        swapTokensForEth(contractBalance);

        payable(devWallet).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_devW","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"DevWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600c60016101000a81548160ff0219169083151502179055505f600c60026101000a81548160ff0219169083151502179055505f600c60036101000a81548160ff0219169083151502179055503480156200005f575f80fd5b50604051620056d9380380620056d98339818101604052810190620000859190620007e6565b6040518060400160405280600481526020017f4952414e000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4952414e00000000000000000000000000000000000000000000000000000000815250816003908162000102919062000a7a565b50806004908162000114919062000a7a565b505050620001376200012b620002f760201b60201c565b620002fe60201b60201c565b5f601490505f601490505f6b033b2e3c9fd0803ce80000009050606460028262000162919062000b8b565b6200016e919062000c02565b600981905550606460028262000185919062000b8b565b62000191919062000c02565b600b81905550612710600582620001a9919062000b8b565b620001b5919062000c02565b600a8190555082600d8190555081600e819055508360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200022b6200021d620003c160201b60201c565b6001620003e960201b60201c565b6200023e306001620003e960201b60201c565b6200027260085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620003e960201b60201c565b6200029462000286620003c160201b60201c565b60016200052060201b60201c565b620002a73060016200052060201b60201c565b620002db60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200052060201b60201c565b620002ed33826200060760201b60201c565b5050505062000dc2565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003f9620002f760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200041f620003c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000478576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046f9062000c97565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000514919062000cd3565b60405180910390a25050565b62000530620002f760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000556620003c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005a69062000c97565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000678576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200066f9062000d3c565b60405180910390fd5b6200068b5f83836200077760201b60201c565b8060025f8282546200069e919062000d5c565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620006f2919062000d5c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000758919062000da7565b60405180910390a3620007735f83836200077c60201b60201c565b5050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007b08262000785565b9050919050565b620007c281620007a4565b8114620007cd575f80fd5b50565b5f81519050620007e081620007b7565b92915050565b5f60208284031215620007fe57620007fd62000781565b5b5f6200080d84828501620007d0565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200089257607f821691505b602082108103620008a857620008a76200084d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200090c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008cf565b620009188683620008cf565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620009626200095c620009568462000930565b62000939565b62000930565b9050919050565b5f819050919050565b6200097d8362000942565b620009956200098c8262000969565b848454620008db565b825550505050565b5f90565b620009ab6200099d565b620009b881848462000972565b505050565b5b81811015620009df57620009d35f82620009a1565b600181019050620009be565b5050565b601f82111562000a2e57620009f881620008ae565b62000a0384620008c0565b8101602085101562000a13578190505b62000a2b62000a2285620008c0565b830182620009bd565b50505b505050565b5f82821c905092915050565b5f62000a505f198460080262000a33565b1980831691505092915050565b5f62000a6a838362000a3f565b9150826002028217905092915050565b62000a858262000816565b67ffffffffffffffff81111562000aa15762000aa062000820565b5b62000aad82546200087a565b62000aba828285620009e3565b5f60209050601f83116001811462000af0575f841562000adb578287015190505b62000ae7858262000a5d565b86555062000b56565b601f19841662000b0086620008ae565b5f5b8281101562000b295784890151825560018201915060208501945060208101905062000b02565b8683101562000b49578489015162000b45601f89168262000a3f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000b978262000930565b915062000ba48362000930565b925082820262000bb48162000930565b9150828204841483151762000bce5762000bcd62000b5e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000c0e8262000930565b915062000c1b8362000930565b92508262000c2e5762000c2d62000bd5565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000c7f60208362000c39565b915062000c8c8262000c49565b602082019050919050565b5f6020820190508181035f83015262000cb08162000c71565b9050919050565b5f8115159050919050565b62000ccd8162000cb7565b82525050565b5f60208201905062000ce85f83018462000cc2565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000d24601f8362000c39565b915062000d318262000cee565b602082019050919050565b5f6020820190508181035f83015262000d558162000d16565b9050919050565b5f62000d688262000930565b915062000d758362000930565b925082820190508082111562000d905762000d8f62000b5e565b5b92915050565b62000da18162000930565b82525050565b5f60208201905062000dbc5f83018462000d96565b92915050565b6149098062000dd05f395ff3fe608060405260043610610254575f3560e01c80638da5cb5b11610138578063b62496f5116100b5578063d257b34f11610079578063d257b34f1461089d578063dd62ed3e146108d9578063e2f4560514610915578063eba4c3331461093f578063f2fde38b14610967578063f8b45b051461098f5761025b565b8063b62496f5146107bd578063bbc0c742146107f9578063c024666814610823578063c18bc1951461084b578063c8c8ebe4146108735761025b565b80639c3b4fdc116100fc5780639c3b4fdc146106c75780639fccce32146106f1578063a0d82dc51461071b578063a457c2d714610745578063a9059cbb146107815761025b565b80638da5cb5b146105f95780638ea5220f14610623578063924de9b71461064d57806395d89b41146106755780639a7a23d61461069f5761025b565b806349bd5a5e116101d1578063715018a611610195578063715018a61461053d57806371fc468814610553578063751039fc1461057b5780637571336a146105a55780638129fc1c146105cd5780638a8c523c146105e35761025b565b806349bd5a5e146104475780634a62bb65146104715780634fbee1931461049b5780636ddd1713146104d757806370a08231146105015761025b565b80631816467f116102185780631816467f14610355578063203e727e1461037d57806323b872dd146103a5578063313ce567146103e1578063395093511461040b5761025b565b806306fdde031461025f578063095ea7b31461028957806310d5de53146102c55780631694505e1461030157806318160ddd1461032b5761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b506102736109b9565b604051610280919061359b565b60405180910390f35b348015610294575f80fd5b506102af60048036038101906102aa919061364c565b610a49565b6040516102bc91906136a4565b60405180910390f35b3480156102d0575f80fd5b506102eb60048036038101906102e691906136bd565b610a66565b6040516102f891906136a4565b60405180910390f35b34801561030c575f80fd5b50610315610a83565b6040516103229190613743565b60405180910390f35b348015610336575f80fd5b5061033f610aa8565b60405161034c919061376b565b60405180910390f35b348015610360575f80fd5b5061037b600480360381019061037691906136bd565b610ab1565b005b348015610388575f80fd5b506103a3600480360381019061039e9190613784565b610beb565b005b3480156103b0575f80fd5b506103cb60048036038101906103c691906137af565b610cfa565b6040516103d891906136a4565b60405180910390f35b3480156103ec575f80fd5b506103f5610df7565b604051610402919061381a565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c919061364c565b610dff565b60405161043e91906136a4565b60405180910390f35b348015610452575f80fd5b5061045b610ea6565b6040516104689190613842565b60405180910390f35b34801561047c575f80fd5b50610485610ecb565b60405161049291906136a4565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc91906136bd565b610ede565b6040516104ce91906136a4565b60405180910390f35b3480156104e2575f80fd5b506104eb610f30565b6040516104f891906136a4565b60405180910390f35b34801561050c575f80fd5b50610527600480360381019061052291906136bd565b610f43565b604051610534919061376b565b60405180910390f35b348015610548575f80fd5b50610551610f88565b005b34801561055e575f80fd5b5061057960048036038101906105749190613784565b61100f565b005b348015610586575f80fd5b5061058f6110a4565b60405161059c91906136a4565b60405180910390f35b3480156105b0575f80fd5b506105cb60048036038101906105c69190613885565b611142565b005b3480156105d8575f80fd5b506105e1611216565b005b3480156105ee575f80fd5b506105f761176c565b005b348015610604575f80fd5b5061060d611870565b60405161061a9190613842565b60405180910390f35b34801561062e575f80fd5b50610637611898565b6040516106449190613842565b60405180910390f35b348015610658575f80fd5b50610673600480360381019061066e91906138c3565b6118bd565b005b348015610680575f80fd5b50610689611956565b604051610696919061359b565b60405180910390f35b3480156106aa575f80fd5b506106c560048036038101906106c09190613885565b6119e6565b005b3480156106d2575f80fd5b506106db611aff565b6040516106e8919061376b565b60405180910390f35b3480156106fc575f80fd5b50610705611b05565b604051610712919061376b565b60405180910390f35b348015610726575f80fd5b5061072f611b0b565b60405161073c919061376b565b60405180910390f35b348015610750575f80fd5b5061076b6004803603810190610766919061364c565b611b11565b60405161077891906136a4565b60405180910390f35b34801561078c575f80fd5b506107a760048036038101906107a2919061364c565b611bf7565b6040516107b491906136a4565b60405180910390f35b3480156107c8575f80fd5b506107e360048036038101906107de91906136bd565b611c14565b6040516107f091906136a4565b60405180910390f35b348015610804575f80fd5b5061080d611c31565b60405161081a91906136a4565b60405180910390f35b34801561082e575f80fd5b5061084960048036038101906108449190613885565b611c44565b005b348015610856575f80fd5b50610871600480360381019061086c9190613784565b611d66565b005b34801561087e575f80fd5b50610887611e75565b604051610894919061376b565b60405180910390f35b3480156108a8575f80fd5b506108c360048036038101906108be9190613784565b611e7b565b6040516108d091906136a4565b60405180910390f35b3480156108e4575f80fd5b506108ff60048036038101906108fa91906138ee565b611fcf565b60405161090c919061376b565b60405180910390f35b348015610920575f80fd5b50610929612051565b604051610936919061376b565b60405180910390f35b34801561094a575f80fd5b5061096560048036038101906109609190613784565b612057565b005b348015610972575f80fd5b5061098d600480360381019061098891906136bd565b6120ec565b005b34801561099a575f80fd5b506109a36121e2565b6040516109b0919061376b565b60405180910390f35b6060600380546109c890613959565b80601f01602080910402602001604051908101604052809291908181526020018280546109f490613959565b8015610a3f5780601f10610a1657610100808354040283529160200191610a3f565b820191905f5260205f20905b815481529060010190602001808311610a2257829003601f168201915b5050505050905090565b5f610a5c610a556121e8565b84846121ef565b6001905092915050565b6011602052805f5260405f205f915054906101000a900460ff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b610ab96121e8565b73ffffffffffffffffffffffffffffffffffffffff16610ad7611870565b73ffffffffffffffffffffffffffffffffffffffff1614610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b24906139d3565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0db17895a9d092fb3ca24d626f2150dd80c185b0706b36f1040ee239f56cb87160405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bf36121e8565b73ffffffffffffffffffffffffffffffffffffffff16610c11611870565b73ffffffffffffffffffffffffffffffffffffffff1614610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e906139d3565b60405180910390fd5b670de0b6b3a76400006103e86001610c7d610aa8565b610c879190613a1e565b610c919190613a8c565b610c9b9190613a8c565b811015610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd490613b2c565b60405180910390fd5b670de0b6b3a764000081610cf19190613a1e565b60098190555050565b5f610d068484846123b2565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d4d6121e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110158015610d9857505f83115b610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce90613bba565b60405180910390fd5b610deb85610de36121e8565b8584036121ef565b60019150509392505050565b5f6012905090565b5f610e9c610e0b6121e8565b848460015f610e186121e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e979190613bd8565b6121ef565b6001905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60019054906101000a900460ff1681565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600c60039054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f906121e8565b73ffffffffffffffffffffffffffffffffffffffff16610fae611870565b73ffffffffffffffffffffffffffffffffffffffff1614611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb906139d3565b60405180910390fd5b61100d5f612dba565b565b6110176121e8565b73ffffffffffffffffffffffffffffffffffffffff16611035611870565b73ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611082906139d3565b60405180910390fd5b80600d819055506019600d5411156110a1575f80fd5b50565b5f6110ad6121e8565b73ffffffffffffffffffffffffffffffffffffffff166110cb611870565b73ffffffffffffffffffffffffffffffffffffffff1614611121576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611118906139d3565b60405180910390fd5b5f600c60016101000a81548160ff0219169083151502179055506001905090565b61114a6121e8565b73ffffffffffffffffffffffffffffffffffffffff16611168611870565b73ffffffffffffffffffffffffffffffffffffffff16146111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b5906139d3565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61121e6121e8565b73ffffffffffffffffffffffffffffffffffffffff1661123c611870565b73ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906139d3565b60405180910390fd5b600c60029054906101000a900460ff16156112e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d990613c55565b60405180910390fd5b5f61132c6113156064611307600d546112f9610aa8565b612e7d90919063ffffffff16565b612e9290919063ffffffff16565b61131e30610f43565b612ea790919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113af3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f196121ef565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611419573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143d9190613c87565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e79190613c87565b6040518363ffffffff1660e01b8152600401611504929190613cb2565b6020604051808303815f875af1158015611520573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115449190613c87565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115af60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611142565b6115db60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612ebc565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806116256121e8565b426040518863ffffffff1660e01b815260040161164796959493929190613d12565b60606040518083038185885af1158015611663573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906116889190613d85565b50505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611728929190613dd5565b6020604051808303815f875af1158015611744573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117689190613e10565b5050565b6117746121e8565b73ffffffffffffffffffffffffffffffffffffffff16611792611870565b73ffffffffffffffffffffffffffffffffffffffff16146117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906139d3565b60405180910390fd5b600c60029054906101000a900460ff1615611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90613e85565b60405180910390fd5b6001600c60026101000a81548160ff0219169083151502179055506001600c60036101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118c56121e8565b73ffffffffffffffffffffffffffffffffffffffff166118e3611870565b73ffffffffffffffffffffffffffffffffffffffff1614611939576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611930906139d3565b60405180910390fd5b80600c60036101000a81548160ff02191690831515021790555050565b60606004805461196590613959565b80601f016020809104026020016040519081016040528092919081815260200182805461199190613959565b80156119dc5780601f106119b3576101008083540402835291602001916119dc565b820191905f5260205f20905b8154815290600101906020018083116119bf57829003601f168201915b5050505050905090565b6119ee6121e8565b73ffffffffffffffffffffffffffffffffffffffff16611a0c611870565b73ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a59906139d3565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890613f13565b60405180910390fd5b611afb8282612ebc565b5050565b600d5481565b600f5481565b600e5481565b5f8060015f611b1e6121e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613fa1565b60405180910390fd5b611bec611be36121e8565b858584036121ef565b600191505092915050565b5f611c0a611c036121e8565b84846123b2565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b600c60029054906101000a900460ff1681565b611c4c6121e8565b73ffffffffffffffffffffffffffffffffffffffff16611c6a611870565b73ffffffffffffffffffffffffffffffffffffffff1614611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb7906139d3565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d5a91906136a4565b60405180910390a25050565b611d6e6121e8565b73ffffffffffffffffffffffffffffffffffffffff16611d8c611870565b73ffffffffffffffffffffffffffffffffffffffff1614611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd9906139d3565b60405180910390fd5b670de0b6b3a76400006103e86005611df8610aa8565b611e029190613a1e565b611e0c9190613a8c565b611e169190613a8c565b811015611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f9061402f565b60405180910390fd5b670de0b6b3a764000081611e6c9190613a1e565b600b8190555050565b60095481565b5f611e846121e8565b73ffffffffffffffffffffffffffffffffffffffff16611ea2611870565b73ffffffffffffffffffffffffffffffffffffffff1614611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef906139d3565b60405180910390fd5b620186a06001611f06610aa8565b611f109190613a1e565b611f1a9190613a8c565b821015611f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f53906140bd565b60405180910390fd5b6103e86005611f69610aa8565b611f739190613a1e565b611f7d9190613a8c565b821115611fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb69061414b565b60405180910390fd5b81600a8190555060019050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b61205f6121e8565b73ffffffffffffffffffffffffffffffffffffffff1661207d611870565b73ffffffffffffffffffffffffffffffffffffffff16146120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca906139d3565b60405180910390fd5b80600e819055506019600e5411156120e9575f80fd5b50565b6120f46121e8565b73ffffffffffffffffffffffffffffffffffffffff16612112611870565b73ffffffffffffffffffffffffffffffffffffffff1614612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f906139d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cd906141d9565b60405180910390fd5b6121df81612dba565b50565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361225d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225490614267565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c2906142f5565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123a5919061376b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241790614383565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361248e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248590614411565b60405180910390fd5b5f8111806124e2575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612521576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125189061449f565b60405180910390fd5b600c60019054906101000a900460ff1615612a055761253e611870565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125ac575061257c611870565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125e457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561261e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126365750600c5f9054906101000a900460ff16155b15612a0457600c60029054906101000a900460ff1661272a5760105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806126ea575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272090614507565b60405180910390fd5b5b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127c7575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561286e57600954811115612811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280890614595565b60405180910390fd5b600b5461281d83610f43565b826128289190613bd8565b1115612869576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612860906145fd565b60405180910390fd5b612a03565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561290b575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561295a57600954811115612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c9061468b565b60405180910390fd5b612a02565b60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612a0157600b546129b483610f43565b826129bf9190613bd8565b1115612a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f7906145fd565b60405180910390fd5b5b5b5b5b5b5f612a0f30610f43565b90505f8082119050808015612a305750600c60039054906101000a900460ff165b8015612a485750600c5f9054906101000a900460ff16155b8015612a9b575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612aee575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b41575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b82576001600c5f6101000a81548160ff021916908315150217905550612b68612f5a565b5f600c5f6101000a81548160ff0219169083151502179055505b5f600c5f9054906101000a900460ff1615905060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c30575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c39575f90505b5f8115612da65760125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c9757505f600e54115b15612ce357612cc46064612cb6600e5488612e7d90919063ffffffff16565b612e9290919063ffffffff16565b905080600f5f828254612cd79190613bd8565b92505081905550612d83565b60125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d3a57505f600d54115b15612d8257612d676064612d59600d5488612e7d90919063ffffffff16565b612e9290919063ffffffff16565b905080600f5f828254612d7a9190613bd8565b925050819055505b5b5f811115612d9757612d9687308361300d565b5b8085612da391906146a9565b94505b612db187878761300d565b50505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183612e8a9190613a1e565b905092915050565b5f8183612e9f9190613a8c565b905092915050565b5f8183612eb491906146a9565b905092915050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f612f6430610f43565b90505f8103612f73575061300b565b6014600a54612f829190613a1e565b811115612f9b576014600a54612f989190613a1e565b90505b612fa4816132d1565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015613008573d5f803e3d5ffd5b50505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307290614383565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036130e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e090614411565b60405180910390fd5b6130f4838383613507565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828210156131b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131ae9061474c565b60405180910390fd5b5f83146131c457826131c6565b805b82035f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550825f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132539190613bd8565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132b7919061376b565b60405180910390a36132ca85858561350c565b5050505050565b5f600267ffffffffffffffff8111156132ed576132ec61476a565b5b60405190808252806020026020018201604052801561331b5781602001602082028036833780820191505090505b50905030815f8151811061333257613331614797565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133fa9190613c87565b8160018151811061340e5761340d614797565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134743060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846121ef565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016134d695949392919061487b565b5f604051808303815f87803b1580156134ed575f80fd5b505af11580156134ff573d5f803e3d5ffd5b505050505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561354857808201518184015260208101905061352d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61356d82613511565b613577818561351b565b935061358781856020860161352b565b61359081613553565b840191505092915050565b5f6020820190508181035f8301526135b38184613563565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6135e8826135bf565b9050919050565b6135f8816135de565b8114613602575f80fd5b50565b5f81359050613613816135ef565b92915050565b5f819050919050565b61362b81613619565b8114613635575f80fd5b50565b5f8135905061364681613622565b92915050565b5f8060408385031215613662576136616135bb565b5b5f61366f85828601613605565b925050602061368085828601613638565b9150509250929050565b5f8115159050919050565b61369e8161368a565b82525050565b5f6020820190506136b75f830184613695565b92915050565b5f602082840312156136d2576136d16135bb565b5b5f6136df84828501613605565b91505092915050565b5f819050919050565b5f61370b613706613701846135bf565b6136e8565b6135bf565b9050919050565b5f61371c826136f1565b9050919050565b5f61372d82613712565b9050919050565b61373d81613723565b82525050565b5f6020820190506137565f830184613734565b92915050565b61376581613619565b82525050565b5f60208201905061377e5f83018461375c565b92915050565b5f60208284031215613799576137986135bb565b5b5f6137a684828501613638565b91505092915050565b5f805f606084860312156137c6576137c56135bb565b5b5f6137d386828701613605565b93505060206137e486828701613605565b92505060406137f586828701613638565b9150509250925092565b5f60ff82169050919050565b613814816137ff565b82525050565b5f60208201905061382d5f83018461380b565b92915050565b61383c816135de565b82525050565b5f6020820190506138555f830184613833565b92915050565b6138648161368a565b811461386e575f80fd5b50565b5f8135905061387f8161385b565b92915050565b5f806040838503121561389b5761389a6135bb565b5b5f6138a885828601613605565b92505060206138b985828601613871565b9150509250929050565b5f602082840312156138d8576138d76135bb565b5b5f6138e584828501613871565b91505092915050565b5f8060408385031215613904576139036135bb565b5b5f61391185828601613605565b925050602061392285828601613605565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061397057607f821691505b6020821081036139835761398261392c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139bd60208361351b565b91506139c882613989565b602082019050919050565b5f6020820190508181035f8301526139ea816139b1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a2882613619565b9150613a3383613619565b9250828202613a4181613619565b91508282048414831517613a5857613a576139f1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a9682613619565b9150613aa183613619565b925082613ab157613ab0613a5f565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613b16602f8361351b565b9150613b2182613abc565b604082019050919050565b5f6020820190508181035f830152613b4381613b0a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613ba460288361351b565b9150613baf82613b4a565b604082019050919050565b5f6020820190508181035f830152613bd181613b98565b9050919050565b5f613be282613619565b9150613bed83613619565b9250828201905080821115613c0557613c046139f1565b5b92915050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f613c3f60138361351b565b9150613c4a82613c0b565b602082019050919050565b5f6020820190508181035f830152613c6c81613c33565b9050919050565b5f81519050613c81816135ef565b92915050565b5f60208284031215613c9c57613c9b6135bb565b5b5f613ca984828501613c73565b91505092915050565b5f604082019050613cc55f830185613833565b613cd26020830184613833565b9392505050565b5f819050919050565b5f613cfc613cf7613cf284613cd9565b6136e8565b613619565b9050919050565b613d0c81613ce2565b82525050565b5f60c082019050613d255f830189613833565b613d32602083018861375c565b613d3f6040830187613d03565b613d4c6060830186613d03565b613d596080830185613833565b613d6660a083018461375c565b979650505050505050565b5f81519050613d7f81613622565b92915050565b5f805f60608486031215613d9c57613d9b6135bb565b5b5f613da986828701613d71565b9350506020613dba86828701613d71565b9250506040613dcb86828701613d71565b9150509250925092565b5f604082019050613de85f830185613833565b613df5602083018461375c565b9392505050565b5f81519050613e0a8161385b565b92915050565b5f60208284031215613e2557613e246135bb565b5b5f613e3284828501613dfc565b91505092915050565b7f54726164696e67206c69766500000000000000000000000000000000000000005f82015250565b5f613e6f600c8361351b565b9150613e7a82613e3b565b602082019050919050565b5f6020820190508181035f830152613e9c81613e63565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613efd60398361351b565b9150613f0882613ea3565b604082019050919050565b5f6020820190508181035f830152613f2a81613ef1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613f8b60258361351b565b9150613f9682613f31565b604082019050919050565b5f6020820190508181035f830152613fb881613f7f565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f61401960248361351b565b915061402482613fbf565b604082019050919050565b5f6020820190508181035f8301526140468161400d565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f6140a760358361351b565b91506140b28261404d565b604082019050919050565b5f6020820190508181035f8301526140d48161409b565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61413560348361351b565b9150614140826140db565b604082019050919050565b5f6020820190508181035f83015261416281614129565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6141c360268361351b565b91506141ce82614169565b604082019050919050565b5f6020820190508181035f8301526141f0816141b7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61425160248361351b565b915061425c826141f7565b604082019050919050565b5f6020820190508181035f83015261427e81614245565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142df60228361351b565b91506142ea82614285565b604082019050919050565b5f6020820190508181035f83015261430c816142d3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61436d60258361351b565b915061437882614313565b604082019050919050565b5f6020820190508181035f83015261439a81614361565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6143fb60238361351b565b9150614406826143a1565b604082019050919050565b5f6020820190508181035f830152614428816143ef565b9050919050565b7f45524332303a20416d6f756e742073686f756c642062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61448960298361351b565b91506144948261442f565b604082019050919050565b5f6020820190508181035f8301526144b68161447d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6144f160168361351b565b91506144fc826144bd565b602082019050919050565b5f6020820190508181035f83015261451e816144e5565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61457f60358361351b565b915061458a82614525565b604082019050919050565b5f6020820190508181035f8301526145ac81614573565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6145e760138361351b565b91506145f2826145b3565b602082019050919050565b5f6020820190508181035f830152614614816145db565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61467560368361351b565b91506146808261461b565b604082019050919050565b5f6020820190508181035f8301526146a281614669565b9050919050565b5f6146b382613619565b91506146be83613619565b92508282039050818111156146d6576146d56139f1565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61473660268361351b565b9150614741826146dc565b604082019050919050565b5f6020820190508181035f8301526147638161472a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6147f6816135de565b82525050565b5f61480783836147ed565b60208301905092915050565b5f602082019050919050565b5f614829826147c4565b61483381856147ce565b935061483e836147de565b805f5b8381101561486e57815161485588826147fc565b975061486083614813565b925050600181019050614841565b5085935050505092915050565b5f60a08201905061488e5f83018861375c565b61489b6020830187613d03565b81810360408301526148ad818661481f565b90506148bc6060830185613833565b6148c9608083018461375c565b969550505050505056fea2646970667358221220db6fdfa4ddabbe9b4059e5173a64513da4a4ad07a78693386fe7af0dba43b9a864736f6c63430008140033000000000000000000000000e09dc423e33dca8d2617b0f1ac7fdaf4d1b1c5f1

Deployed Bytecode

0x608060405260043610610254575f3560e01c80638da5cb5b11610138578063b62496f5116100b5578063d257b34f11610079578063d257b34f1461089d578063dd62ed3e146108d9578063e2f4560514610915578063eba4c3331461093f578063f2fde38b14610967578063f8b45b051461098f5761025b565b8063b62496f5146107bd578063bbc0c742146107f9578063c024666814610823578063c18bc1951461084b578063c8c8ebe4146108735761025b565b80639c3b4fdc116100fc5780639c3b4fdc146106c75780639fccce32146106f1578063a0d82dc51461071b578063a457c2d714610745578063a9059cbb146107815761025b565b80638da5cb5b146105f95780638ea5220f14610623578063924de9b71461064d57806395d89b41146106755780639a7a23d61461069f5761025b565b806349bd5a5e116101d1578063715018a611610195578063715018a61461053d57806371fc468814610553578063751039fc1461057b5780637571336a146105a55780638129fc1c146105cd5780638a8c523c146105e35761025b565b806349bd5a5e146104475780634a62bb65146104715780634fbee1931461049b5780636ddd1713146104d757806370a08231146105015761025b565b80631816467f116102185780631816467f14610355578063203e727e1461037d57806323b872dd146103a5578063313ce567146103e1578063395093511461040b5761025b565b806306fdde031461025f578063095ea7b31461028957806310d5de53146102c55780631694505e1461030157806318160ddd1461032b5761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b506102736109b9565b604051610280919061359b565b60405180910390f35b348015610294575f80fd5b506102af60048036038101906102aa919061364c565b610a49565b6040516102bc91906136a4565b60405180910390f35b3480156102d0575f80fd5b506102eb60048036038101906102e691906136bd565b610a66565b6040516102f891906136a4565b60405180910390f35b34801561030c575f80fd5b50610315610a83565b6040516103229190613743565b60405180910390f35b348015610336575f80fd5b5061033f610aa8565b60405161034c919061376b565b60405180910390f35b348015610360575f80fd5b5061037b600480360381019061037691906136bd565b610ab1565b005b348015610388575f80fd5b506103a3600480360381019061039e9190613784565b610beb565b005b3480156103b0575f80fd5b506103cb60048036038101906103c691906137af565b610cfa565b6040516103d891906136a4565b60405180910390f35b3480156103ec575f80fd5b506103f5610df7565b604051610402919061381a565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c919061364c565b610dff565b60405161043e91906136a4565b60405180910390f35b348015610452575f80fd5b5061045b610ea6565b6040516104689190613842565b60405180910390f35b34801561047c575f80fd5b50610485610ecb565b60405161049291906136a4565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc91906136bd565b610ede565b6040516104ce91906136a4565b60405180910390f35b3480156104e2575f80fd5b506104eb610f30565b6040516104f891906136a4565b60405180910390f35b34801561050c575f80fd5b50610527600480360381019061052291906136bd565b610f43565b604051610534919061376b565b60405180910390f35b348015610548575f80fd5b50610551610f88565b005b34801561055e575f80fd5b5061057960048036038101906105749190613784565b61100f565b005b348015610586575f80fd5b5061058f6110a4565b60405161059c91906136a4565b60405180910390f35b3480156105b0575f80fd5b506105cb60048036038101906105c69190613885565b611142565b005b3480156105d8575f80fd5b506105e1611216565b005b3480156105ee575f80fd5b506105f761176c565b005b348015610604575f80fd5b5061060d611870565b60405161061a9190613842565b60405180910390f35b34801561062e575f80fd5b50610637611898565b6040516106449190613842565b60405180910390f35b348015610658575f80fd5b50610673600480360381019061066e91906138c3565b6118bd565b005b348015610680575f80fd5b50610689611956565b604051610696919061359b565b60405180910390f35b3480156106aa575f80fd5b506106c560048036038101906106c09190613885565b6119e6565b005b3480156106d2575f80fd5b506106db611aff565b6040516106e8919061376b565b60405180910390f35b3480156106fc575f80fd5b50610705611b05565b604051610712919061376b565b60405180910390f35b348015610726575f80fd5b5061072f611b0b565b60405161073c919061376b565b60405180910390f35b348015610750575f80fd5b5061076b6004803603810190610766919061364c565b611b11565b60405161077891906136a4565b60405180910390f35b34801561078c575f80fd5b506107a760048036038101906107a2919061364c565b611bf7565b6040516107b491906136a4565b60405180910390f35b3480156107c8575f80fd5b506107e360048036038101906107de91906136bd565b611c14565b6040516107f091906136a4565b60405180910390f35b348015610804575f80fd5b5061080d611c31565b60405161081a91906136a4565b60405180910390f35b34801561082e575f80fd5b5061084960048036038101906108449190613885565b611c44565b005b348015610856575f80fd5b50610871600480360381019061086c9190613784565b611d66565b005b34801561087e575f80fd5b50610887611e75565b604051610894919061376b565b60405180910390f35b3480156108a8575f80fd5b506108c360048036038101906108be9190613784565b611e7b565b6040516108d091906136a4565b60405180910390f35b3480156108e4575f80fd5b506108ff60048036038101906108fa91906138ee565b611fcf565b60405161090c919061376b565b60405180910390f35b348015610920575f80fd5b50610929612051565b604051610936919061376b565b60405180910390f35b34801561094a575f80fd5b5061096560048036038101906109609190613784565b612057565b005b348015610972575f80fd5b5061098d600480360381019061098891906136bd565b6120ec565b005b34801561099a575f80fd5b506109a36121e2565b6040516109b0919061376b565b60405180910390f35b6060600380546109c890613959565b80601f01602080910402602001604051908101604052809291908181526020018280546109f490613959565b8015610a3f5780601f10610a1657610100808354040283529160200191610a3f565b820191905f5260205f20905b815481529060010190602001808311610a2257829003601f168201915b5050505050905090565b5f610a5c610a556121e8565b84846121ef565b6001905092915050565b6011602052805f5260405f205f915054906101000a900460ff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b610ab96121e8565b73ffffffffffffffffffffffffffffffffffffffff16610ad7611870565b73ffffffffffffffffffffffffffffffffffffffff1614610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b24906139d3565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0db17895a9d092fb3ca24d626f2150dd80c185b0706b36f1040ee239f56cb87160405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bf36121e8565b73ffffffffffffffffffffffffffffffffffffffff16610c11611870565b73ffffffffffffffffffffffffffffffffffffffff1614610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e906139d3565b60405180910390fd5b670de0b6b3a76400006103e86001610c7d610aa8565b610c879190613a1e565b610c919190613a8c565b610c9b9190613a8c565b811015610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd490613b2c565b60405180910390fd5b670de0b6b3a764000081610cf19190613a1e565b60098190555050565b5f610d068484846123b2565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d4d6121e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110158015610d9857505f83115b610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce90613bba565b60405180910390fd5b610deb85610de36121e8565b8584036121ef565b60019150509392505050565b5f6012905090565b5f610e9c610e0b6121e8565b848460015f610e186121e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e979190613bd8565b6121ef565b6001905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60019054906101000a900460ff1681565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600c60039054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f906121e8565b73ffffffffffffffffffffffffffffffffffffffff16610fae611870565b73ffffffffffffffffffffffffffffffffffffffff1614611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb906139d3565b60405180910390fd5b61100d5f612dba565b565b6110176121e8565b73ffffffffffffffffffffffffffffffffffffffff16611035611870565b73ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611082906139d3565b60405180910390fd5b80600d819055506019600d5411156110a1575f80fd5b50565b5f6110ad6121e8565b73ffffffffffffffffffffffffffffffffffffffff166110cb611870565b73ffffffffffffffffffffffffffffffffffffffff1614611121576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611118906139d3565b60405180910390fd5b5f600c60016101000a81548160ff0219169083151502179055506001905090565b61114a6121e8565b73ffffffffffffffffffffffffffffffffffffffff16611168611870565b73ffffffffffffffffffffffffffffffffffffffff16146111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b5906139d3565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61121e6121e8565b73ffffffffffffffffffffffffffffffffffffffff1661123c611870565b73ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906139d3565b60405180910390fd5b600c60029054906101000a900460ff16156112e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d990613c55565b60405180910390fd5b5f61132c6113156064611307600d546112f9610aa8565b612e7d90919063ffffffff16565b612e9290919063ffffffff16565b61131e30610f43565b612ea790919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113af3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f196121ef565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611419573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143d9190613c87565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e79190613c87565b6040518363ffffffff1660e01b8152600401611504929190613cb2565b6020604051808303815f875af1158015611520573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115449190613c87565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115af60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611142565b6115db60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612ebc565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806116256121e8565b426040518863ffffffff1660e01b815260040161164796959493929190613d12565b60606040518083038185885af1158015611663573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906116889190613d85565b50505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611728929190613dd5565b6020604051808303815f875af1158015611744573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117689190613e10565b5050565b6117746121e8565b73ffffffffffffffffffffffffffffffffffffffff16611792611870565b73ffffffffffffffffffffffffffffffffffffffff16146117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906139d3565b60405180910390fd5b600c60029054906101000a900460ff1615611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90613e85565b60405180910390fd5b6001600c60026101000a81548160ff0219169083151502179055506001600c60036101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118c56121e8565b73ffffffffffffffffffffffffffffffffffffffff166118e3611870565b73ffffffffffffffffffffffffffffffffffffffff1614611939576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611930906139d3565b60405180910390fd5b80600c60036101000a81548160ff02191690831515021790555050565b60606004805461196590613959565b80601f016020809104026020016040519081016040528092919081815260200182805461199190613959565b80156119dc5780601f106119b3576101008083540402835291602001916119dc565b820191905f5260205f20905b8154815290600101906020018083116119bf57829003601f168201915b5050505050905090565b6119ee6121e8565b73ffffffffffffffffffffffffffffffffffffffff16611a0c611870565b73ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a59906139d3565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890613f13565b60405180910390fd5b611afb8282612ebc565b5050565b600d5481565b600f5481565b600e5481565b5f8060015f611b1e6121e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613fa1565b60405180910390fd5b611bec611be36121e8565b858584036121ef565b600191505092915050565b5f611c0a611c036121e8565b84846123b2565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b600c60029054906101000a900460ff1681565b611c4c6121e8565b73ffffffffffffffffffffffffffffffffffffffff16611c6a611870565b73ffffffffffffffffffffffffffffffffffffffff1614611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb7906139d3565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d5a91906136a4565b60405180910390a25050565b611d6e6121e8565b73ffffffffffffffffffffffffffffffffffffffff16611d8c611870565b73ffffffffffffffffffffffffffffffffffffffff1614611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd9906139d3565b60405180910390fd5b670de0b6b3a76400006103e86005611df8610aa8565b611e029190613a1e565b611e0c9190613a8c565b611e169190613a8c565b811015611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f9061402f565b60405180910390fd5b670de0b6b3a764000081611e6c9190613a1e565b600b8190555050565b60095481565b5f611e846121e8565b73ffffffffffffffffffffffffffffffffffffffff16611ea2611870565b73ffffffffffffffffffffffffffffffffffffffff1614611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef906139d3565b60405180910390fd5b620186a06001611f06610aa8565b611f109190613a1e565b611f1a9190613a8c565b821015611f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f53906140bd565b60405180910390fd5b6103e86005611f69610aa8565b611f739190613a1e565b611f7d9190613a8c565b821115611fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb69061414b565b60405180910390fd5b81600a8190555060019050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b61205f6121e8565b73ffffffffffffffffffffffffffffffffffffffff1661207d611870565b73ffffffffffffffffffffffffffffffffffffffff16146120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca906139d3565b60405180910390fd5b80600e819055506019600e5411156120e9575f80fd5b50565b6120f46121e8565b73ffffffffffffffffffffffffffffffffffffffff16612112611870565b73ffffffffffffffffffffffffffffffffffffffff1614612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f906139d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cd906141d9565b60405180910390fd5b6121df81612dba565b50565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361225d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225490614267565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c2906142f5565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123a5919061376b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241790614383565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361248e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248590614411565b60405180910390fd5b5f8111806124e2575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612521576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125189061449f565b60405180910390fd5b600c60019054906101000a900460ff1615612a055761253e611870565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125ac575061257c611870565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125e457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561261e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126365750600c5f9054906101000a900460ff16155b15612a0457600c60029054906101000a900460ff1661272a5760105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806126ea575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272090614507565b60405180910390fd5b5b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127c7575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561286e57600954811115612811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280890614595565b60405180910390fd5b600b5461281d83610f43565b826128289190613bd8565b1115612869576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612860906145fd565b60405180910390fd5b612a03565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561290b575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561295a57600954811115612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c9061468b565b60405180910390fd5b612a02565b60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612a0157600b546129b483610f43565b826129bf9190613bd8565b1115612a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f7906145fd565b60405180910390fd5b5b5b5b5b5b5f612a0f30610f43565b90505f8082119050808015612a305750600c60039054906101000a900460ff165b8015612a485750600c5f9054906101000a900460ff16155b8015612a9b575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612aee575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b41575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b82576001600c5f6101000a81548160ff021916908315150217905550612b68612f5a565b5f600c5f6101000a81548160ff0219169083151502179055505b5f600c5f9054906101000a900460ff1615905060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c30575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c39575f90505b5f8115612da65760125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c9757505f600e54115b15612ce357612cc46064612cb6600e5488612e7d90919063ffffffff16565b612e9290919063ffffffff16565b905080600f5f828254612cd79190613bd8565b92505081905550612d83565b60125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d3a57505f600d54115b15612d8257612d676064612d59600d5488612e7d90919063ffffffff16565b612e9290919063ffffffff16565b905080600f5f828254612d7a9190613bd8565b925050819055505b5b5f811115612d9757612d9687308361300d565b5b8085612da391906146a9565b94505b612db187878761300d565b50505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183612e8a9190613a1e565b905092915050565b5f8183612e9f9190613a8c565b905092915050565b5f8183612eb491906146a9565b905092915050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f612f6430610f43565b90505f8103612f73575061300b565b6014600a54612f829190613a1e565b811115612f9b576014600a54612f989190613a1e565b90505b612fa4816132d1565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015613008573d5f803e3d5ffd5b50505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307290614383565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036130e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e090614411565b60405180910390fd5b6130f4838383613507565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828210156131b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131ae9061474c565b60405180910390fd5b5f83146131c457826131c6565b805b82035f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550825f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132539190613bd8565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132b7919061376b565b60405180910390a36132ca85858561350c565b5050505050565b5f600267ffffffffffffffff8111156132ed576132ec61476a565b5b60405190808252806020026020018201604052801561331b5781602001602082028036833780820191505090505b50905030815f8151811061333257613331614797565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133fa9190613c87565b8160018151811061340e5761340d614797565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134743060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846121ef565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016134d695949392919061487b565b5f604051808303815f87803b1580156134ed575f80fd5b505af11580156134ff573d5f803e3d5ffd5b505050505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561354857808201518184015260208101905061352d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61356d82613511565b613577818561351b565b935061358781856020860161352b565b61359081613553565b840191505092915050565b5f6020820190508181035f8301526135b38184613563565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6135e8826135bf565b9050919050565b6135f8816135de565b8114613602575f80fd5b50565b5f81359050613613816135ef565b92915050565b5f819050919050565b61362b81613619565b8114613635575f80fd5b50565b5f8135905061364681613622565b92915050565b5f8060408385031215613662576136616135bb565b5b5f61366f85828601613605565b925050602061368085828601613638565b9150509250929050565b5f8115159050919050565b61369e8161368a565b82525050565b5f6020820190506136b75f830184613695565b92915050565b5f602082840312156136d2576136d16135bb565b5b5f6136df84828501613605565b91505092915050565b5f819050919050565b5f61370b613706613701846135bf565b6136e8565b6135bf565b9050919050565b5f61371c826136f1565b9050919050565b5f61372d82613712565b9050919050565b61373d81613723565b82525050565b5f6020820190506137565f830184613734565b92915050565b61376581613619565b82525050565b5f60208201905061377e5f83018461375c565b92915050565b5f60208284031215613799576137986135bb565b5b5f6137a684828501613638565b91505092915050565b5f805f606084860312156137c6576137c56135bb565b5b5f6137d386828701613605565b93505060206137e486828701613605565b92505060406137f586828701613638565b9150509250925092565b5f60ff82169050919050565b613814816137ff565b82525050565b5f60208201905061382d5f83018461380b565b92915050565b61383c816135de565b82525050565b5f6020820190506138555f830184613833565b92915050565b6138648161368a565b811461386e575f80fd5b50565b5f8135905061387f8161385b565b92915050565b5f806040838503121561389b5761389a6135bb565b5b5f6138a885828601613605565b92505060206138b985828601613871565b9150509250929050565b5f602082840312156138d8576138d76135bb565b5b5f6138e584828501613871565b91505092915050565b5f8060408385031215613904576139036135bb565b5b5f61391185828601613605565b925050602061392285828601613605565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061397057607f821691505b6020821081036139835761398261392c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139bd60208361351b565b91506139c882613989565b602082019050919050565b5f6020820190508181035f8301526139ea816139b1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a2882613619565b9150613a3383613619565b9250828202613a4181613619565b91508282048414831517613a5857613a576139f1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a9682613619565b9150613aa183613619565b925082613ab157613ab0613a5f565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613b16602f8361351b565b9150613b2182613abc565b604082019050919050565b5f6020820190508181035f830152613b4381613b0a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613ba460288361351b565b9150613baf82613b4a565b604082019050919050565b5f6020820190508181035f830152613bd181613b98565b9050919050565b5f613be282613619565b9150613bed83613619565b9250828201905080821115613c0557613c046139f1565b5b92915050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f613c3f60138361351b565b9150613c4a82613c0b565b602082019050919050565b5f6020820190508181035f830152613c6c81613c33565b9050919050565b5f81519050613c81816135ef565b92915050565b5f60208284031215613c9c57613c9b6135bb565b5b5f613ca984828501613c73565b91505092915050565b5f604082019050613cc55f830185613833565b613cd26020830184613833565b9392505050565b5f819050919050565b5f613cfc613cf7613cf284613cd9565b6136e8565b613619565b9050919050565b613d0c81613ce2565b82525050565b5f60c082019050613d255f830189613833565b613d32602083018861375c565b613d3f6040830187613d03565b613d4c6060830186613d03565b613d596080830185613833565b613d6660a083018461375c565b979650505050505050565b5f81519050613d7f81613622565b92915050565b5f805f60608486031215613d9c57613d9b6135bb565b5b5f613da986828701613d71565b9350506020613dba86828701613d71565b9250506040613dcb86828701613d71565b9150509250925092565b5f604082019050613de85f830185613833565b613df5602083018461375c565b9392505050565b5f81519050613e0a8161385b565b92915050565b5f60208284031215613e2557613e246135bb565b5b5f613e3284828501613dfc565b91505092915050565b7f54726164696e67206c69766500000000000000000000000000000000000000005f82015250565b5f613e6f600c8361351b565b9150613e7a82613e3b565b602082019050919050565b5f6020820190508181035f830152613e9c81613e63565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613efd60398361351b565b9150613f0882613ea3565b604082019050919050565b5f6020820190508181035f830152613f2a81613ef1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613f8b60258361351b565b9150613f9682613f31565b604082019050919050565b5f6020820190508181035f830152613fb881613f7f565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f61401960248361351b565b915061402482613fbf565b604082019050919050565b5f6020820190508181035f8301526140468161400d565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f6140a760358361351b565b91506140b28261404d565b604082019050919050565b5f6020820190508181035f8301526140d48161409b565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61413560348361351b565b9150614140826140db565b604082019050919050565b5f6020820190508181035f83015261416281614129565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6141c360268361351b565b91506141ce82614169565b604082019050919050565b5f6020820190508181035f8301526141f0816141b7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61425160248361351b565b915061425c826141f7565b604082019050919050565b5f6020820190508181035f83015261427e81614245565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142df60228361351b565b91506142ea82614285565b604082019050919050565b5f6020820190508181035f83015261430c816142d3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61436d60258361351b565b915061437882614313565b604082019050919050565b5f6020820190508181035f83015261439a81614361565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6143fb60238361351b565b9150614406826143a1565b604082019050919050565b5f6020820190508181035f830152614428816143ef565b9050919050565b7f45524332303a20416d6f756e742073686f756c642062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61448960298361351b565b91506144948261442f565b604082019050919050565b5f6020820190508181035f8301526144b68161447d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6144f160168361351b565b91506144fc826144bd565b602082019050919050565b5f6020820190508181035f83015261451e816144e5565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61457f60358361351b565b915061458a82614525565b604082019050919050565b5f6020820190508181035f8301526145ac81614573565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6145e760138361351b565b91506145f2826145b3565b602082019050919050565b5f6020820190508181035f830152614614816145db565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61467560368361351b565b91506146808261461b565b604082019050919050565b5f6020820190508181035f8301526146a281614669565b9050919050565b5f6146b382613619565b91506146be83613619565b92508282039050818111156146d6576146d56139f1565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61473660268361351b565b9150614741826146dc565b604082019050919050565b5f6020820190508181035f8301526147638161472a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6147f6816135de565b82525050565b5f61480783836147ed565b60208301905092915050565b5f602082019050919050565b5f614829826147c4565b61483381856147ce565b935061483e836147de565b805f5b8381101561486e57815161485588826147fc565b975061486083614813565b925050600181019050614841565b5085935050505092915050565b5f60a08201905061488e5f83018861375c565b61489b6020830187613d03565b81810360408301526148ad818661481f565b90506148bc6060830185613833565b6148c9608083018461375c565b969550505050505056fea2646970667358221220db6fdfa4ddabbe9b4059e5173a64513da4a4ad07a78693386fe7af0dba43b9a864736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000e09dc423e33dca8d2617b0f1ac7fdaf4d1b1c5f1

-----Decoded View---------------
Arg [0] : _devW (address): 0xE09Dc423e33DcA8d2617b0F1ac7fDAf4d1B1c5F1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e09dc423e33dca8d2617b0f1ac7fdaf4d1b1c5f1


Deployed Bytecode Sourcemap

15994:10684:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3290:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4270:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16609:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16068:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3611:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21812:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19905:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4472:543;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3510:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5023:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16116:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16329:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21986:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16409:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3727:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1295:103;;;;;;;;;;;;;:::i;:::-;;20829:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19225:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20456:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17980:1023;;;;;;;;;;;;;:::i;:::-;;19011:162;;;;;;;;;;;;;:::i;:::-;;1072:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16153:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20721:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3398:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21302:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16449:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16514:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16480:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5321:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3878:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16681:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16369:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21112:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20190:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16186:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19416:481;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4086:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16228:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20969:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1406:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16268:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3290:100;3344:13;3377:5;3370:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3290:100;:::o;4270:194::-;4378:4;4395:39;4404:12;:10;:12::i;:::-;4418:7;4427:6;4395:8;:39::i;:::-;4452:4;4445:11;;4270:194;;;;:::o;16609:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;16068:41::-;;;;;;;;;;;;;:::o;3611:108::-;3672:7;3699:12;;3692:19;;3611:108;:::o;21812:166::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21925:9:::1;;;;;;;;;;;21894:41;;21911:12;21894:41;;;;;;;;;;;;21958:12;21946:9;;:24;;;;;;;;;;;;;;;;;;21812:166:::0;:::o;19905:277::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20042:4:::1;20034;20029:1;20013:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20012:26;;;;:::i;:::-;20011:35;;;;:::i;:::-;20001:6;:45;;19979:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;20165:8;20155:6;:19;;;;:::i;:::-;20132:20;:42;;;;19905:277:::0;:::o;4472:543::-;4612:4;4629:36;4639:6;4647:9;4658:6;4629:9;:36::i;:::-;4678:24;4705:11;:19;4717:6;4705:19;;;;;;;;;;;;;;;:33;4725:12;:10;:12::i;:::-;4705:33;;;;;;;;;;;;;;;;4678:60;;4791:6;4771:16;:26;;:40;;;;;4810:1;4801:6;:10;4771:40;4749:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;4915:57;4924:6;4932:12;:10;:12::i;:::-;4965:6;4946:16;:25;4915:8;:57::i;:::-;5003:4;4996:11;;;4472:543;;;;;:::o;3510:93::-;3568:5;3593:2;3586:9;;3510:93;:::o;5023:290::-;5136:4;5153:130;5176:12;:10;:12::i;:::-;5203:7;5262:10;5225:11;:25;5237:12;:10;:12::i;:::-;5225:25;;;;;;;;;;;;;;;:34;5251:7;5225:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5153:8;:130::i;:::-;5301:4;5294:11;;5023:290;;;;:::o;16116:28::-;;;;;;;;;;;;;:::o;16329:33::-;;;;;;;;;;;;;:::o;21986:126::-;22052:4;22076:19;:28;22096:7;22076:28;;;;;;;;;;;;;;;;;;;;;;;;;22069:35;;21986:126;;;:::o;16409:31::-;;;;;;;;;;;;;:::o;3727:143::-;3817:7;3844:9;:18;3854:7;3844:18;;;;;;;;;;;;;;;;3837:25;;3727:143;;;:::o;1295:103::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1360:30:::1;1387:1;1360:18;:30::i;:::-;1295:103::o:0;20829:132::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20911:7:::1;20899:9;:19;;;;20950:2;20937:9;;:15;;20929:24;;;::::0;::::1;;20829:132:::0;:::o;19225:121::-;19277:4;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19311:5:::1;19294:14;;:22;;;;;;;;;;;;;;;;;;19334:4;19327:11;;19225:121:::0;:::o;20456:169::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20613:4:::1;20571:31;:39;20603:6;20571:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20456:169:::0;;:::o;17980:1023::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18041:13:::1;;;;;;;;;;;18040:14;18032:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;18089:19;18111:91;18154:37;18187:3;18154:28;18172:9;;18154:13;:11;:13::i;:::-;:17;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;18111:24;18129:4;18111:9;:24::i;:::-;:28;;:91;;;;:::i;:::-;18089:113;;18264:42;18213:15;;:104;;;;;;;;;;;;;;;;;;18328:62;18345:4;18360:15;;;;;;;;;;;18387:1;18378:11;18328:8;:62::i;:::-;18435:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18417:55;;;18495:4;18515:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18417:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18401:13;;:147;;;;;;;;;;;;;;;;;;18561:55;18595:13;;;;;;;;;;;18611:4;18561:25;:55::i;:::-;18627:58;18664:13;;;;;;;;;;;18680:4;18627:28;:58::i;:::-;18698:15;;;;;;;;;;;:31;;;18737:21;18782:4;18802:11;18828:1;18844::::0;18860:12:::1;:10;:12::i;:::-;18887:15;18698:215;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18931:13;;;;;;;;;;;18924:29;;;18962:15;;;;;;;;;;;18980:14;18924:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18021:982;17980:1023::o:0;19011:162::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19075:13:::1;;;;;;;;;;;19074:14;19066:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;19132:4;19116:13;;:20;;;;;;;;;;;;;;;;;;19161:4;19147:11;;:18;;;;;;;;;;;;;;;;;;19011:162::o:0;1072:87::-;1118:7;1145:6;;;;;;;;;;;1138:13;;1072:87;:::o;16153:24::-;;;;;;;;;;;;;:::o;20721:100::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20806:7:::1;20792:11;;:21;;;;;;;;;;;;;;;;;;20721:100:::0;:::o;3398:104::-;3454:13;3487:7;3480:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3398:104;:::o;21302:306::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21448:13:::1;;;;;;;;;;;21440:21;;:4;:21;;::::0;21418:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21559:41;21588:4;21594:5;21559:28;:41::i;:::-;21302:306:::0;;:::o;16449:24::-;;;;:::o;16514:27::-;;;;:::o;16480:25::-;;;;:::o;5321:475::-;5439:4;5456:24;5483:11;:25;5495:12;:10;:12::i;:::-;5483:25;;;;;;;;;;;;;;;:34;5509:7;5483:34;;;;;;;;;;;;;;;;5456:61;;5570:15;5550:16;:35;;5528:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;5686:67;5695:12;:10;:12::i;:::-;5709:7;5737:15;5718:16;:34;5686:8;:67::i;:::-;5784:4;5777:11;;;5321:475;;;;:::o;3878:200::-;3989:4;4006:42;4016:12;:10;:12::i;:::-;4030:9;4041:6;4006:9;:42::i;:::-;4066:4;4059:11;;3878:200;;;;:::o;16681:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;16369:33::-;;;;;;;;;;;;;:::o;21112:182::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21228:8:::1;21197:19;:28;21217:7;21197:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21268:7;21252:34;;;21277:8;21252:34;;;;;;:::i;:::-;;;;;;;;21112:182:::0;;:::o;20190:258::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20330:4:::1;20322;20317:1;20301:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20300:26;;;;:::i;:::-;20299:35;;;;:::i;:::-;20289:6;:45;;20267:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;20431:8;20421:6;:19;;;;:::i;:::-;20409:9;:31;;;;20190:258:::0;:::o;16186:35::-;;;;:::o;19416:481::-;19513:4;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19587:6:::1;19582:1;19566:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19565:28;;;;:::i;:::-;19552:9;:41;;19530:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;19742:4;19737:1;19721:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19720:26;;;;:::i;:::-;19707:9;:39;;19685:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;19858:9;19837:18;:30;;;;19885:4;19878:11;;19416:481:::0;;;:::o;4086:176::-;4200:7;4227:11;:18;4239:5;4227:18;;;;;;;;;;;;;;;:27;4246:7;4227:27;;;;;;;;;;;;;;;;4220:34;;4086:176;;;;:::o;16228:33::-;;;;:::o;20969:135::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21053:7:::1;21040:10;:20;;;;21093:2;21079:10;;:16;;21071:25;;;::::0;::::1;;20969:135:::0;:::o;1406:238::-;1218:12;:10;:12::i;:::-;1207:23;;:7;:5;:7::i;:::-;:23;;;1199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1529:1:::1;1509:22;;:8;:22;;::::0;1487:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1608:28;1627:8;1608:18;:28::i;:::-;1406:238:::0;:::o;16268:24::-;;;;:::o;593:98::-;646:7;673:10;666:17;;593:98;:::o;7717:380::-;7870:1;7853:19;;:5;:19;;;7845:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7951:1;7932:21;;:7;:21;;;7924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8035:6;8005:11;:18;8017:5;8005:18;;;;;;;;;;;;;;;:27;8024:7;8005:27;;;;;;;;;;;;;;;:36;;;;8073:7;8057:32;;8066:5;8057:32;;;8082:6;8057:32;;;;;;:::i;:::-;;;;;;;;7717:380;;;:::o;22120:3548::-;22268:1;22252:18;;:4;:18;;;22244:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22345:1;22331:16;;:2;:16;;;22323:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22431:1;22422:6;:10;:39;;;;22436:19;:25;22456:4;22436:25;;;;;;;;;;;;;;;;;;;;;;;;;22422:39;22400:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;22547:14;;;;;;;;;;;22543:1694;;;22608:7;:5;:7::i;:::-;22600:15;;:4;:15;;;;:49;;;;;22642:7;:5;:7::i;:::-;22636:13;;:2;:13;;;;22600:49;:86;;;;;22684:1;22670:16;;:2;:16;;;;22600:86;:128;;;;;22721:6;22707:21;;:2;:21;;;;22600:128;:158;;;;;22750:8;;;;;;;;;;;22749:9;22600:158;22578:1648;;;22798:13;;;;;;;;;;;22793:223;;22870:19;:25;22890:4;22870:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22899:19;:23;22919:2;22899:23;;;;;;;;;;;;;;;;;;;;;;;;;22870:52;22836:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;22793:223;23090:25;:31;23116:4;23090:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;23147:31;:35;23179:2;23147:35;;;;;;;;;;;;;;;;;;;;;;;;;23146:36;23090:92;23064:1147;;;23269:20;;23259:6;:30;;23225:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;23477:9;;23460:13;23470:2;23460:9;:13::i;:::-;23451:6;:22;;;;:::i;:::-;:35;;23417:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;23064:1147;;;23655:25;:29;23681:2;23655:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;23710:31;:37;23742:4;23710:37;;;;;;;;;;;;;;;;;;;;;;;;;23709:38;23655:92;23629:582;;;23834:20;;23824:6;:30;;23790:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;23629:582;;;23991:31;:35;24023:2;23991:35;;;;;;;;;;;;;;;;;;;;;;;;;23986:225;;24111:9;;24094:13;24104:2;24094:9;:13::i;:::-;24085:6;:22;;;;:::i;:::-;:35;;24051:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;23986:225;23629:582;23064:1147;22578:1648;22543:1694;24249:28;24280:24;24298:4;24280:9;:24::i;:::-;24249:55;;24317:12;24355:1;24332:20;:24;24317:39;;24387:7;:35;;;;;24411:11;;;;;;;;;;;24387:35;:61;;;;;24440:8;;;;;;;;;;;24439:9;24387:61;:110;;;;;24466:25;:31;24492:4;24466:31;;;;;;;;;;;;;;;;;;;;;;;;;24465:32;24387:110;:153;;;;;24515:19;:25;24535:4;24515:25;;;;;;;;;;;;;;;;;;;;;;;;;24514:26;24387:153;:194;;;;;24558:19;:23;24578:2;24558:23;;;;;;;;;;;;;;;;;;;;;;;;;24557:24;24387:194;24369:326;;;24619:4;24608:8;;:15;;;;;;;;;;;;;;;;;;24640:10;:8;:10::i;:::-;24678:5;24667:8;;:16;;;;;;;;;;;;;;;;;;24369:326;24707:12;24723:8;;;;;;;;;;;24722:9;24707:24;;24833:19;:25;24853:4;24833:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;24862:19;:23;24882:2;24862:23;;;;;;;;;;;;;;;;;;;;;;;;;24833:52;24829:100;;;24912:5;24902:15;;24829:100;24941:12;25046:7;25042:573;;;25098:25;:29;25124:2;25098:29;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;;25144:1;25131:10;;:14;25098:47;25094:372;;;25173:31;25200:3;25173:22;25184:10;;25173:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;25166:38;;25239:4;25223:12;;:20;;;;;;;:::i;:::-;;;;;;;;25094:372;;;25305:25;:31;25331:4;25305:31;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;25352:1;25340:9;;:13;25305:48;25301:165;;;25381:30;25407:3;25381:21;25392:9;;25381:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;25374:37;;25446:4;25430:12;;:20;;;;;;;:::i;:::-;;;;;;;;25301:165;25094:372;25493:1;25486:4;:8;25482:91;;;25515:42;25531:4;25545;25552;25515:15;:42::i;:::-;25482:91;25599:4;25589:14;;;;;:::i;:::-;;;25042:573;25627:33;25643:4;25649:2;25653:6;25627:15;:33::i;:::-;22233:3435;;;;22120:3548;;;:::o;1652:191::-;1726:16;1745:6;;;;;;;;;;;1726:25;;1771:8;1762:6;;:17;;;;;;;;;;;;;;;;;;1826:8;1795:40;;1816:8;1795:40;;;;;;;;;;;;1715:128;1652:191;:::o;9846:98::-;9904:7;9935:1;9931;:5;;;;:::i;:::-;9924:12;;9846:98;;;;:::o;9952:::-;10010:7;10041:1;10037;:5;;;;:::i;:::-;10030:12;;9952:98;;;;:::o;9740:::-;9798:7;9829:1;9825;:5;;;;:::i;:::-;9818:12;;9740:98;;;;:::o;21616:188::-;21733:5;21699:25;:31;21725:4;21699:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21790:5;21756:40;;21784:4;21756:40;;;;;;;;;;;;21616:188;;:::o;26273:402::-;26312:23;26338:24;26356:4;26338:9;:24::i;:::-;26312:50;;26398:1;26379:15;:20;26375:59;;26416:7;;;26375:59;26489:2;26468:18;;:23;;;;:::i;:::-;26450:15;:41;26446:115;;;26547:2;26526:18;;:23;;;;:::i;:::-;26508:41;;26446:115;26571:33;26588:15;26571:16;:33::i;:::-;26625:9;;;;;;;;;;;26617:27;;:50;26645:21;26617:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26301:374;26273:402;:::o;5804:899::-;5962:1;5944:20;;:6;:20;;;5936:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6046:1;6025:23;;:9;:23;;;6017:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6101:47;6122:6;6130:9;6141:6;6101:20;:47::i;:::-;6161:21;6185:9;:17;6195:6;6185:17;;;;;;;;;;;;;;;;6161:41;;6213:24;6240:9;:20;6250:9;6240:20;;;;;;;;;;;;;;;;6213:47;;6312:6;6295:13;:23;;6273:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;6501:1;6491:6;:11;:39;;6524:6;6491:39;;;6505:16;6491:39;6457:13;:74;6420:9;:17;6430:6;6420:17;;;;;;;;;;;;;;;:111;;;;6577:6;6553:9;:20;6563:9;6553:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6618:9;6601:35;;6610:6;6601:35;;;6629:6;6601:35;;;;;;:::i;:::-;;;;;;;;6649:46;6669:6;6677:9;6688:6;6649:19;:46::i;:::-;5925:778;;5804:899;;;:::o;25676:589::-;25802:21;25840:1;25826:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25802:40;;25871:4;25853;25858:1;25853:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25897:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25887:4;25892:1;25887:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25932:62;25949:4;25964:15;;;;;;;;;;;25982:11;25932:8;:62::i;:::-;26033:15;;;;;;;;;;;:66;;;26114:11;26140:1;26184:4;26211;26231:15;26033:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25731:534;25676:589;:::o;8105:125::-;;;;:::o;8238:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:153::-;4204:9;4237:37;4268:5;4237:37;:::i;:::-;4224:50;;4127:153;;;:::o;4286:185::-;4400:64;4458:5;4400:64;:::i;:::-;4395:3;4388:77;4286:185;;:::o;4477:276::-;4597:4;4635:2;4624:9;4620:18;4612:26;;4648:98;4743:1;4732:9;4728:17;4719:6;4648:98;:::i;:::-;4477:276;;;;:::o;4759:118::-;4846:24;4864:5;4846:24;:::i;:::-;4841:3;4834:37;4759:118;;:::o;4883:222::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:71;5095:1;5084:9;5080:17;5071:6;5027:71;:::i;:::-;4883:222;;;;:::o;5111:329::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:53;5415:7;5406:6;5395:9;5391:22;5370:53;:::i;:::-;5360:63;;5316:117;5111:329;;;;:::o;5446:619::-;5523:6;5531;5539;5588:2;5576:9;5567:7;5563:23;5559:32;5556:119;;;5594:79;;:::i;:::-;5556:119;5714:1;5739:53;5784:7;5775:6;5764:9;5760:22;5739:53;:::i;:::-;5729:63;;5685:117;5841:2;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5812:118;5969:2;5995:53;6040:7;6031:6;6020:9;6016:22;5995:53;:::i;:::-;5985:63;;5940:118;5446:619;;;;;:::o;6071:86::-;6106:7;6146:4;6139:5;6135:16;6124:27;;6071:86;;;:::o;6163:112::-;6246:22;6262:5;6246:22;:::i;:::-;6241:3;6234:35;6163:112;;:::o;6281:214::-;6370:4;6408:2;6397:9;6393:18;6385:26;;6421:67;6485:1;6474:9;6470:17;6461:6;6421:67;:::i;:::-;6281:214;;;;:::o;6501:118::-;6588:24;6606:5;6588:24;:::i;:::-;6583:3;6576:37;6501:118;;:::o;6625:222::-;6718:4;6756:2;6745:9;6741:18;6733:26;;6769:71;6837:1;6826:9;6822:17;6813:6;6769:71;:::i;:::-;6625:222;;;;:::o;6853:116::-;6923:21;6938:5;6923:21;:::i;:::-;6916:5;6913:32;6903:60;;6959:1;6956;6949:12;6903:60;6853:116;:::o;6975:133::-;7018:5;7056:6;7043:20;7034:29;;7072:30;7096:5;7072:30;:::i;:::-;6975:133;;;;:::o;7114:468::-;7179:6;7187;7236:2;7224:9;7215:7;7211:23;7207:32;7204:119;;;7242:79;;:::i;:::-;7204:119;7362:1;7387:53;7432:7;7423:6;7412:9;7408:22;7387:53;:::i;:::-;7377:63;;7333:117;7489:2;7515:50;7557:7;7548:6;7537:9;7533:22;7515:50;:::i;:::-;7505:60;;7460:115;7114:468;;;;;:::o;7588:323::-;7644:6;7693:2;7681:9;7672:7;7668:23;7664:32;7661:119;;;7699:79;;:::i;:::-;7661:119;7819:1;7844:50;7886:7;7877:6;7866:9;7862:22;7844:50;:::i;:::-;7834:60;;7790:114;7588:323;;;;:::o;7917:474::-;7985:6;7993;8042:2;8030:9;8021:7;8017:23;8013:32;8010:119;;;8048:79;;:::i;:::-;8010:119;8168:1;8193:53;8238:7;8229:6;8218:9;8214:22;8193:53;:::i;:::-;8183:63;;8139:117;8295:2;8321:53;8366:7;8357:6;8346:9;8342:22;8321:53;:::i;:::-;8311:63;;8266:118;7917:474;;;;;:::o;8397:180::-;8445:77;8442:1;8435:88;8542:4;8539:1;8532:15;8566:4;8563:1;8556:15;8583:320;8627:6;8664:1;8658:4;8654:12;8644:22;;8711:1;8705:4;8701:12;8732:18;8722:81;;8788:4;8780:6;8776:17;8766:27;;8722:81;8850:2;8842:6;8839:14;8819:18;8816:38;8813:84;;8869:18;;:::i;:::-;8813:84;8634:269;8583:320;;;:::o;8909:182::-;9049:34;9045:1;9037:6;9033:14;9026:58;8909:182;:::o;9097:366::-;9239:3;9260:67;9324:2;9319:3;9260:67;:::i;:::-;9253:74;;9336:93;9425:3;9336:93;:::i;:::-;9454:2;9449:3;9445:12;9438:19;;9097:366;;;:::o;9469:419::-;9635:4;9673:2;9662:9;9658:18;9650:26;;9722:9;9716:4;9712:20;9708:1;9697:9;9693:17;9686:47;9750:131;9876:4;9750:131;:::i;:::-;9742:139;;9469:419;;;:::o;9894:180::-;9942:77;9939:1;9932:88;10039:4;10036:1;10029:15;10063:4;10060:1;10053:15;10080:410;10120:7;10143:20;10161:1;10143:20;:::i;:::-;10138:25;;10177:20;10195:1;10177:20;:::i;:::-;10172:25;;10232:1;10229;10225:9;10254:30;10272:11;10254:30;:::i;:::-;10243:41;;10433:1;10424:7;10420:15;10417:1;10414:22;10394:1;10387:9;10367:83;10344:139;;10463:18;;:::i;:::-;10344:139;10128:362;10080:410;;;;:::o;10496:180::-;10544:77;10541:1;10534:88;10641:4;10638:1;10631:15;10665:4;10662:1;10655:15;10682:185;10722:1;10739:20;10757:1;10739:20;:::i;:::-;10734:25;;10773:20;10791:1;10773:20;:::i;:::-;10768:25;;10812:1;10802:35;;10817:18;;:::i;:::-;10802:35;10859:1;10856;10852:9;10847:14;;10682:185;;;;:::o;10873:234::-;11013:34;11009:1;11001:6;10997:14;10990:58;11082:17;11077:2;11069:6;11065:15;11058:42;10873:234;:::o;11113:366::-;11255:3;11276:67;11340:2;11335:3;11276:67;:::i;:::-;11269:74;;11352:93;11441:3;11352:93;:::i;:::-;11470:2;11465:3;11461:12;11454:19;;11113:366;;;:::o;11485:419::-;11651:4;11689:2;11678:9;11674:18;11666:26;;11738:9;11732:4;11728:20;11724:1;11713:9;11709:17;11702:47;11766:131;11892:4;11766:131;:::i;:::-;11758:139;;11485:419;;;:::o;11910:227::-;12050:34;12046:1;12038:6;12034:14;12027:58;12119:10;12114:2;12106:6;12102:15;12095:35;11910:227;:::o;12143:366::-;12285:3;12306:67;12370:2;12365:3;12306:67;:::i;:::-;12299:74;;12382:93;12471:3;12382:93;:::i;:::-;12500:2;12495:3;12491:12;12484:19;;12143:366;;;:::o;12515:419::-;12681:4;12719:2;12708:9;12704:18;12696:26;;12768:9;12762:4;12758:20;12754:1;12743:9;12739:17;12732:47;12796:131;12922:4;12796:131;:::i;:::-;12788:139;;12515:419;;;:::o;12940:191::-;12980:3;12999:20;13017:1;12999:20;:::i;:::-;12994:25;;13033:20;13051:1;13033:20;:::i;:::-;13028:25;;13076:1;13073;13069:9;13062:16;;13097:3;13094:1;13091:10;13088:36;;;13104:18;;:::i;:::-;13088:36;12940:191;;;;:::o;13137:169::-;13277:21;13273:1;13265:6;13261:14;13254:45;13137:169;:::o;13312:366::-;13454:3;13475:67;13539:2;13534:3;13475:67;:::i;:::-;13468:74;;13551:93;13640:3;13551:93;:::i;:::-;13669:2;13664:3;13660:12;13653:19;;13312:366;;;:::o;13684:419::-;13850:4;13888:2;13877:9;13873:18;13865:26;;13937:9;13931:4;13927:20;13923:1;13912:9;13908:17;13901:47;13965:131;14091:4;13965:131;:::i;:::-;13957:139;;13684:419;;;:::o;14109:143::-;14166:5;14197:6;14191:13;14182:22;;14213:33;14240:5;14213:33;:::i;:::-;14109:143;;;;:::o;14258:351::-;14328:6;14377:2;14365:9;14356:7;14352:23;14348:32;14345:119;;;14383:79;;:::i;:::-;14345:119;14503:1;14528:64;14584:7;14575:6;14564:9;14560:22;14528:64;:::i;:::-;14518:74;;14474:128;14258:351;;;;:::o;14615:332::-;14736:4;14774:2;14763:9;14759:18;14751:26;;14787:71;14855:1;14844:9;14840:17;14831:6;14787:71;:::i;:::-;14868:72;14936:2;14925:9;14921:18;14912:6;14868:72;:::i;:::-;14615:332;;;;;:::o;14953:85::-;14998:7;15027:5;15016:16;;14953:85;;;:::o;15044:158::-;15102:9;15135:61;15153:42;15162:32;15188:5;15162:32;:::i;:::-;15153:42;:::i;:::-;15135:61;:::i;:::-;15122:74;;15044:158;;;:::o;15208:147::-;15303:45;15342:5;15303:45;:::i;:::-;15298:3;15291:58;15208:147;;:::o;15361:807::-;15610:4;15648:3;15637:9;15633:19;15625:27;;15662:71;15730:1;15719:9;15715:17;15706:6;15662:71;:::i;:::-;15743:72;15811:2;15800:9;15796:18;15787:6;15743:72;:::i;:::-;15825:80;15901:2;15890:9;15886:18;15877:6;15825:80;:::i;:::-;15915;15991:2;15980:9;15976:18;15967:6;15915:80;:::i;:::-;16005:73;16073:3;16062:9;16058:19;16049:6;16005:73;:::i;:::-;16088;16156:3;16145:9;16141:19;16132:6;16088:73;:::i;:::-;15361:807;;;;;;;;;:::o;16174:143::-;16231:5;16262:6;16256:13;16247:22;;16278:33;16305:5;16278:33;:::i;:::-;16174:143;;;;:::o;16323:663::-;16411:6;16419;16427;16476:2;16464:9;16455:7;16451:23;16447:32;16444:119;;;16482:79;;:::i;:::-;16444:119;16602:1;16627:64;16683:7;16674:6;16663:9;16659:22;16627:64;:::i;:::-;16617:74;;16573:128;16740:2;16766:64;16822:7;16813:6;16802:9;16798:22;16766:64;:::i;:::-;16756:74;;16711:129;16879:2;16905:64;16961:7;16952:6;16941:9;16937:22;16905:64;:::i;:::-;16895:74;;16850:129;16323:663;;;;;:::o;16992:332::-;17113:4;17151:2;17140:9;17136:18;17128:26;;17164:71;17232:1;17221:9;17217:17;17208:6;17164:71;:::i;:::-;17245:72;17313:2;17302:9;17298:18;17289:6;17245:72;:::i;:::-;16992:332;;;;;:::o;17330:137::-;17384:5;17415:6;17409:13;17400:22;;17431:30;17455:5;17431:30;:::i;:::-;17330:137;;;;:::o;17473:345::-;17540:6;17589:2;17577:9;17568:7;17564:23;17560:32;17557:119;;;17595:79;;:::i;:::-;17557:119;17715:1;17740:61;17793:7;17784:6;17773:9;17769:22;17740:61;:::i;:::-;17730:71;;17686:125;17473:345;;;;:::o;17824:162::-;17964:14;17960:1;17952:6;17948:14;17941:38;17824:162;:::o;17992:366::-;18134:3;18155:67;18219:2;18214:3;18155:67;:::i;:::-;18148:74;;18231:93;18320:3;18231:93;:::i;:::-;18349:2;18344:3;18340:12;18333:19;;17992:366;;;:::o;18364:419::-;18530:4;18568:2;18557:9;18553:18;18545:26;;18617:9;18611:4;18607:20;18603:1;18592:9;18588:17;18581:47;18645:131;18771:4;18645:131;:::i;:::-;18637:139;;18364:419;;;:::o;18789:244::-;18929:34;18925:1;18917:6;18913:14;18906:58;18998:27;18993:2;18985:6;18981:15;18974:52;18789:244;:::o;19039:366::-;19181:3;19202:67;19266:2;19261:3;19202:67;:::i;:::-;19195:74;;19278:93;19367:3;19278:93;:::i;:::-;19396:2;19391:3;19387:12;19380:19;;19039:366;;;:::o;19411:419::-;19577:4;19615:2;19604:9;19600:18;19592:26;;19664:9;19658:4;19654:20;19650:1;19639:9;19635:17;19628:47;19692:131;19818:4;19692:131;:::i;:::-;19684:139;;19411:419;;;:::o;19836:224::-;19976:34;19972:1;19964:6;19960:14;19953:58;20045:7;20040:2;20032:6;20028:15;20021:32;19836:224;:::o;20066:366::-;20208:3;20229:67;20293:2;20288:3;20229:67;:::i;:::-;20222:74;;20305:93;20394:3;20305:93;:::i;:::-;20423:2;20418:3;20414:12;20407:19;;20066:366;;;:::o;20438:419::-;20604:4;20642:2;20631:9;20627:18;20619:26;;20691:9;20685:4;20681:20;20677:1;20666:9;20662:17;20655:47;20719:131;20845:4;20719:131;:::i;:::-;20711:139;;20438:419;;;:::o;20863:223::-;21003:34;20999:1;20991:6;20987:14;20980:58;21072:6;21067:2;21059:6;21055:15;21048:31;20863:223;:::o;21092:366::-;21234:3;21255:67;21319:2;21314:3;21255:67;:::i;:::-;21248:74;;21331:93;21420:3;21331:93;:::i;:::-;21449:2;21444:3;21440:12;21433:19;;21092:366;;;:::o;21464:419::-;21630:4;21668:2;21657:9;21653:18;21645:26;;21717:9;21711:4;21707:20;21703:1;21692:9;21688:17;21681:47;21745:131;21871:4;21745:131;:::i;:::-;21737:139;;21464:419;;;:::o;21889:240::-;22029:34;22025:1;22017:6;22013:14;22006:58;22098:23;22093:2;22085:6;22081:15;22074:48;21889:240;:::o;22135:366::-;22277:3;22298:67;22362:2;22357:3;22298:67;:::i;:::-;22291:74;;22374:93;22463:3;22374:93;:::i;:::-;22492:2;22487:3;22483:12;22476:19;;22135:366;;;:::o;22507:419::-;22673:4;22711:2;22700:9;22696:18;22688:26;;22760:9;22754:4;22750:20;22746:1;22735:9;22731:17;22724:47;22788:131;22914:4;22788:131;:::i;:::-;22780:139;;22507:419;;;:::o;22932:239::-;23072:34;23068:1;23060:6;23056:14;23049:58;23141:22;23136:2;23128:6;23124:15;23117:47;22932:239;:::o;23177:366::-;23319:3;23340:67;23404:2;23399:3;23340:67;:::i;:::-;23333:74;;23416:93;23505:3;23416:93;:::i;:::-;23534:2;23529:3;23525:12;23518:19;;23177:366;;;:::o;23549:419::-;23715:4;23753:2;23742:9;23738:18;23730:26;;23802:9;23796:4;23792:20;23788:1;23777:9;23773:17;23766:47;23830:131;23956:4;23830:131;:::i;:::-;23822:139;;23549:419;;;:::o;23974:225::-;24114:34;24110:1;24102:6;24098:14;24091:58;24183:8;24178:2;24170:6;24166:15;24159:33;23974:225;:::o;24205:366::-;24347:3;24368:67;24432:2;24427:3;24368:67;:::i;:::-;24361:74;;24444:93;24533:3;24444:93;:::i;:::-;24562:2;24557:3;24553:12;24546:19;;24205:366;;;:::o;24577:419::-;24743:4;24781:2;24770:9;24766:18;24758:26;;24830:9;24824:4;24820:20;24816:1;24805:9;24801:17;24794:47;24858:131;24984:4;24858:131;:::i;:::-;24850:139;;24577:419;;;:::o;25002:223::-;25142:34;25138:1;25130:6;25126:14;25119:58;25211:6;25206:2;25198:6;25194:15;25187:31;25002:223;:::o;25231:366::-;25373:3;25394:67;25458:2;25453:3;25394:67;:::i;:::-;25387:74;;25470:93;25559:3;25470:93;:::i;:::-;25588:2;25583:3;25579:12;25572:19;;25231:366;;;:::o;25603:419::-;25769:4;25807:2;25796:9;25792:18;25784:26;;25856:9;25850:4;25846:20;25842:1;25831:9;25827:17;25820:47;25884:131;26010:4;25884:131;:::i;:::-;25876:139;;25603:419;;;:::o;26028:221::-;26168:34;26164:1;26156:6;26152:14;26145:58;26237:4;26232:2;26224:6;26220:15;26213:29;26028:221;:::o;26255:366::-;26397:3;26418:67;26482:2;26477:3;26418:67;:::i;:::-;26411:74;;26494:93;26583:3;26494:93;:::i;:::-;26612:2;26607:3;26603:12;26596:19;;26255:366;;;:::o;26627:419::-;26793:4;26831:2;26820:9;26816:18;26808:26;;26880:9;26874:4;26870:20;26866:1;26855:9;26851:17;26844:47;26908:131;27034:4;26908:131;:::i;:::-;26900:139;;26627:419;;;:::o;27052:224::-;27192:34;27188:1;27180:6;27176:14;27169:58;27261:7;27256:2;27248:6;27244:15;27237:32;27052:224;:::o;27282:366::-;27424:3;27445:67;27509:2;27504:3;27445:67;:::i;:::-;27438:74;;27521:93;27610:3;27521:93;:::i;:::-;27639:2;27634:3;27630:12;27623:19;;27282:366;;;:::o;27654:419::-;27820:4;27858:2;27847:9;27843:18;27835:26;;27907:9;27901:4;27897:20;27893:1;27882:9;27878:17;27871:47;27935:131;28061:4;27935:131;:::i;:::-;27927:139;;27654:419;;;:::o;28079:222::-;28219:34;28215:1;28207:6;28203:14;28196:58;28288:5;28283:2;28275:6;28271:15;28264:30;28079:222;:::o;28307:366::-;28449:3;28470:67;28534:2;28529:3;28470:67;:::i;:::-;28463:74;;28546:93;28635:3;28546:93;:::i;:::-;28664:2;28659:3;28655:12;28648:19;;28307:366;;;:::o;28679:419::-;28845:4;28883:2;28872:9;28868:18;28860:26;;28932:9;28926:4;28922:20;28918:1;28907:9;28903:17;28896:47;28960:131;29086:4;28960:131;:::i;:::-;28952:139;;28679:419;;;:::o;29104:228::-;29244:34;29240:1;29232:6;29228:14;29221:58;29313:11;29308:2;29300:6;29296:15;29289:36;29104:228;:::o;29338:366::-;29480:3;29501:67;29565:2;29560:3;29501:67;:::i;:::-;29494:74;;29577:93;29666:3;29577:93;:::i;:::-;29695:2;29690:3;29686:12;29679:19;;29338:366;;;:::o;29710:419::-;29876:4;29914:2;29903:9;29899:18;29891:26;;29963:9;29957:4;29953:20;29949:1;29938:9;29934:17;29927:47;29991:131;30117:4;29991:131;:::i;:::-;29983:139;;29710:419;;;:::o;30135:172::-;30275:24;30271:1;30263:6;30259:14;30252:48;30135:172;:::o;30313:366::-;30455:3;30476:67;30540:2;30535:3;30476:67;:::i;:::-;30469:74;;30552:93;30641:3;30552:93;:::i;:::-;30670:2;30665:3;30661:12;30654:19;;30313:366;;;:::o;30685:419::-;30851:4;30889:2;30878:9;30874:18;30866:26;;30938:9;30932:4;30928:20;30924:1;30913:9;30909:17;30902:47;30966:131;31092:4;30966:131;:::i;:::-;30958:139;;30685:419;;;:::o;31110:240::-;31250:34;31246:1;31238:6;31234:14;31227:58;31319:23;31314:2;31306:6;31302:15;31295:48;31110:240;:::o;31356:366::-;31498:3;31519:67;31583:2;31578:3;31519:67;:::i;:::-;31512:74;;31595:93;31684:3;31595:93;:::i;:::-;31713:2;31708:3;31704:12;31697:19;;31356:366;;;:::o;31728:419::-;31894:4;31932:2;31921:9;31917:18;31909:26;;31981:9;31975:4;31971:20;31967:1;31956:9;31952:17;31945:47;32009:131;32135:4;32009:131;:::i;:::-;32001:139;;31728:419;;;:::o;32153:169::-;32293:21;32289:1;32281:6;32277:14;32270:45;32153:169;:::o;32328:366::-;32470:3;32491:67;32555:2;32550:3;32491:67;:::i;:::-;32484:74;;32567:93;32656:3;32567:93;:::i;:::-;32685:2;32680:3;32676:12;32669:19;;32328:366;;;:::o;32700:419::-;32866:4;32904:2;32893:9;32889:18;32881:26;;32953:9;32947:4;32943:20;32939:1;32928:9;32924:17;32917:47;32981:131;33107:4;32981:131;:::i;:::-;32973:139;;32700:419;;;:::o;33125:241::-;33265:34;33261:1;33253:6;33249:14;33242:58;33334:24;33329:2;33321:6;33317:15;33310:49;33125:241;:::o;33372:366::-;33514:3;33535:67;33599:2;33594:3;33535:67;:::i;:::-;33528:74;;33611:93;33700:3;33611:93;:::i;:::-;33729:2;33724:3;33720:12;33713:19;;33372:366;;;:::o;33744:419::-;33910:4;33948:2;33937:9;33933:18;33925:26;;33997:9;33991:4;33987:20;33983:1;33972:9;33968:17;33961:47;34025:131;34151:4;34025:131;:::i;:::-;34017:139;;33744:419;;;:::o;34169:194::-;34209:4;34229:20;34247:1;34229:20;:::i;:::-;34224:25;;34263:20;34281:1;34263:20;:::i;:::-;34258:25;;34307:1;34304;34300:9;34292:17;;34331:1;34325:4;34322:11;34319:37;;;34336:18;;:::i;:::-;34319:37;34169:194;;;;:::o;34369:225::-;34509:34;34505:1;34497:6;34493:14;34486:58;34578:8;34573:2;34565:6;34561:15;34554:33;34369:225;:::o;34600:366::-;34742:3;34763:67;34827:2;34822:3;34763:67;:::i;:::-;34756:74;;34839:93;34928:3;34839:93;:::i;:::-;34957:2;34952:3;34948:12;34941:19;;34600:366;;;:::o;34972:419::-;35138:4;35176:2;35165:9;35161:18;35153:26;;35225:9;35219:4;35215:20;35211:1;35200:9;35196:17;35189:47;35253:131;35379:4;35253:131;:::i;:::-;35245:139;;34972:419;;;:::o;35397:180::-;35445:77;35442:1;35435:88;35542:4;35539:1;35532:15;35566:4;35563:1;35556:15;35583:180;35631:77;35628:1;35621:88;35728:4;35725:1;35718:15;35752:4;35749:1;35742:15;35769:114;35836:6;35870:5;35864:12;35854:22;;35769:114;;;:::o;35889:184::-;35988:11;36022:6;36017:3;36010:19;36062:4;36057:3;36053:14;36038:29;;35889:184;;;;:::o;36079:132::-;36146:4;36169:3;36161:11;;36199:4;36194:3;36190:14;36182:22;;36079:132;;;:::o;36217:108::-;36294:24;36312:5;36294:24;:::i;:::-;36289:3;36282:37;36217:108;;:::o;36331:179::-;36400:10;36421:46;36463:3;36455:6;36421:46;:::i;:::-;36499:4;36494:3;36490:14;36476:28;;36331:179;;;;:::o;36516:113::-;36586:4;36618;36613:3;36609:14;36601:22;;36516:113;;;:::o;36665:732::-;36784:3;36813:54;36861:5;36813:54;:::i;:::-;36883:86;36962:6;36957:3;36883:86;:::i;:::-;36876:93;;36993:56;37043:5;36993:56;:::i;:::-;37072:7;37103:1;37088:284;37113:6;37110:1;37107:13;37088:284;;;37189:6;37183:13;37216:63;37275:3;37260:13;37216:63;:::i;:::-;37209:70;;37302:60;37355:6;37302:60;:::i;:::-;37292:70;;37148:224;37135:1;37132;37128:9;37123:14;;37088:284;;;37092:14;37388:3;37381:10;;36789:608;;;36665:732;;;;:::o;37403:831::-;37666:4;37704:3;37693:9;37689:19;37681:27;;37718:71;37786:1;37775:9;37771:17;37762:6;37718:71;:::i;:::-;37799:80;37875:2;37864:9;37860:18;37851:6;37799:80;:::i;:::-;37926:9;37920:4;37916:20;37911:2;37900:9;37896:18;37889:48;37954:108;38057:4;38048:6;37954:108;:::i;:::-;37946:116;;38072:72;38140:2;38129:9;38125:18;38116:6;38072:72;:::i;:::-;38154:73;38222:3;38211:9;38207:19;38198:6;38154:73;:::i;:::-;37403:831;;;;;;;;:::o

Swarm Source

ipfs://db6fdfa4ddabbe9b4059e5173a64513da4a4ad07a78693386fe7af0dba43b9a8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.