ETH Price: $3,592.48 (-2.52%)

Token

ERC-20: GaddaFi (GADDA)
 

Overview

Max Total Supply

1,000,000 GADDA

Holders

113

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
GaddaFi

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-07
*/

/*                                         
              /$$$$$$                  /$$       /$$                 /$$$$$$$$ /$$
             /$$__  $$                | $$      | $$                | $$_____/|__/
            | $$  \__/  /$$$$$$   /$$$$$$$  /$$$$$$$  /$$$$$$       | $$       /$$
            | $$ /$$$$ |____  $$ /$$__  $$ /$$__  $$ |____  $$      | $$$$$   | $$
            | $$|_  $$  /$$$$$$$| $$  | $$| $$  | $$  /$$$$$$$      | $$__/   | $$
            | $$  \ $$ /$$__  $$| $$  | $$| $$  | $$ /$$__  $$      | $$      | $$
            |  $$$$$$/|  $$$$$$$|  $$$$$$$|  $$$$$$$|  $$$$$$$      | $$      | $$
             \______/  \_______/ \_______/ \_______/ \_______/      |__/      |__/
                                                                                  
                                                                                  
                                                                                                                                                                                                                                                                                                  
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

/**
 * SAFEMATH LIBRARY
 */
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 {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            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 IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

    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
    );
}

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "NOT AN OWNER");
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface Irouter {
    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 GaddaFi is IERC20, Ownable {
    using SafeMath for uint256;

    address public WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "GaddaFi";
    string constant _symbol = "GADDA";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 1 * 10**6 * (10**_decimals);
    uint256 public maxTxAmount = _totalSupply.mul(10).div(1000); // 1%

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

    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    mapping(address => bool) isExcludedFromMaxHold;
    mapping(address => bool) isSniper;

    uint256 liquidityFee = 100;
    uint256 burnFee = 100;
    uint256 validatorsFee = 500;
    uint256 totalFee = 700;
    uint256 feeDenominator = 10000;
    uint256 maxHoldingLimit = _totalSupply.mul(20).div(1000); // 2%

    address public autoLiquidityReceiver;
    address public validatorsFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 45;
    uint256 targetLiquidityDenominator = 100;

    Irouter public router;
    address public pair;

    uint256 public launchedAt;
    uint256 public launchedAtTimestamp; 

    uint256 distributorGas = 500000;

    bool public swapEnabled;
    bool public tradingOpen;

    uint256 public swapThreshold = _totalSupply / 2000; // 0.005%
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(
        address _router,
        address _market, 
        address newOwner
    ) Ownable(newOwner) {
        router = Irouter(_router);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = _totalSupply;

        isFeeExempt[0x25Ec5bbDFD7f0dD2bb7f172883675C2eDf6Fc81F] = true;
        isExcludedFromMaxHold[0x25Ec5bbDFD7f0dD2bb7f172883675C2eDf6Fc81F] = true;
        isExcludedFromMaxHold[address(this)] = true;
        isExcludedFromMaxHold[pair] = true;
        isTxLimitExempt[0x25Ec5bbDFD7f0dD2bb7f172883675C2eDf6Fc81F] = true;

        autoLiquidityReceiver = newOwner;
        validatorsFeeReceiver = _market;
        burnFeeReceiver = DEAD;

        approve(_router, _totalSupply);
        approve(address(pair), _totalSupply);
        _balances[0x25Ec5bbDFD7f0dD2bb7f172883675C2eDf6Fc81F] = _totalSupply;

        emit Transfer(address(0), 0x25Ec5bbDFD7f0dD2bb7f172883675C2eDf6Fc81F, _totalSupply);
    }

    receive() external payable {}

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

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function name() external pure override returns (string memory) {
        return _name;
    }

    function getOwner() external view override returns (address) {
        return owner;
    }

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

    function allowance(address holder, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[holder][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, _totalSupply);
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != _totalSupply) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(!isSniper[sender], "Sniper detected");
        require(!isSniper[recipient], "Sniper detected");
        if (!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
            // trading disable till launch
            if (!tradingOpen) {
                require(
                    sender != pair && recipient != pair,
                    "Trading is not enabled yet"
                );
            } 

            require(amount <= maxTxAmount, "TX Limit Exceeded");
        }

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (shouldSwapBack()) {
            swapBack();
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        uint256 amountReceived;
        if (
            isFeeExempt[sender] ||
            isFeeExempt[recipient] ||
            (sender != pair && recipient != pair)
        ) {
            amountReceived = amount;
        } else {
            amountReceived = takeFee(sender, amount);
        }

        // Check for max holding of receiver
        if (!isExcludedFromMaxHold[recipient]) {
            require(
                _balances[recipient] + amountReceived <= maxHoldingLimit,
                "Max holding limit exceeded"
            );
        }

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(
            targetLiquidity,
            targetLiquidityDenominator
        )
            ? 0
            : liquidityFee;
        uint256 amountToLiquify = swapThreshold
            .mul(dynamicLiquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH
            .mul(dynamicLiquidityFee)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(validatorsFee).div(
            totalETHFee
        );
        uint256 amountETHBuyback = amountETH.mul(burnFee).div(totalETHFee);

        payable(validatorsFeeReceiver).transfer(amountETHMarketing);
        payable(burnFeeReceiver).transfer(amountETHBuyback);

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() public onlyOwner {
        require(launchedAt == 0, "Already launched boi");
        launchedAt = block.number;
        launchedAtTimestamp = block.timestamp;
        tradingOpen = true;
        swapEnabled = true;
    }

    function setTxLimit(uint256 amount) external onlyOwner {
        require(amount >= 1000 ether,"amount should be greater than 1k");
        maxTxAmount = amount;
        
    }

    function withdrawFunds(address _user, uint256 _amount) external onlyOwner {
        require(_amount > 0, "Amount must be greater than 0");
        payable(_user).transfer(_amount);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsExcludedFromMaxHold(address holder, bool excluded)
        external
        onlyOwner
    {
        isExcludedFromMaxHold[holder] = excluded;
    }

    function setIsTxLimitExempt(address holder, bool exempt)
        external
        onlyOwner
    {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(
        uint256 _liquidityFee,
        uint256 _burnFee,
        uint256 _validatorsFee,
        uint256 _feeDenominator
    ) external onlyOwner {
        liquidityFee = _liquidityFee;
        burnFee = _burnFee;
        validatorsFee = _validatorsFee;
        totalFee = _liquidityFee.add(_burnFee).add(_validatorsFee);
        feeDenominator = _feeDenominator;
         require(totalFee <= 2000,"totalFee must be less than 20%");
    }

    function setFeeReceivers(
        address _autoLiquidityReceiver,
        address _validatorsFeeReceiver,
        address _burnFeeReceiver
    ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        validatorsFeeReceiver = _validatorsFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator)
        external
        onlyOwner
    {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function setMaxHoldingLimit(uint256 _limit) external onlyOwner {
        require(_limit >= 1000 ether,"minimum hloding limit can be set 1k");
        maxHoldingLimit = _limit;

    }

    function setDistributorSettings(uint256 gas) external onlyOwner {
        require(gas < 750000);
        distributorGas = gas;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));
    }

    function getLiquidityBacking(uint256 accuracy)
        public
        view
        returns (uint256)
    {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy)
        public
        view
        returns (bool)
    {
        return getLiquidityBacking(accuracy) > target;
    }

    function addSniperInList(address _account) external onlyOwner {
        require(_account != address(router), "We can not blacklist router");
        require(!isSniper[_account], "Sniper already exist");
        isSniper[_account] = true;
    }

    function removeSniperFromList(address _account) external onlyOwner {
        require(isSniper[_account], "Not a sniper");
        isSniper[_account] = false;
    }

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
    event BuybackMultiplierActive(uint256 duration);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_market","type":"address"},{"internalType":"address","name":"newOwner","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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addSniperInList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"burnFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAtTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeSniperFromList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract Irouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_validatorsFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_validatorsFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setIsExcludedFromMaxHold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"setMaxHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"validatorsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000057919062000baf565b620f424062000067919062000c00565b600355620000a26103e86200008e600a600354620008f160201b62001c5b1790919060201c565b6200090960201b62001c711790919060201c565b6004556064600b556064600c556101f4600d556102bc600e55612710600f55620000f96103e8620000e56014600354620008f160201b62001c5b1790919060201c565b6200090960201b62001c711790919060201c565b601055602d60145560646015556207a120601a556107d06003546200011f919062000c90565b601c553480156200012f57600080fd5b5060405162004bb338038062004bb3833981810160405281019062000155919062000d32565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505082601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026c919062000d8e565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000340919062000d8e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200039e92919062000dd1565b6020604051808303816000875af1158015620003be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e4919062000d8e565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760007325ec5bbdfd7f0dd2bb7f172883675c2edf6fc81f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960007325ec5bbdfd7f0dd2bb7f172883675c2edf6fc81f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860007325ec5bbdfd7f0dd2bb7f172883675c2edf6fc81f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620007d8836003546200092160201b60201c565b506200080f601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003546200092160201b60201c565b50600354600560007325ec5bbdfd7f0dd2bb7f172883675c2edf6fc81f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507325ec5bbdfd7f0dd2bb7f172883675c2edf6fc81f73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620008e0919062000e0f565b60405180910390a350505062000e2c565b6000818362000901919062000c00565b905092915050565b6000818362000919919062000c90565b905092915050565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000a03919062000e0f565b60405180910390a36001905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000aa35780860481111562000a7b5762000a7a62000a15565b5b600185161562000a8b5780820291505b808102905062000a9b8562000a44565b945062000a5b565b94509492505050565b60008262000abe576001905062000b91565b8162000ace576000905062000b91565b816001811462000ae7576002811462000af25762000b28565b600191505062000b91565b60ff84111562000b075762000b0662000a15565b5b8360020a91508482111562000b215762000b2062000a15565b5b5062000b91565b5060208310610133831016604e8410600b841016171562000b625782820a90508381111562000b5c5762000b5b62000a15565b5b62000b91565b62000b71848484600162000a51565b9250905081840481111562000b8b5762000b8a62000a15565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000bbc8262000b98565b915062000bc98362000ba2565b925062000bf87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000aac565b905092915050565b600062000c0d8262000b98565b915062000c1a8362000b98565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c565762000c5562000a15565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c9d8262000b98565b915062000caa8362000b98565b92508262000cbd5762000cbc62000c61565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cfa8262000ccd565b9050919050565b62000d0c8162000ced565b811462000d1857600080fd5b50565b60008151905062000d2c8162000d01565b92915050565b60008060006060848603121562000d4e5762000d4d62000cc8565b5b600062000d5e8682870162000d1b565b935050602062000d718682870162000d1b565b925050604062000d848682870162000d1b565b9150509250925092565b60006020828403121562000da75762000da662000cc8565b5b600062000db78482850162000d1b565b91505092915050565b62000dcb8162000ced565b82525050565b600060408201905062000de8600083018562000dc0565b62000df7602083018462000dc0565b9392505050565b62000e098162000b98565b82525050565b600060208201905062000e26600083018462000dfe565b92915050565b613d778062000e3c6000396000f3fe6080604052600436106102555760003560e01c806395d89b4111610139578063ca33e64c116100b6578063df20fd491161007a578063df20fd49146108e5578063e3763ded1461090e578063f2fde38b14610939578063f84ba65d14610962578063f887ea401461098b578063ffb54a99146109b65761025c565b8063ca33e64c146107ee578063d51ed1c814610819578063d7c0103214610856578063dd62ed3e1461087f578063dd7bd775146108bc5761025c565b8063bb4179fa116100fd578063bb4179fa1461071d578063bf56b37114610746578063c107532914610771578063c6d2577d1461079a578063c912ca53146107c55761025c565b806395d89b41146106365780639d1944f514610661578063a8aa1b311461068a578063a9059cbb146106b5578063ad5c4648146106f25761025c565b80632f54bf6e116101d2578063658d4b7f11610196578063658d4b7f146105265780636ddd17131461054f5780636fcba3771461057a57806370a08231146105a3578063893d20e8146105e05780638c0b5e221461060b5761025c565b80632f54bf6e1461042f578063313ce5671461046c57806338d6f84714610497578063571ac8b0146104c05780635c85974f146104fd5761025c565b806318160ddd1161021957806318160ddd146103485780631c06478314610373578063201e79911461039e57806323b872dd146103c75780632b112e49146104045761025c565b806301339c21146102615780630445b6671461027857806306fdde03146102a3578063095ea7b3146102ce5780631161ae391461030b5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109e1565b005b34801561028457600080fd5b5061028d610ab4565b60405161029a9190612d99565b60405180910390f35b3480156102af57600080fd5b506102b8610aba565b6040516102c59190612e4d565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190612efe565b610af7565b6040516103029190612f59565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d9190612f74565b610be9565b60405161033f9190612f59565b60405180910390f35b34801561035457600080fd5b5061035d610bfe565b60405161036a9190612d99565b60405180910390f35b34801561037f57600080fd5b50610388610c08565b6040516103959190612fc3565b60405180910390f35b3480156103aa57600080fd5b506103c560048036038101906103c09190612f74565b610c2e565b005b3480156103d357600080fd5b506103ee60048036038101906103e99190612fde565b610c88565b6040516103fb9190612f59565b60405180910390f35b34801561041057600080fd5b50610419610e6a565b6040516104269190612d99565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613031565b610ecb565b6040516104639190612f59565b60405180910390f35b34801561047857600080fd5b50610481610f24565b60405161048e919061307a565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b99190613031565b610f2d565b005b3480156104cc57600080fd5b506104e760048036038101906104e29190613031565b6110ed565b6040516104f49190612f59565b60405180910390f35b34801561050957600080fd5b50610524600480360381019061051f9190613095565b611102565b005b34801561053257600080fd5b5061054d600480360381019061054891906130ee565b6111a0565b005b34801561055b57600080fd5b50610564611243565b6040516105719190612f59565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c919061312e565b611256565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613031565b611332565b6040516105d79190612d99565b60405180910390f35b3480156105ec57600080fd5b506105f561137b565b6040516106029190612fc3565b60405180910390f35b34801561061757600080fd5b506106206113a4565b60405161062d9190612d99565b60405180910390f35b34801561064257600080fd5b5061064b6113aa565b6040516106589190612e4d565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613095565b6113e7565b005b34801561069657600080fd5b5061069f611448565b6040516106ac9190612fc3565b60405180910390f35b3480156106c157600080fd5b506106dc60048036038101906106d79190612efe565b61146e565b6040516106e99190612f59565b60405180910390f35b3480156106fe57600080fd5b50610707611483565b6040516107149190612fc3565b60405180910390f35b34801561072957600080fd5b50610744600480360381019061073f91906130ee565b6114a9565b005b34801561075257600080fd5b5061075b61154c565b6040516107689190612d99565b60405180910390f35b34801561077d57600080fd5b5061079860048036038101906107939190612efe565b611552565b005b3480156107a657600080fd5b506107af611628565b6040516107bc9190612d99565b60405180910390f35b3480156107d157600080fd5b506107ec60048036038101906107e79190613095565b61162e565b005b3480156107fa57600080fd5b506108036116cc565b6040516108109190612fc3565b60405180910390f35b34801561082557600080fd5b50610840600480360381019061083b9190613095565b6116f2565b60405161084d9190612d99565b60405180910390f35b34801561086257600080fd5b5061087d60048036038101906108789190613195565b611764565b005b34801561088b57600080fd5b506108a660048036038101906108a191906131e8565b611874565b6040516108b39190612d99565b60405180910390f35b3480156108c857600080fd5b506108e360048036038101906108de9190613031565b6118fb565b005b3480156108f157600080fd5b5061090c60048036038101906109079190613228565b611a2a565b005b34801561091a57600080fd5b50610923611a97565b6040516109309190612fc3565b60405180910390f35b34801561094557600080fd5b50610960600480360381019061095b91906132a6565b611abd565b005b34801561096e57600080fd5b50610989600480360381019061098491906130ee565b611b7f565b005b34801561099757600080fd5b506109a0611c22565b6040516109ad9190613332565b60405180910390f35b3480156109c257600080fd5b506109cb611c48565b6040516109d89190612f59565b60405180910390f35b6109ea33610ecb565b610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090613399565b60405180910390fd5b600060185414610a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6590613405565b60405180910390fd5b43601881905550426019819055506001601b60016101000a81548160ff0219169083151502179055506001601b60006101000a81548160ff021916908315150217905550565b601c5481565b60606040518060400160405280600781526020017f4761646461466900000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bd79190612d99565b60405180910390a36001905092915050565b600082610bf5836116f2565b11905092915050565b6000600354905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c3733610ecb565b610c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6d90613399565b60405180910390fd5b81601481905550806015819055505050565b6000600354600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e5657610dd5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c879092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e61848484611cdc565b90509392505050565b6000610ec6610e796000611332565b610eb8610ea7600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611332565b60035461244890919063ffffffff16565b61244890919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610f3633610ecb565b610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90613399565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc90613471565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611092576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611089906134dd565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006110fb82600354610af7565b9050919050565b61110b33610ecb565b61114a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114190613399565b60405180910390fd5b683635c9adc5dea00000811015611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90613549565b60405180910390fd5b8060048190555050565b6111a933610ecb565b6111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df90613399565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60009054906101000a900460ff1681565b61125f33610ecb565b61129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590613399565b60405180910390fd5b83600b8190555082600c8190555081600d819055506112d8826112ca858761245e90919063ffffffff16565b61245e90919063ffffffff16565b600e8190555080600f819055506107d0600e54111561132c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611323906135b5565b60405180910390fd5b50505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60045481565b60606040518060400160405280600581526020017f4741444441000000000000000000000000000000000000000000000000000000815250905090565b6113f033610ecb565b61142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690613399565b60405180910390fd5b620b71b0811061143e57600080fd5b80601a8190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061147b338484611cdc565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114b233610ecb565b6114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e890613399565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60185481565b61155b33610ecb565b61159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190613399565b60405180910390fd5b600081116115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490613621565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611623573d6000803e3d6000fd5b505050565b60195481565b61163733610ecb565b611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90613399565b60405180910390fd5b683635c9adc5dea000008110156116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b9906136b3565b60405180910390fd5b8060108190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061175d6116ff610e6a565b61174f6117406002611732601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611332565b611c5b90919063ffffffff16565b85611c5b90919063ffffffff16565b611c7190919063ffffffff16565b9050919050565b61176d33610ecb565b6117ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a390613399565b60405180910390fd5b82601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61190433610ecb565b611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a90613399565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c69061371f565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a3333610ecb565b611a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6990613399565b60405180910390fd5b81601b60006101000a81548160ff02191690831515021790555080601c819055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ac633610ecb565b611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc90613399565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b749190613760565b60405180910390a150565b611b8833610ecb565b611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90613399565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60019054906101000a900460ff1681565b60008183611c6991906137aa565b905092915050565b60008183611c7f9190613833565b905092915050565b6000838311158290611ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc69190612e4d565b60405180910390fd5b5082840390509392505050565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d62906138b0565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611def906138b0565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e9c5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fe757601b60019054906101000a900460ff16611fa157601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f615750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f979061391c565b60405180910390fd5b5b600454821115611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd90613988565b60405180910390fd5b5b601d60009054906101000a900460ff161561200e57612007848484612474565b9050612441565b612016612647565b156120245761202361271e565b5b6120ad826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c879092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121935750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122465750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156122455750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b1561225357829050612260565b61225d8584612c3c565b90505b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123415760105481600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ff91906139a8565b1115612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790613a4a565b60405180910390fd5b5b61239381600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245e90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124339190612d99565b60405180910390a360019150505b9392505050565b600081836124569190613a6a565b905092915050565b6000818361246c91906139a8565b905092915050565b60006124ff826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c879092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245e90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126349190612d99565b60405180910390a3600190509392505050565b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126b45750601d60009054906101000a900460ff16155b80156126cc5750601b60009054906101000a900460ff165b80156127195750601c54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601d60006101000a81548160ff0219169083151502179055506000612749601454601554610be9565b61275557600b54612758565b60005b90506000612798600261278a600e5461277c86601c54611c5b90919063ffffffff16565b611c7190919063ffffffff16565b611c7190919063ffffffff16565b905060006127b182601c5461244890919063ffffffff16565b90506000600267ffffffffffffffff8111156127d0576127cf613a9e565b5b6040519080825280602002602001820160405280156127fe5781602001602082028036833780820191505090505b509050308160008151811061281657612815613acd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061288757612886613acd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161292a959493929190613bf5565b600060405180830381600087803b15801561294457600080fd5b505af1158015612958573d6000803e3d6000fd5b505050506000612971824761244890919063ffffffff16565b9050600061299d61298c600289611c7190919063ffffffff16565b600e5461244890919063ffffffff16565b905060006129d960026129cb846129bd8c88611c5b90919063ffffffff16565b611c7190919063ffffffff16565b611c7190919063ffffffff16565b90506000612a04836129f6600d5487611c5b90919063ffffffff16565b611c7190919063ffffffff16565b90506000612a2f84612a21600c5488611c5b90919063ffffffff16565b611c7190919063ffffffff16565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612a99573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b02573d6000803e3d6000fd5b506000891115612c1557601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612b9596959493929190613c4f565b60606040518083038185885af1158015612bb3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612bd89190613cc5565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051612c0c929190613d18565b60405180910390a15b505050505050505050506000601d60006101000a81548160ff021916908315150217905550565b600080612c68600f54612c5a600e5486611c5b90919063ffffffff16565b611c7190919063ffffffff16565b9050612cbc81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245e90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d5c9190612d99565b60405180910390a3612d77818461244890919063ffffffff16565b91505092915050565b6000819050919050565b612d9381612d80565b82525050565b6000602082019050612dae6000830184612d8a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612dee578082015181840152602081019050612dd3565b83811115612dfd576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e1f82612db4565b612e298185612dbf565b9350612e39818560208601612dd0565b612e4281612e03565b840191505092915050565b60006020820190508181036000830152612e678184612e14565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e9f82612e74565b9050919050565b612eaf81612e94565b8114612eba57600080fd5b50565b600081359050612ecc81612ea6565b92915050565b612edb81612d80565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b60008060408385031215612f1557612f14612e6f565b5b6000612f2385828601612ebd565b9250506020612f3485828601612ee9565b9150509250929050565b60008115159050919050565b612f5381612f3e565b82525050565b6000602082019050612f6e6000830184612f4a565b92915050565b60008060408385031215612f8b57612f8a612e6f565b5b6000612f9985828601612ee9565b9250506020612faa85828601612ee9565b9150509250929050565b612fbd81612e94565b82525050565b6000602082019050612fd86000830184612fb4565b92915050565b600080600060608486031215612ff757612ff6612e6f565b5b600061300586828701612ebd565b935050602061301686828701612ebd565b925050604061302786828701612ee9565b9150509250925092565b60006020828403121561304757613046612e6f565b5b600061305584828501612ebd565b91505092915050565b600060ff82169050919050565b6130748161305e565b82525050565b600060208201905061308f600083018461306b565b92915050565b6000602082840312156130ab576130aa612e6f565b5b60006130b984828501612ee9565b91505092915050565b6130cb81612f3e565b81146130d657600080fd5b50565b6000813590506130e8816130c2565b92915050565b6000806040838503121561310557613104612e6f565b5b600061311385828601612ebd565b9250506020613124858286016130d9565b9150509250929050565b6000806000806080858703121561314857613147612e6f565b5b600061315687828801612ee9565b945050602061316787828801612ee9565b935050604061317887828801612ee9565b925050606061318987828801612ee9565b91505092959194509250565b6000806000606084860312156131ae576131ad612e6f565b5b60006131bc86828701612ebd565b93505060206131cd86828701612ebd565b92505060406131de86828701612ebd565b9150509250925092565b600080604083850312156131ff576131fe612e6f565b5b600061320d85828601612ebd565b925050602061321e85828601612ebd565b9150509250929050565b6000806040838503121561323f5761323e612e6f565b5b600061324d858286016130d9565b925050602061325e85828601612ee9565b9150509250929050565b600061327382612e74565b9050919050565b61328381613268565b811461328e57600080fd5b50565b6000813590506132a08161327a565b92915050565b6000602082840312156132bc576132bb612e6f565b5b60006132ca84828501613291565b91505092915050565b6000819050919050565b60006132f86132f36132ee84612e74565b6132d3565b612e74565b9050919050565b600061330a826132dd565b9050919050565b600061331c826132ff565b9050919050565b61332c81613311565b82525050565b60006020820190506133476000830184613323565b92915050565b7f4e4f5420414e204f574e45520000000000000000000000000000000000000000600082015250565b6000613383600c83612dbf565b915061338e8261334d565b602082019050919050565b600060208201905081810360008301526133b281613376565b9050919050565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b60006133ef601483612dbf565b91506133fa826133b9565b602082019050919050565b6000602082019050818103600083015261341e816133e2565b9050919050565b7f57652063616e206e6f7420626c61636b6c69737420726f757465720000000000600082015250565b600061345b601b83612dbf565b915061346682613425565b602082019050919050565b6000602082019050818103600083015261348a8161344e565b9050919050565b7f536e6970657220616c7265616479206578697374000000000000000000000000600082015250565b60006134c7601483612dbf565b91506134d282613491565b602082019050919050565b600060208201905081810360008301526134f6816134ba565b9050919050565b7f616d6f756e742073686f756c642062652067726561746572207468616e20316b600082015250565b6000613533602083612dbf565b915061353e826134fd565b602082019050919050565b6000602082019050818103600083015261356281613526565b9050919050565b7f746f74616c466565206d757374206265206c657373207468616e203230250000600082015250565b600061359f601e83612dbf565b91506135aa82613569565b602082019050919050565b600060208201905081810360008301526135ce81613592565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b600061360b601d83612dbf565b9150613616826135d5565b602082019050919050565b6000602082019050818103600083015261363a816135fe565b9050919050565b7f6d696e696d756d20686c6f64696e67206c696d69742063616e2062652073657460008201527f20316b0000000000000000000000000000000000000000000000000000000000602082015250565b600061369d602383612dbf565b91506136a882613641565b604082019050919050565b600060208201905081810360008301526136cc81613690565b9050919050565b7f4e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000613709600c83612dbf565b9150613714826136d3565b602082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b600061374a826132ff565b9050919050565b61375a8161373f565b82525050565b60006020820190506137756000830184613751565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137b582612d80565b91506137c083612d80565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137f9576137f861377b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061383e82612d80565b915061384983612d80565b92508261385957613858613804565b5b828204905092915050565b7f536e697065722064657465637465640000000000000000000000000000000000600082015250565b600061389a600f83612dbf565b91506138a582613864565b602082019050919050565b600060208201905081810360008301526138c98161388d565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000613906601a83612dbf565b9150613911826138d0565b602082019050919050565b60006020820190508181036000830152613935816138f9565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613972601183612dbf565b915061397d8261393c565b602082019050919050565b600060208201905081810360008301526139a181613965565b9050919050565b60006139b382612d80565b91506139be83612d80565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139f3576139f261377b565b5b828201905092915050565b7f4d617820686f6c64696e67206c696d6974206578636565646564000000000000600082015250565b6000613a34601a83612dbf565b9150613a3f826139fe565b602082019050919050565b60006020820190508181036000830152613a6381613a27565b9050919050565b6000613a7582612d80565b9150613a8083612d80565b925082821015613a9357613a9261377b565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613b21613b1c613b1784613afc565b6132d3565b612d80565b9050919050565b613b3181613b06565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b6c81612e94565b82525050565b6000613b7e8383613b63565b60208301905092915050565b6000602082019050919050565b6000613ba282613b37565b613bac8185613b42565b9350613bb783613b53565b8060005b83811015613be8578151613bcf8882613b72565b9750613bda83613b8a565b925050600181019050613bbb565b5085935050505092915050565b600060a082019050613c0a6000830188612d8a565b613c176020830187613b28565b8181036040830152613c298186613b97565b9050613c386060830185612fb4565b613c456080830184612d8a565b9695505050505050565b600060c082019050613c646000830189612fb4565b613c716020830188612d8a565b613c7e6040830187613b28565b613c8b6060830186613b28565b613c986080830185612fb4565b613ca560a0830184612d8a565b979650505050505050565b600081519050613cbf81612ed2565b92915050565b600080600060608486031215613cde57613cdd612e6f565b5b6000613cec86828701613cb0565b9350506020613cfd86828701613cb0565b9250506040613d0e86828701613cb0565b9150509250925092565b6000604082019050613d2d6000830185612d8a565b613d3a6020830184612d8a565b939250505056fea26469706673582212204cc4c7d7199767197274e7de4f001560400d395d5c97a5506a6866322c2c120364736f6c634300080f00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000d7428c204c04aa856870d5a4ce913a73673d5db40000000000000000000000007863d1c6f74ebb0d4c7c0bdbe40eeb963de005a0

Deployed Bytecode

0x6080604052600436106102555760003560e01c806395d89b4111610139578063ca33e64c116100b6578063df20fd491161007a578063df20fd49146108e5578063e3763ded1461090e578063f2fde38b14610939578063f84ba65d14610962578063f887ea401461098b578063ffb54a99146109b65761025c565b8063ca33e64c146107ee578063d51ed1c814610819578063d7c0103214610856578063dd62ed3e1461087f578063dd7bd775146108bc5761025c565b8063bb4179fa116100fd578063bb4179fa1461071d578063bf56b37114610746578063c107532914610771578063c6d2577d1461079a578063c912ca53146107c55761025c565b806395d89b41146106365780639d1944f514610661578063a8aa1b311461068a578063a9059cbb146106b5578063ad5c4648146106f25761025c565b80632f54bf6e116101d2578063658d4b7f11610196578063658d4b7f146105265780636ddd17131461054f5780636fcba3771461057a57806370a08231146105a3578063893d20e8146105e05780638c0b5e221461060b5761025c565b80632f54bf6e1461042f578063313ce5671461046c57806338d6f84714610497578063571ac8b0146104c05780635c85974f146104fd5761025c565b806318160ddd1161021957806318160ddd146103485780631c06478314610373578063201e79911461039e57806323b872dd146103c75780632b112e49146104045761025c565b806301339c21146102615780630445b6671461027857806306fdde03146102a3578063095ea7b3146102ce5780631161ae391461030b5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109e1565b005b34801561028457600080fd5b5061028d610ab4565b60405161029a9190612d99565b60405180910390f35b3480156102af57600080fd5b506102b8610aba565b6040516102c59190612e4d565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190612efe565b610af7565b6040516103029190612f59565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d9190612f74565b610be9565b60405161033f9190612f59565b60405180910390f35b34801561035457600080fd5b5061035d610bfe565b60405161036a9190612d99565b60405180910390f35b34801561037f57600080fd5b50610388610c08565b6040516103959190612fc3565b60405180910390f35b3480156103aa57600080fd5b506103c560048036038101906103c09190612f74565b610c2e565b005b3480156103d357600080fd5b506103ee60048036038101906103e99190612fde565b610c88565b6040516103fb9190612f59565b60405180910390f35b34801561041057600080fd5b50610419610e6a565b6040516104269190612d99565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613031565b610ecb565b6040516104639190612f59565b60405180910390f35b34801561047857600080fd5b50610481610f24565b60405161048e919061307a565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b99190613031565b610f2d565b005b3480156104cc57600080fd5b506104e760048036038101906104e29190613031565b6110ed565b6040516104f49190612f59565b60405180910390f35b34801561050957600080fd5b50610524600480360381019061051f9190613095565b611102565b005b34801561053257600080fd5b5061054d600480360381019061054891906130ee565b6111a0565b005b34801561055b57600080fd5b50610564611243565b6040516105719190612f59565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c919061312e565b611256565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613031565b611332565b6040516105d79190612d99565b60405180910390f35b3480156105ec57600080fd5b506105f561137b565b6040516106029190612fc3565b60405180910390f35b34801561061757600080fd5b506106206113a4565b60405161062d9190612d99565b60405180910390f35b34801561064257600080fd5b5061064b6113aa565b6040516106589190612e4d565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613095565b6113e7565b005b34801561069657600080fd5b5061069f611448565b6040516106ac9190612fc3565b60405180910390f35b3480156106c157600080fd5b506106dc60048036038101906106d79190612efe565b61146e565b6040516106e99190612f59565b60405180910390f35b3480156106fe57600080fd5b50610707611483565b6040516107149190612fc3565b60405180910390f35b34801561072957600080fd5b50610744600480360381019061073f91906130ee565b6114a9565b005b34801561075257600080fd5b5061075b61154c565b6040516107689190612d99565b60405180910390f35b34801561077d57600080fd5b5061079860048036038101906107939190612efe565b611552565b005b3480156107a657600080fd5b506107af611628565b6040516107bc9190612d99565b60405180910390f35b3480156107d157600080fd5b506107ec60048036038101906107e79190613095565b61162e565b005b3480156107fa57600080fd5b506108036116cc565b6040516108109190612fc3565b60405180910390f35b34801561082557600080fd5b50610840600480360381019061083b9190613095565b6116f2565b60405161084d9190612d99565b60405180910390f35b34801561086257600080fd5b5061087d60048036038101906108789190613195565b611764565b005b34801561088b57600080fd5b506108a660048036038101906108a191906131e8565b611874565b6040516108b39190612d99565b60405180910390f35b3480156108c857600080fd5b506108e360048036038101906108de9190613031565b6118fb565b005b3480156108f157600080fd5b5061090c60048036038101906109079190613228565b611a2a565b005b34801561091a57600080fd5b50610923611a97565b6040516109309190612fc3565b60405180910390f35b34801561094557600080fd5b50610960600480360381019061095b91906132a6565b611abd565b005b34801561096e57600080fd5b50610989600480360381019061098491906130ee565b611b7f565b005b34801561099757600080fd5b506109a0611c22565b6040516109ad9190613332565b60405180910390f35b3480156109c257600080fd5b506109cb611c48565b6040516109d89190612f59565b60405180910390f35b6109ea33610ecb565b610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090613399565b60405180910390fd5b600060185414610a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6590613405565b60405180910390fd5b43601881905550426019819055506001601b60016101000a81548160ff0219169083151502179055506001601b60006101000a81548160ff021916908315150217905550565b601c5481565b60606040518060400160405280600781526020017f4761646461466900000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bd79190612d99565b60405180910390a36001905092915050565b600082610bf5836116f2565b11905092915050565b6000600354905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c3733610ecb565b610c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6d90613399565b60405180910390fd5b81601481905550806015819055505050565b6000600354600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e5657610dd5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c879092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e61848484611cdc565b90509392505050565b6000610ec6610e796000611332565b610eb8610ea7600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611332565b60035461244890919063ffffffff16565b61244890919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610f3633610ecb565b610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90613399565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc90613471565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611092576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611089906134dd565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006110fb82600354610af7565b9050919050565b61110b33610ecb565b61114a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114190613399565b60405180910390fd5b683635c9adc5dea00000811015611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90613549565b60405180910390fd5b8060048190555050565b6111a933610ecb565b6111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df90613399565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60009054906101000a900460ff1681565b61125f33610ecb565b61129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590613399565b60405180910390fd5b83600b8190555082600c8190555081600d819055506112d8826112ca858761245e90919063ffffffff16565b61245e90919063ffffffff16565b600e8190555080600f819055506107d0600e54111561132c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611323906135b5565b60405180910390fd5b50505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60045481565b60606040518060400160405280600581526020017f4741444441000000000000000000000000000000000000000000000000000000815250905090565b6113f033610ecb565b61142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690613399565b60405180910390fd5b620b71b0811061143e57600080fd5b80601a8190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061147b338484611cdc565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114b233610ecb565b6114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e890613399565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60185481565b61155b33610ecb565b61159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190613399565b60405180910390fd5b600081116115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490613621565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611623573d6000803e3d6000fd5b505050565b60195481565b61163733610ecb565b611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90613399565b60405180910390fd5b683635c9adc5dea000008110156116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b9906136b3565b60405180910390fd5b8060108190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061175d6116ff610e6a565b61174f6117406002611732601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611332565b611c5b90919063ffffffff16565b85611c5b90919063ffffffff16565b611c7190919063ffffffff16565b9050919050565b61176d33610ecb565b6117ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a390613399565b60405180910390fd5b82601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61190433610ecb565b611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a90613399565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c69061371f565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a3333610ecb565b611a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6990613399565b60405180910390fd5b81601b60006101000a81548160ff02191690831515021790555080601c819055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ac633610ecb565b611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc90613399565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b749190613760565b60405180910390a150565b611b8833610ecb565b611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90613399565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60019054906101000a900460ff1681565b60008183611c6991906137aa565b905092915050565b60008183611c7f9190613833565b905092915050565b6000838311158290611ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc69190612e4d565b60405180910390fd5b5082840390509392505050565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d62906138b0565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611def906138b0565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e9c5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fe757601b60019054906101000a900460ff16611fa157601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f615750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f979061391c565b60405180910390fd5b5b600454821115611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd90613988565b60405180910390fd5b5b601d60009054906101000a900460ff161561200e57612007848484612474565b9050612441565b612016612647565b156120245761202361271e565b5b6120ad826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c879092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121935750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122465750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156122455750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b1561225357829050612260565b61225d8584612c3c565b90505b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123415760105481600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ff91906139a8565b1115612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790613a4a565b60405180910390fd5b5b61239381600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245e90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124339190612d99565b60405180910390a360019150505b9392505050565b600081836124569190613a6a565b905092915050565b6000818361246c91906139a8565b905092915050565b60006124ff826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c879092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245e90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126349190612d99565b60405180910390a3600190509392505050565b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126b45750601d60009054906101000a900460ff16155b80156126cc5750601b60009054906101000a900460ff165b80156127195750601c54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601d60006101000a81548160ff0219169083151502179055506000612749601454601554610be9565b61275557600b54612758565b60005b90506000612798600261278a600e5461277c86601c54611c5b90919063ffffffff16565b611c7190919063ffffffff16565b611c7190919063ffffffff16565b905060006127b182601c5461244890919063ffffffff16565b90506000600267ffffffffffffffff8111156127d0576127cf613a9e565b5b6040519080825280602002602001820160405280156127fe5781602001602082028036833780820191505090505b509050308160008151811061281657612815613acd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061288757612886613acd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161292a959493929190613bf5565b600060405180830381600087803b15801561294457600080fd5b505af1158015612958573d6000803e3d6000fd5b505050506000612971824761244890919063ffffffff16565b9050600061299d61298c600289611c7190919063ffffffff16565b600e5461244890919063ffffffff16565b905060006129d960026129cb846129bd8c88611c5b90919063ffffffff16565b611c7190919063ffffffff16565b611c7190919063ffffffff16565b90506000612a04836129f6600d5487611c5b90919063ffffffff16565b611c7190919063ffffffff16565b90506000612a2f84612a21600c5488611c5b90919063ffffffff16565b611c7190919063ffffffff16565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612a99573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b02573d6000803e3d6000fd5b506000891115612c1557601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612b9596959493929190613c4f565b60606040518083038185885af1158015612bb3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612bd89190613cc5565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051612c0c929190613d18565b60405180910390a15b505050505050505050506000601d60006101000a81548160ff021916908315150217905550565b600080612c68600f54612c5a600e5486611c5b90919063ffffffff16565b611c7190919063ffffffff16565b9050612cbc81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245e90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d5c9190612d99565b60405180910390a3612d77818461244890919063ffffffff16565b91505092915050565b6000819050919050565b612d9381612d80565b82525050565b6000602082019050612dae6000830184612d8a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612dee578082015181840152602081019050612dd3565b83811115612dfd576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e1f82612db4565b612e298185612dbf565b9350612e39818560208601612dd0565b612e4281612e03565b840191505092915050565b60006020820190508181036000830152612e678184612e14565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e9f82612e74565b9050919050565b612eaf81612e94565b8114612eba57600080fd5b50565b600081359050612ecc81612ea6565b92915050565b612edb81612d80565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b60008060408385031215612f1557612f14612e6f565b5b6000612f2385828601612ebd565b9250506020612f3485828601612ee9565b9150509250929050565b60008115159050919050565b612f5381612f3e565b82525050565b6000602082019050612f6e6000830184612f4a565b92915050565b60008060408385031215612f8b57612f8a612e6f565b5b6000612f9985828601612ee9565b9250506020612faa85828601612ee9565b9150509250929050565b612fbd81612e94565b82525050565b6000602082019050612fd86000830184612fb4565b92915050565b600080600060608486031215612ff757612ff6612e6f565b5b600061300586828701612ebd565b935050602061301686828701612ebd565b925050604061302786828701612ee9565b9150509250925092565b60006020828403121561304757613046612e6f565b5b600061305584828501612ebd565b91505092915050565b600060ff82169050919050565b6130748161305e565b82525050565b600060208201905061308f600083018461306b565b92915050565b6000602082840312156130ab576130aa612e6f565b5b60006130b984828501612ee9565b91505092915050565b6130cb81612f3e565b81146130d657600080fd5b50565b6000813590506130e8816130c2565b92915050565b6000806040838503121561310557613104612e6f565b5b600061311385828601612ebd565b9250506020613124858286016130d9565b9150509250929050565b6000806000806080858703121561314857613147612e6f565b5b600061315687828801612ee9565b945050602061316787828801612ee9565b935050604061317887828801612ee9565b925050606061318987828801612ee9565b91505092959194509250565b6000806000606084860312156131ae576131ad612e6f565b5b60006131bc86828701612ebd565b93505060206131cd86828701612ebd565b92505060406131de86828701612ebd565b9150509250925092565b600080604083850312156131ff576131fe612e6f565b5b600061320d85828601612ebd565b925050602061321e85828601612ebd565b9150509250929050565b6000806040838503121561323f5761323e612e6f565b5b600061324d858286016130d9565b925050602061325e85828601612ee9565b9150509250929050565b600061327382612e74565b9050919050565b61328381613268565b811461328e57600080fd5b50565b6000813590506132a08161327a565b92915050565b6000602082840312156132bc576132bb612e6f565b5b60006132ca84828501613291565b91505092915050565b6000819050919050565b60006132f86132f36132ee84612e74565b6132d3565b612e74565b9050919050565b600061330a826132dd565b9050919050565b600061331c826132ff565b9050919050565b61332c81613311565b82525050565b60006020820190506133476000830184613323565b92915050565b7f4e4f5420414e204f574e45520000000000000000000000000000000000000000600082015250565b6000613383600c83612dbf565b915061338e8261334d565b602082019050919050565b600060208201905081810360008301526133b281613376565b9050919050565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b60006133ef601483612dbf565b91506133fa826133b9565b602082019050919050565b6000602082019050818103600083015261341e816133e2565b9050919050565b7f57652063616e206e6f7420626c61636b6c69737420726f757465720000000000600082015250565b600061345b601b83612dbf565b915061346682613425565b602082019050919050565b6000602082019050818103600083015261348a8161344e565b9050919050565b7f536e6970657220616c7265616479206578697374000000000000000000000000600082015250565b60006134c7601483612dbf565b91506134d282613491565b602082019050919050565b600060208201905081810360008301526134f6816134ba565b9050919050565b7f616d6f756e742073686f756c642062652067726561746572207468616e20316b600082015250565b6000613533602083612dbf565b915061353e826134fd565b602082019050919050565b6000602082019050818103600083015261356281613526565b9050919050565b7f746f74616c466565206d757374206265206c657373207468616e203230250000600082015250565b600061359f601e83612dbf565b91506135aa82613569565b602082019050919050565b600060208201905081810360008301526135ce81613592565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b600061360b601d83612dbf565b9150613616826135d5565b602082019050919050565b6000602082019050818103600083015261363a816135fe565b9050919050565b7f6d696e696d756d20686c6f64696e67206c696d69742063616e2062652073657460008201527f20316b0000000000000000000000000000000000000000000000000000000000602082015250565b600061369d602383612dbf565b91506136a882613641565b604082019050919050565b600060208201905081810360008301526136cc81613690565b9050919050565b7f4e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000613709600c83612dbf565b9150613714826136d3565b602082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b600061374a826132ff565b9050919050565b61375a8161373f565b82525050565b60006020820190506137756000830184613751565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137b582612d80565b91506137c083612d80565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137f9576137f861377b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061383e82612d80565b915061384983612d80565b92508261385957613858613804565b5b828204905092915050565b7f536e697065722064657465637465640000000000000000000000000000000000600082015250565b600061389a600f83612dbf565b91506138a582613864565b602082019050919050565b600060208201905081810360008301526138c98161388d565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000613906601a83612dbf565b9150613911826138d0565b602082019050919050565b60006020820190508181036000830152613935816138f9565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613972601183612dbf565b915061397d8261393c565b602082019050919050565b600060208201905081810360008301526139a181613965565b9050919050565b60006139b382612d80565b91506139be83612d80565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139f3576139f261377b565b5b828201905092915050565b7f4d617820686f6c64696e67206c696d6974206578636565646564000000000000600082015250565b6000613a34601a83612dbf565b9150613a3f826139fe565b602082019050919050565b60006020820190508181036000830152613a6381613a27565b9050919050565b6000613a7582612d80565b9150613a8083612d80565b925082821015613a9357613a9261377b565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613b21613b1c613b1784613afc565b6132d3565b612d80565b9050919050565b613b3181613b06565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b6c81612e94565b82525050565b6000613b7e8383613b63565b60208301905092915050565b6000602082019050919050565b6000613ba282613b37565b613bac8185613b42565b9350613bb783613b53565b8060005b83811015613be8578151613bcf8882613b72565b9750613bda83613b8a565b925050600181019050613bbb565b5085935050505092915050565b600060a082019050613c0a6000830188612d8a565b613c176020830187613b28565b8181036040830152613c298186613b97565b9050613c386060830185612fb4565b613c456080830184612d8a565b9695505050505050565b600060c082019050613c646000830189612fb4565b613c716020830188612d8a565b613c7e6040830187613b28565b613c8b6060830186613b28565b613c986080830185612fb4565b613ca560a0830184612d8a565b979650505050505050565b600081519050613cbf81612ed2565b92915050565b600080600060608486031215613cde57613cdd612e6f565b5b6000613cec86828701613cb0565b9350506020613cfd86828701613cb0565b9250506040613d0e86828701613cb0565b9150509250925092565b6000604082019050613d2d6000830185612d8a565b613d3a6020830184612d8a565b939250505056fea26469706673582212204cc4c7d7199767197274e7de4f001560400d395d5c97a5506a6866322c2c120364736f6c634300080f0033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000d7428c204c04aa856870d5a4ce913a73673d5db40000000000000000000000007863d1c6f74ebb0d4c7c0bdbe40eeb963de005a0

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _market (address): 0xD7428C204c04aA856870d5A4CE913A73673d5db4
Arg [2] : newOwner (address): 0x7863d1C6f74Ebb0d4C7c0bdBE40EEB963dE005A0

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000d7428c204c04aa856870d5a4ce913a73673d5db4
Arg [2] : 0000000000000000000000007863d1c6f74ebb0d4c7c0bdbe40eeb963de005a0


Deployed Bytecode Sourcemap

7371:12857:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16483:244;;;;;;;;;;;;;:::i;:::-;;8762:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10366:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10891:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19496:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10048:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8362:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18583:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11468:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19133:148;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5361:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10158:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19686:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11147:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16735:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17119:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8700:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17578:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10568:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10468:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7716:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10260:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18990:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8556:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11272:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7449:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17246:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8584:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16922:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8616:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18796:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8319:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19289:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18054:335;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10695:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19941:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18397:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8405:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5472:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17420:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8528:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8730:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16483:244;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;16551:1:::1;16537:10;;:15;16529:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16601:12;16588:10;:25;;;;16646:15;16624:19;:37;;;;16686:4;16672:11;;:18;;;;;;;;;;;;;;;;;;16715:4;16701:11;;:18;;;;;;;;;;;;;;;;;;16483:244::o:0;8762:50::-;;;;:::o;10366:94::-;10414:13;10447:5;;;;;;;;;;;;;;;;;10440:12;;10366:94;:::o;10891:248::-;10993:4;11050:6;11015:11;:23;11027:10;11015:23;;;;;;;;;;;;;;;:32;11039:7;11015:32;;;;;;;;;;;;;;;:41;;;;11093:7;11072:37;;11081:10;11072:37;;;11102:6;11072:37;;;;;;:::i;:::-;;;;;;;;11127:4;11120:11;;10891:248;;;;:::o;19496:182::-;19603:4;19664:6;19632:29;19652:8;19632:19;:29::i;:::-;:38;19625:45;;19496:182;;;;:::o;10048:102::-;10103:7;10130:12;;10123:19;;10048:102;:::o;8362:36::-;;;;;;;;;;;;;:::o;18583:205::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18721:7:::1;18703:15;:25;;;;18768:12;18739:26;:41;;;;18583:205:::0;;:::o;11468:419::-;11602:4;11658:12;;11623:11;:19;11635:6;11623:19;;;;;;;;;;;;;;;:31;11643:10;11623:31;;;;;;;;;;;;;;;;:47;11619:201;;11721:87;11775:6;11721:87;;;;;;;;;;;;;;;;;:11;:19;11733:6;11721:19;;;;;;;;;;;;;;;:31;11741:10;11721:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;11687:11;:19;11699:6;11687:19;;;;;;;;;;;;;;;:31;11707:10;11687:31;;;;;;;;;;;;;;;:121;;;;11619:201;11839:40;11853:6;11861:9;11872:6;11839:13;:40::i;:::-;11832:47;;11468:419;;;;;:::o;19133:148::-;19186:7;19213:60;19251:21;19269:1;19251:9;:21::i;:::-;19213:33;19230:15;19240:4;;;;;;;;;;;19230:9;:15::i;:::-;19213:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;19206:67;;19133:148;:::o;5361:103::-;5416:4;5451:5;;;;;;;;;;;5440:16;;:7;:16;;;5433:23;;5361:103;;;:::o;10158:94::-;10210:5;7648:2;10228:16;;10158:94;:::o;19686:247::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19787:6:::1;;;;;;;;;;;19767:27;;:8;:27;;::::0;19759:67:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19846:8;:18;19855:8;19846:18;;;;;;;;;;;;;;;;;;;;;;;;;19845:19;19837:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;19921:4;19900:8;:18;19909:8;19900:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;19686:247:::0;:::o;11147:117::-;11202:4;11226:30;11234:7;11243:12;;11226:7;:30::i;:::-;11219:37;;11147:117;;;:::o;16735:179::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;16819:10:::1;16809:6;:20;;16801:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16890:6;16876:11;:20;;;;16735:179:::0;:::o;17119:119::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17224:6:::1;17202:11;:19;17214:6;17202:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17119:119:::0;;:::o;8700:23::-;;;;;;;;;;;;;:::o;17578:468::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17773:13:::1;17758:12;:28;;;;17807:8;17797:7;:18;;;;17842:14;17826:13;:30;;;;17878:47;17910:14;17878:27;17896:8;17878:13;:17;;:27;;;;:::i;:::-;:31;;:47;;;;:::i;:::-;17867:8;:58;;;;17953:15;17936:14;:32;;;;18000:4;17988:8;;:16;;17980:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;17578:468:::0;;;;:::o;10568:119::-;10634:7;10661:9;:18;10671:7;10661:18;;;;;;;;;;;;;;;;10654:25;;10568:119;;;:::o;10468:92::-;10520:7;10547:5;;;;;;;;;;;10540:12;;10468:92;:::o;7716:59::-;;;;:::o;10260:98::-;10310:13;10343:7;;;;;;;;;;;;;;;;;10336:14;;10260:98;:::o;18990:135::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19079:6:::1;19073:3;:12;19065:21;;;::::0;::::1;;19114:3;19097:14;:20;;;;18990:135:::0;:::o;8556:19::-;;;;;;;;;;;;;:::o;11272:188::-;11379:4;11408:44;11422:10;11434:9;11445:6;11408:13;:44::i;:::-;11401:51;;11272:188;;;;:::o;7449:19::-;;;;;;;;;;;;;:::o;17246:166::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17396:8:::1;17364:21;:29;17386:6;17364:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;17246:166:::0;;:::o;8584:25::-;;;;:::o;16922:189::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17025:1:::1;17015:7;:11;17007:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;17079:5;17071:23;;:32;17095:7;17071:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16922:189:::0;;:::o;8616:34::-;;;;:::o;18796:186::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18888:10:::1;18878:6;:20;;18870:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18966:6;18948:15;:24;;;;18796:186:::0;:::o;8319:36::-;;;;;;;;;;;;;:::o;19289:199::-;19384:7;19416:64;19457:22;:20;:22::i;:::-;19416:36;19429:22;19449:1;19429:15;19439:4;;;;;;;;;;;19429:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;19416:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;19409:71;;19289:199;;;:::o;18054:335::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18257:22:::1;18233:21;;:46;;;;;;;;;;;;;;;;;;18314:22;18290:21;;:46;;;;;;;;;;;;;;;;;;18365:16;18347:15;;:34;;;;;;;;;;;;;;;;;;18054:335:::0;;;:::o;10695:188::-;10815:7;10847:11;:19;10859:6;10847:19;;;;;;;;;;;;;;;:28;10867:7;10847:28;;;;;;;;;;;;;;;;10840:35;;10695:188;;;;:::o;19941:166::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;20027:8:::1;:18;20036:8;20027:18;;;;;;;;;;;;;;;;;;;;;;;;;20019:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;20094:5;20073:8;:18;20082:8;20073:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;19941:166:::0;:::o;18397:178::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18525:8:::1;18511:11;;:22;;;;;;;;;;;;;;;;;;18560:7;18544:13;:23;;;;18397:178:::0;;:::o;8405:30::-;;;;;;;;;;;;;:::o;5472:136::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;5556:3:::1;5548:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;5575:25;5596:3;5575:25;;;;;;:::i;:::-;;;;;;;;5472:136:::0;:::o;17420:150::-;5297:19;5305:10;5297:7;:19::i;:::-;5289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17556:6:::1;17530:15;:23;17546:6;17530:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17420:150:::0;;:::o;8528:21::-;;;;;;;;;;;;;:::o;8730:23::-;;;;;;;;;;;;;:::o;3018:98::-;3076:7;3107:1;3103;:5;;;;:::i;:::-;3096:12;;3018:98;;;;:::o;3124:::-;3182:7;3213:1;3209;:5;;;;:::i;:::-;3202:12;;3124:98;;;;:::o;3336:240::-;3456:7;3514:1;3509;:6;;3517:12;3501:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3556:1;3552;:5;3545:12;;3336:240;;;;;:::o;11895:1681::-;12021:4;12047:8;:16;12056:6;12047:16;;;;;;;;;;;;;;;;;;;;;;;;;12046:17;12038:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12103:8;:19;12112:9;12103:19;;;;;;;;;;;;;;;;;;;;;;;;;12102:20;12094:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12158:15;:23;12174:6;12158:23;;;;;;;;;;;;;;;;;;;;;;;;;12157:24;:55;;;;;12186:15;:26;12202:9;12186:26;;;;;;;;;;;;;;;;;;;;;;;;;12185:27;12157:55;12153:388;;;12278:11;;;;;;;;;;;12273:188;;12350:4;;;;;;;;;;;12340:14;;:6;:14;;;;:35;;;;;12371:4;;;;;;;;;;;12358:17;;:9;:17;;;;12340:35;12310:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;12273:188;12496:11;;12486:6;:21;;12478:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;12153:388;12557:6;;;;;;;;;;;12553:87;;;12587:41;12602:6;12610:9;12621:6;12587:14;:41::i;:::-;12580:48;;;;12553:87;12656:16;:14;:16::i;:::-;12652:59;;;12689:10;:8;:10::i;:::-;12652:59;12743:90;12779:6;12743:90;;;;;;;;;;;;;;;;;:9;:17;12753:6;12743:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;12723:9;:17;12733:6;12723:17;;;;;;;;;;;;;;;:110;;;;12844:22;12895:11;:19;12907:6;12895:19;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;12931:11;:22;12943:9;12931:22;;;;;;;;;;;;;;;;;;;;;;;;;12895:58;:112;;;;12981:4;;;;;;;;;;;12971:14;;:6;:14;;;;:35;;;;;13002:4;;;;;;;;;;;12989:17;;:9;:17;;;;12971:35;12895:112;12877:265;;;13051:6;13034:23;;12877:265;;;13107:23;13115:6;13123;13107:7;:23::i;:::-;13090:40;;12877:265;13205:21;:32;13227:9;13205:32;;;;;;;;;;;;;;;;;;;;;;;;;13200:210;;13321:15;;13303:14;13280:9;:20;13290:9;13280:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:56;;13254:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;13200:210;13445:40;13470:14;13445:9;:20;13455:9;13445:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;13422:9;:20;13432:9;13422:20;;;;;;;;;;;;;;;:63;;;;13520:9;13503:43;;13512:6;13503:43;;;13531:14;13503:43;;;;;;:::i;:::-;;;;;;;;13564:4;13557:11;;;11895:1681;;;;;;:::o;2912:98::-;2970:7;3001:1;2997;:5;;;;:::i;:::-;2990:12;;2912:98;;;;:::o;2806:::-;2864:7;2895:1;2891;:5;;;;:::i;:::-;2884:12;;2806:98;;;;:::o;13584:401::-;13711:4;13748:90;13784:6;13748:90;;;;;;;;;;;;;;;;;:9;:17;13758:6;13748:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;13728:9;:17;13738:6;13728:17;;;;;;;;;;;;;;;:110;;;;13872:32;13897:6;13872:9;:20;13882:9;13872:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13849:9;:20;13859:9;13849:20;;;;;;;;;;;;;;;:55;;;;13937:9;13920:35;;13929:6;13920:35;;;13948:6;13920:35;;;;;;:::i;:::-;;;;;;;;13973:4;13966:11;;13584:401;;;;;:::o;14357:222::-;14406:4;14457;;;;;;;;;;;14443:18;;:10;:18;;;;:42;;;;;14479:6;;;;;;;;;;;14478:7;14443:42;:70;;;;;14502:11;;;;;;;;;;;14443:70;:128;;;;;14558:13;;14530:9;:24;14548:4;14530:24;;;;;;;;;;;;;;;;:41;;14443:128;14423:148;;14357:222;:::o;14587:1790::-;8887:4;8878:6;;:13;;;;;;;;;;;;;;;;;;14636:27:::1;14666:97;14696:15;;14726:26;;14666:15;:97::i;:::-;:142;;14796:12;;14666:142;;;14779:1;14666:142;14636:172;;14819:23;14845:101;14944:1;14845:80;14916:8;;14845:52;14877:19;14845:13;;:31;;:52;;;;:::i;:::-;:70;;:80;;;;:::i;:::-;:98;;:101;;;;:::i;:::-;14819:127;;14957:20;14980:34;14998:15;14980:13;;:17;;:34;;;;:::i;:::-;14957:57;;15027:21;15065:1;15051:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15027:40;;15096:4;15078;15083:1;15078:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15122:4;;;;;;;;;;;15112;15117:1;15112:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15137:21;15161;15137:45;;15195:6;;;;;;;;;;;:57;;;15267:12;15294:1;15310:4;15337;15357:15;15195:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15396:17;15416:40;15442:13;15416:21;:25;;:40;;;;:::i;:::-;15396:60;;15469:19;15491:40;15504:26;15528:1;15504:19;:23;;:26;;;;:::i;:::-;15491:8;;:12;;:40;;;;:::i;:::-;15469:62;;15544:26;15573:100;15671:1;15573:79;15640:11;15573:48;15601:19;15573:9;:27;;:48;;;;:::i;:::-;:66;;:79;;;;:::i;:::-;:97;;:100;;;;:::i;:::-;15544:129;;15684:26;15713:69;15760:11;15713:28;15727:13;;15713:9;:13;;:28;;;;:::i;:::-;:32;;:69;;;;:::i;:::-;15684:98;;15793:24;15820:39;15847:11;15820:22;15834:7;;15820:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;15793:66;;15880:21;;;;;;;;;;;15872:39;;:59;15912:18;15872:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15950:15;;;;;;;;;;;15942:33;;:51;15976:16;15942:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16028:1;16010:15;:19;16006:364;;;16046:6;;;;;;;;;;;:22;;;16076:18;16122:4;16146:15;16180:1;16200::::0;16220:21:::1;;;;;;;;;;;16260:15;16046:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16310:48;16322:18;16342:15;16310:48;;;;;;;:::i;:::-;;;;;;;;16006:364;14625:1752;;;;;;;;;;8923:5:::0;8914:6;;:14;;;;;;;;;;;;;;;;;;14587:1790::o;13993:356::-;14078:7;14103:17;14123:40;14148:14;;14123:20;14134:8;;14123:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;14103:60;;14203:39;14232:9;14203;:24;14221:4;14203:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14176:9;:24;14194:4;14176:24;;;;;;;;;;;;;;;:66;;;;14283:4;14258:42;;14267:6;14258:42;;;14290:9;14258:42;;;;;;:::i;:::-;;;;;;;;14320:21;14331:9;14320:6;:10;;:21;;;;:::i;:::-;14313:28;;;13993:356;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:118::-;4413:24;4431:5;4413:24;:::i;:::-;4408:3;4401:37;4326:118;;:::o;4450:222::-;4543:4;4581:2;4570:9;4566:18;4558:26;;4594:71;4662:1;4651:9;4647:17;4638:6;4594:71;:::i;:::-;4450:222;;;;:::o;4678:619::-;4755:6;4763;4771;4820:2;4808:9;4799:7;4795:23;4791:32;4788:119;;;4826:79;;:::i;:::-;4788:119;4946:1;4971:53;5016:7;5007:6;4996:9;4992:22;4971:53;:::i;:::-;4961:63;;4917:117;5073:2;5099:53;5144:7;5135:6;5124:9;5120:22;5099:53;:::i;:::-;5089:63;;5044:118;5201:2;5227:53;5272:7;5263:6;5252:9;5248:22;5227:53;:::i;:::-;5217:63;;5172:118;4678:619;;;;;:::o;5303:329::-;5362:6;5411:2;5399:9;5390:7;5386:23;5382:32;5379:119;;;5417:79;;:::i;:::-;5379:119;5537:1;5562:53;5607:7;5598:6;5587:9;5583:22;5562:53;:::i;:::-;5552:63;;5508:117;5303:329;;;;:::o;5638:86::-;5673:7;5713:4;5706:5;5702:16;5691:27;;5638:86;;;:::o;5730:112::-;5813:22;5829:5;5813:22;:::i;:::-;5808:3;5801:35;5730:112;;:::o;5848:214::-;5937:4;5975:2;5964:9;5960:18;5952:26;;5988:67;6052:1;6041:9;6037:17;6028:6;5988:67;:::i;:::-;5848:214;;;;:::o;6068:329::-;6127:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;;:::i;:::-;6144:119;6302:1;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6273:117;6068:329;;;;:::o;6403:116::-;6473:21;6488:5;6473:21;:::i;:::-;6466:5;6463:32;6453:60;;6509:1;6506;6499:12;6453:60;6403:116;:::o;6525:133::-;6568:5;6606:6;6593:20;6584:29;;6622:30;6646:5;6622:30;:::i;:::-;6525:133;;;;:::o;6664:468::-;6729:6;6737;6786:2;6774:9;6765:7;6761:23;6757:32;6754:119;;;6792:79;;:::i;:::-;6754:119;6912:1;6937:53;6982:7;6973:6;6962:9;6958:22;6937:53;:::i;:::-;6927:63;;6883:117;7039:2;7065:50;7107:7;7098:6;7087:9;7083:22;7065:50;:::i;:::-;7055:60;;7010:115;6664:468;;;;;:::o;7138:765::-;7224:6;7232;7240;7248;7297:3;7285:9;7276:7;7272:23;7268:33;7265:120;;;7304:79;;:::i;:::-;7265:120;7424:1;7449:53;7494:7;7485:6;7474:9;7470:22;7449:53;:::i;:::-;7439:63;;7395:117;7551:2;7577:53;7622:7;7613:6;7602:9;7598:22;7577:53;:::i;:::-;7567:63;;7522:118;7679:2;7705:53;7750:7;7741:6;7730:9;7726:22;7705:53;:::i;:::-;7695:63;;7650:118;7807:2;7833:53;7878:7;7869:6;7858:9;7854:22;7833:53;:::i;:::-;7823:63;;7778:118;7138:765;;;;;;;:::o;7909:619::-;7986:6;7994;8002;8051:2;8039:9;8030:7;8026:23;8022:32;8019:119;;;8057:79;;:::i;:::-;8019:119;8177:1;8202:53;8247:7;8238:6;8227:9;8223:22;8202:53;:::i;:::-;8192:63;;8148:117;8304:2;8330:53;8375:7;8366:6;8355:9;8351:22;8330:53;:::i;:::-;8320:63;;8275:118;8432:2;8458:53;8503:7;8494:6;8483:9;8479:22;8458:53;:::i;:::-;8448:63;;8403:118;7909:619;;;;;:::o;8534:474::-;8602:6;8610;8659:2;8647:9;8638:7;8634:23;8630:32;8627:119;;;8665:79;;:::i;:::-;8627:119;8785:1;8810:53;8855:7;8846:6;8835:9;8831:22;8810:53;:::i;:::-;8800:63;;8756:117;8912:2;8938:53;8983:7;8974:6;8963:9;8959:22;8938:53;:::i;:::-;8928:63;;8883:118;8534:474;;;;;:::o;9014:468::-;9079:6;9087;9136:2;9124:9;9115:7;9111:23;9107:32;9104:119;;;9142:79;;:::i;:::-;9104:119;9262:1;9287:50;9329:7;9320:6;9309:9;9305:22;9287:50;:::i;:::-;9277:60;;9233:114;9386:2;9412:53;9457:7;9448:6;9437:9;9433:22;9412:53;:::i;:::-;9402:63;;9357:118;9014:468;;;;;:::o;9488:104::-;9533:7;9562:24;9580:5;9562:24;:::i;:::-;9551:35;;9488:104;;;:::o;9598:138::-;9679:32;9705:5;9679:32;:::i;:::-;9672:5;9669:43;9659:71;;9726:1;9723;9716:12;9659:71;9598:138;:::o;9742:155::-;9796:5;9834:6;9821:20;9812:29;;9850:41;9885:5;9850:41;:::i;:::-;9742:155;;;;:::o;9903:345::-;9970:6;10019:2;10007:9;9998:7;9994:23;9990:32;9987:119;;;10025:79;;:::i;:::-;9987:119;10145:1;10170:61;10223:7;10214:6;10203:9;10199:22;10170:61;:::i;:::-;10160:71;;10116:125;9903:345;;;;:::o;10254:60::-;10282:3;10303:5;10296:12;;10254:60;;;:::o;10320:142::-;10370:9;10403:53;10421:34;10430:24;10448:5;10430:24;:::i;:::-;10421:34;:::i;:::-;10403:53;:::i;:::-;10390:66;;10320:142;;;:::o;10468:126::-;10518:9;10551:37;10582:5;10551:37;:::i;:::-;10538:50;;10468:126;;;:::o;10600:141::-;10665:9;10698:37;10729:5;10698:37;:::i;:::-;10685:50;;10600:141;;;:::o;10747:161::-;10849:52;10895:5;10849:52;:::i;:::-;10844:3;10837:65;10747:161;;:::o;10914:252::-;11022:4;11060:2;11049:9;11045:18;11037:26;;11073:86;11156:1;11145:9;11141:17;11132:6;11073:86;:::i;:::-;10914:252;;;;:::o;11172:162::-;11312:14;11308:1;11300:6;11296:14;11289:38;11172:162;:::o;11340:366::-;11482:3;11503:67;11567:2;11562:3;11503:67;:::i;:::-;11496:74;;11579:93;11668:3;11579:93;:::i;:::-;11697:2;11692:3;11688:12;11681:19;;11340:366;;;:::o;11712:419::-;11878:4;11916:2;11905:9;11901:18;11893:26;;11965:9;11959:4;11955:20;11951:1;11940:9;11936:17;11929:47;11993:131;12119:4;11993:131;:::i;:::-;11985:139;;11712:419;;;:::o;12137:170::-;12277:22;12273:1;12265:6;12261:14;12254:46;12137:170;:::o;12313:366::-;12455:3;12476:67;12540:2;12535:3;12476:67;:::i;:::-;12469:74;;12552:93;12641:3;12552:93;:::i;:::-;12670:2;12665:3;12661:12;12654:19;;12313:366;;;:::o;12685:419::-;12851:4;12889:2;12878:9;12874:18;12866:26;;12938:9;12932:4;12928:20;12924:1;12913:9;12909:17;12902:47;12966:131;13092:4;12966:131;:::i;:::-;12958:139;;12685:419;;;:::o;13110:177::-;13250:29;13246:1;13238:6;13234:14;13227:53;13110:177;:::o;13293:366::-;13435:3;13456:67;13520:2;13515:3;13456:67;:::i;:::-;13449:74;;13532:93;13621:3;13532:93;:::i;:::-;13650:2;13645:3;13641:12;13634:19;;13293:366;;;:::o;13665:419::-;13831:4;13869:2;13858:9;13854:18;13846:26;;13918:9;13912:4;13908:20;13904:1;13893:9;13889:17;13882:47;13946:131;14072:4;13946:131;:::i;:::-;13938:139;;13665:419;;;:::o;14090:170::-;14230:22;14226:1;14218:6;14214:14;14207:46;14090:170;:::o;14266:366::-;14408:3;14429:67;14493:2;14488:3;14429:67;:::i;:::-;14422:74;;14505:93;14594:3;14505:93;:::i;:::-;14623:2;14618:3;14614:12;14607:19;;14266:366;;;:::o;14638:419::-;14804:4;14842:2;14831:9;14827:18;14819:26;;14891:9;14885:4;14881:20;14877:1;14866:9;14862:17;14855:47;14919:131;15045:4;14919:131;:::i;:::-;14911:139;;14638:419;;;:::o;15063:182::-;15203:34;15199:1;15191:6;15187:14;15180:58;15063:182;:::o;15251:366::-;15393:3;15414:67;15478:2;15473:3;15414:67;:::i;:::-;15407:74;;15490:93;15579:3;15490:93;:::i;:::-;15608:2;15603:3;15599:12;15592:19;;15251:366;;;:::o;15623:419::-;15789:4;15827:2;15816:9;15812:18;15804:26;;15876:9;15870:4;15866:20;15862:1;15851:9;15847:17;15840:47;15904:131;16030:4;15904:131;:::i;:::-;15896:139;;15623:419;;;:::o;16048:180::-;16188:32;16184:1;16176:6;16172:14;16165:56;16048:180;:::o;16234:366::-;16376:3;16397:67;16461:2;16456:3;16397:67;:::i;:::-;16390:74;;16473:93;16562:3;16473:93;:::i;:::-;16591:2;16586:3;16582:12;16575:19;;16234:366;;;:::o;16606:419::-;16772:4;16810:2;16799:9;16795:18;16787:26;;16859:9;16853:4;16849:20;16845:1;16834:9;16830:17;16823:47;16887:131;17013:4;16887:131;:::i;:::-;16879:139;;16606:419;;;:::o;17031:179::-;17171:31;17167:1;17159:6;17155:14;17148:55;17031:179;:::o;17216:366::-;17358:3;17379:67;17443:2;17438:3;17379:67;:::i;:::-;17372:74;;17455:93;17544:3;17455:93;:::i;:::-;17573:2;17568:3;17564:12;17557:19;;17216:366;;;:::o;17588:419::-;17754:4;17792:2;17781:9;17777:18;17769:26;;17841:9;17835:4;17831:20;17827:1;17816:9;17812:17;17805:47;17869:131;17995:4;17869:131;:::i;:::-;17861:139;;17588:419;;;:::o;18013:222::-;18153:34;18149:1;18141:6;18137:14;18130:58;18222:5;18217:2;18209:6;18205:15;18198:30;18013:222;:::o;18241:366::-;18383:3;18404:67;18468:2;18463:3;18404:67;:::i;:::-;18397:74;;18480:93;18569:3;18480:93;:::i;:::-;18598:2;18593:3;18589:12;18582:19;;18241:366;;;:::o;18613:419::-;18779:4;18817:2;18806:9;18802:18;18794:26;;18866:9;18860:4;18856:20;18852:1;18841:9;18837:17;18830:47;18894:131;19020:4;18894:131;:::i;:::-;18886:139;;18613:419;;;:::o;19038:162::-;19178:14;19174:1;19166:6;19162:14;19155:38;19038:162;:::o;19206:366::-;19348:3;19369:67;19433:2;19428:3;19369:67;:::i;:::-;19362:74;;19445:93;19534:3;19445:93;:::i;:::-;19563:2;19558:3;19554:12;19547:19;;19206:366;;;:::o;19578:419::-;19744:4;19782:2;19771:9;19767:18;19759:26;;19831:9;19825:4;19821:20;19817:1;19806:9;19802:17;19795:47;19859:131;19985:4;19859:131;:::i;:::-;19851:139;;19578:419;;;:::o;20003:134::-;20061:9;20094:37;20125:5;20094:37;:::i;:::-;20081:50;;20003:134;;;:::o;20143:147::-;20238:45;20277:5;20238:45;:::i;:::-;20233:3;20226:58;20143:147;;:::o;20296:238::-;20397:4;20435:2;20424:9;20420:18;20412:26;;20448:79;20524:1;20513:9;20509:17;20500:6;20448:79;:::i;:::-;20296:238;;;;:::o;20540:180::-;20588:77;20585:1;20578:88;20685:4;20682:1;20675:15;20709:4;20706:1;20699:15;20726:348;20766:7;20789:20;20807:1;20789:20;:::i;:::-;20784:25;;20823:20;20841:1;20823:20;:::i;:::-;20818:25;;21011:1;20943:66;20939:74;20936:1;20933:81;20928:1;20921:9;20914:17;20910:105;20907:131;;;21018:18;;:::i;:::-;20907:131;21066:1;21063;21059:9;21048:20;;20726:348;;;;:::o;21080:180::-;21128:77;21125:1;21118:88;21225:4;21222:1;21215:15;21249:4;21246:1;21239:15;21266:185;21306:1;21323:20;21341:1;21323:20;:::i;:::-;21318:25;;21357:20;21375:1;21357:20;:::i;:::-;21352:25;;21396:1;21386:35;;21401:18;;:::i;:::-;21386:35;21443:1;21440;21436:9;21431:14;;21266:185;;;;:::o;21457:165::-;21597:17;21593:1;21585:6;21581:14;21574:41;21457:165;:::o;21628:366::-;21770:3;21791:67;21855:2;21850:3;21791:67;:::i;:::-;21784:74;;21867:93;21956:3;21867:93;:::i;:::-;21985:2;21980:3;21976:12;21969:19;;21628:366;;;:::o;22000:419::-;22166:4;22204:2;22193:9;22189:18;22181:26;;22253:9;22247:4;22243:20;22239:1;22228:9;22224:17;22217:47;22281:131;22407:4;22281:131;:::i;:::-;22273:139;;22000:419;;;:::o;22425:176::-;22565:28;22561:1;22553:6;22549:14;22542:52;22425:176;:::o;22607:366::-;22749:3;22770:67;22834:2;22829:3;22770:67;:::i;:::-;22763:74;;22846:93;22935:3;22846:93;:::i;:::-;22964:2;22959:3;22955:12;22948:19;;22607:366;;;:::o;22979:419::-;23145:4;23183:2;23172:9;23168:18;23160:26;;23232:9;23226:4;23222:20;23218:1;23207:9;23203:17;23196:47;23260:131;23386:4;23260:131;:::i;:::-;23252:139;;22979:419;;;:::o;23404:167::-;23544:19;23540:1;23532:6;23528:14;23521:43;23404:167;:::o;23577:366::-;23719:3;23740:67;23804:2;23799:3;23740:67;:::i;:::-;23733:74;;23816:93;23905:3;23816:93;:::i;:::-;23934:2;23929:3;23925:12;23918:19;;23577:366;;;:::o;23949:419::-;24115:4;24153:2;24142:9;24138:18;24130:26;;24202:9;24196:4;24192:20;24188:1;24177:9;24173:17;24166:47;24230:131;24356:4;24230:131;:::i;:::-;24222:139;;23949:419;;;:::o;24374:305::-;24414:3;24433:20;24451:1;24433:20;:::i;:::-;24428:25;;24467:20;24485:1;24467:20;:::i;:::-;24462:25;;24621:1;24553:66;24549:74;24546:1;24543:81;24540:107;;;24627:18;;:::i;:::-;24540:107;24671:1;24668;24664:9;24657:16;;24374:305;;;;:::o;24685:176::-;24825:28;24821:1;24813:6;24809:14;24802:52;24685:176;:::o;24867:366::-;25009:3;25030:67;25094:2;25089:3;25030:67;:::i;:::-;25023:74;;25106:93;25195:3;25106:93;:::i;:::-;25224:2;25219:3;25215:12;25208:19;;24867:366;;;:::o;25239:419::-;25405:4;25443:2;25432:9;25428:18;25420:26;;25492:9;25486:4;25482:20;25478:1;25467:9;25463:17;25456:47;25520:131;25646:4;25520:131;:::i;:::-;25512:139;;25239:419;;;:::o;25664:191::-;25704:4;25724:20;25742:1;25724:20;:::i;:::-;25719:25;;25758:20;25776:1;25758:20;:::i;:::-;25753:25;;25797:1;25794;25791:8;25788:34;;;25802:18;;:::i;:::-;25788:34;25847:1;25844;25840:9;25832:17;;25664:191;;;;:::o;25861:180::-;25909:77;25906:1;25899:88;26006:4;26003:1;25996:15;26030:4;26027:1;26020:15;26047:180;26095:77;26092:1;26085:88;26192:4;26189:1;26182:15;26216:4;26213:1;26206:15;26233:85;26278:7;26307:5;26296:16;;26233:85;;;:::o;26324:158::-;26382:9;26415:61;26433:42;26442:32;26468:5;26442:32;:::i;:::-;26433:42;:::i;:::-;26415:61;:::i;:::-;26402:74;;26324:158;;;:::o;26488:147::-;26583:45;26622:5;26583:45;:::i;:::-;26578:3;26571:58;26488:147;;:::o;26641:114::-;26708:6;26742:5;26736:12;26726:22;;26641:114;;;:::o;26761:184::-;26860:11;26894:6;26889:3;26882:19;26934:4;26929:3;26925:14;26910:29;;26761:184;;;;:::o;26951:132::-;27018:4;27041:3;27033:11;;27071:4;27066:3;27062:14;27054:22;;26951:132;;;:::o;27089:108::-;27166:24;27184:5;27166:24;:::i;:::-;27161:3;27154:37;27089:108;;:::o;27203:179::-;27272:10;27293:46;27335:3;27327:6;27293:46;:::i;:::-;27371:4;27366:3;27362:14;27348:28;;27203:179;;;;:::o;27388:113::-;27458:4;27490;27485:3;27481:14;27473:22;;27388:113;;;:::o;27537:732::-;27656:3;27685:54;27733:5;27685:54;:::i;:::-;27755:86;27834:6;27829:3;27755:86;:::i;:::-;27748:93;;27865:56;27915:5;27865:56;:::i;:::-;27944:7;27975:1;27960:284;27985:6;27982:1;27979:13;27960:284;;;28061:6;28055:13;28088:63;28147:3;28132:13;28088:63;:::i;:::-;28081:70;;28174:60;28227:6;28174:60;:::i;:::-;28164:70;;28020:224;28007:1;28004;28000:9;27995:14;;27960:284;;;27964:14;28260:3;28253:10;;27661:608;;;27537:732;;;;:::o;28275:831::-;28538:4;28576:3;28565:9;28561:19;28553:27;;28590:71;28658:1;28647:9;28643:17;28634:6;28590:71;:::i;:::-;28671:80;28747:2;28736:9;28732:18;28723:6;28671:80;:::i;:::-;28798:9;28792:4;28788:20;28783:2;28772:9;28768:18;28761:48;28826:108;28929:4;28920:6;28826:108;:::i;:::-;28818:116;;28944:72;29012:2;29001:9;28997:18;28988:6;28944:72;:::i;:::-;29026:73;29094:3;29083:9;29079:19;29070:6;29026:73;:::i;:::-;28275:831;;;;;;;;:::o;29112:807::-;29361:4;29399:3;29388:9;29384:19;29376:27;;29413:71;29481:1;29470:9;29466:17;29457:6;29413:71;:::i;:::-;29494:72;29562:2;29551:9;29547:18;29538:6;29494:72;:::i;:::-;29576:80;29652:2;29641:9;29637:18;29628:6;29576:80;:::i;:::-;29666;29742:2;29731:9;29727:18;29718:6;29666:80;:::i;:::-;29756:73;29824:3;29813:9;29809:19;29800:6;29756:73;:::i;:::-;29839;29907:3;29896:9;29892:19;29883:6;29839:73;:::i;:::-;29112:807;;;;;;;;;:::o;29925:143::-;29982:5;30013:6;30007:13;29998:22;;30029:33;30056:5;30029:33;:::i;:::-;29925:143;;;;:::o;30074:663::-;30162:6;30170;30178;30227:2;30215:9;30206:7;30202:23;30198:32;30195:119;;;30233:79;;:::i;:::-;30195:119;30353:1;30378:64;30434:7;30425:6;30414:9;30410:22;30378:64;:::i;:::-;30368:74;;30324:128;30491:2;30517:64;30573:7;30564:6;30553:9;30549:22;30517:64;:::i;:::-;30507:74;;30462:129;30630:2;30656:64;30712:7;30703:6;30692:9;30688:22;30656:64;:::i;:::-;30646:74;;30601:129;30074:663;;;;;:::o;30743:332::-;30864:4;30902:2;30891:9;30887:18;30879:26;;30915:71;30983:1;30972:9;30968:17;30959:6;30915:71;:::i;:::-;30996:72;31064:2;31053:9;31049:18;31040:6;30996:72;:::i;:::-;30743:332;;;;;:::o

Swarm Source

ipfs://4cc4c7d7199767197274e7de4f001560400d395d5c97a5506a6866322c2c1203
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.