ETH Price: $3,281.69 (+0.16%)

Token

Ethylene 2.0 (C2H4)
 

Overview

Max Total Supply

9,918,484.312604450579354502 C2H4

Holders

140

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,427.123543151131020699 C2H4

Value
$0.00
0xcb3850451feb8d50518ad2b491906fbaf44dd56a
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:
AutoDoubleRewards

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-06
*/

/*
 * Https://t.me/ethyleneerc
 *
 * 
 * SPDX-License-Identifier: None
 */

pragma solidity 0.8.19;

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 balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

interface IDEXPair {function sync() external;}

interface IDEXRouter {
    function factory() external pure returns (address);    
    function WETH() external pure returns (address);
    function addLiquidityETH(address token,uint amountTokenDesired,uint amountTokenMin,uint amountETHMin,address to,uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
    
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable;
}

contract AutoDoubleRewards is IERC20 {
    string private _name;
    string private _symbol;
    uint8 constant _decimals = 18;
    uint256 _totalSupply;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public limitless;
    mapping(address => bool) public ai;
    mapping(address => bool) public isExludedFromMaxWallet;
    mapping(address => address) public chosenReward;

    bool public renounced = false;

    uint256 public tax;
    uint256 public rewards = 1;
    uint256 public liq = 10;
    uint256 public marketing = 4;
    uint256 private swapAt = _totalSupply / 10_000;
    uint256 public maxWalletInPermille = 25;
    uint256 private maxTx = 100;
    uint256 public maxRewardsPerTx = 5;

    uint256 public sellMultiplier = 200;
    uint256 public sellDivisor = 100;

    address public ceo;
    address public router;
    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public immutable WETH;
    address public mainReward;
    address public marketingWallet;

    address public immutable pair;
    address[] public pairs;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised; 
    }

    mapping (address => uint256) public shareholderIndexes;
    mapping (address => uint256) public lastClaim;
    mapping (address => Share) public shares;
    mapping (address => bool) public addressNotGettingRewards;

    uint256 public totalShares;
    uint256 public totalDistributed;
    uint256 public rewardsPerShare;
    uint256 private veryLargeNumber = 10 ** 36;
    uint256 private rewardTokenBalanceBefore;
    uint256 private currentHolder;

    address[] private shareholders;

    modifier onlyCEO(){
        require (msg.sender == ceo, "Only the ceo can do that");
        _;
    }

    constructor(string memory name_, string memory symbol_, uint256 totalSupply_, address marketing_, address rewardsAddress, address router_, address weth_, uint256 maxWalletInPermille_) payable {
        require(msg.value >= 0.005 ether, "Need 0.005 ETH to test the new reward");
        ceo = msg.sender;
        _name = name_;
        _symbol = symbol_;
        _totalSupply = totalSupply_ * (10**_decimals);
        marketingWallet = marketing_;
        router = router_;
        maxWalletInPermille = maxWalletInPermille_;
        WETH = weth_;

        pair = IDEXFactory(IDEXRouter(router).factory()).createPair(WETH, address(this));
        _allowances[address(this)][router] = type(uint256).max;
        _allowances[ceo][router] = type(uint256).max;
        isExludedFromMaxWallet[pair] = true;
        isExludedFromMaxWallet[address(this)] = true;
        pairs.push(pair);

        addressNotGettingRewards[pair] = true;
        addressNotGettingRewards[address(this)] = true;

        limitless[ceo] = true;
        limitless[address(this)] = true;
        tax = rewards + liq + marketing;

        _balances[ceo] = _totalSupply;
        emit Transfer(address(0), ceo, _totalSupply);        

        mainReward = rewardsAddress;
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = mainReward;

        IDEXRouter(router).swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            ceo,
            block.timestamp
        );
    }

    receive() external payable {}
    function name() public view override returns (string memory) {return _name;}
    function totalSupply() public view override returns (uint256) {return _totalSupply - _balances[DEAD];}
    function decimals() public pure override returns (uint8) {return _decimals;}
    function symbol() public view override returns (string memory) {return _symbol;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function rescueEth(uint256 amount) external onlyCEO {(bool success,) = address(ceo).call{value: amount}("");success = true;}
    function rescueToken(address token, uint256 amount) external onlyCEO {IERC20(token).transfer(ceo, amount);}
    function allowance(address holder, address spender) public view override returns (uint256) {return _allowances[holder][spender];}
    function transfer(address recipient, uint256 amount) external override returns (bool) {return _transferFrom(msg.sender, recipient, amount);}
    function approveMax(address spender) external returns (bool) {return approve(spender, type(uint256).max);}
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        require(spender != address(0), "Can't use zero address here");
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0), "Can't use zero address here");
        _allowances[msg.sender][spender]  = allowance(msg.sender, spender) + addedValue;
        emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0), "Can't use zero address here");
        require(allowance(msg.sender, spender) >= subtractedValue, "Can't subtract more than current allowance");
        _allowances[msg.sender][spender]  = allowance(msg.sender, spender) - subtractedValue;
        emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            require(_allowances[sender][msg.sender] >= amount, "Insufficient Allowance");
            _allowances[sender][msg.sender] -= amount;
            emit Approval(sender, msg.sender, _allowances[sender][msg.sender]);
        }
        return _transferFrom(sender, recipient, amount);
    }

    function setTaxes(uint256 rewardsTax, uint256 liqTax, uint256 marketingTax, uint256 newSellMultiplier, uint256 newSellDivisor) external onlyCEO {
        if(renounced) require(rewardsTax + liqTax + marketingTax <= tax , "Once renounced, taxes can only be lowered");
        rewards = rewardsTax;
        liq = liqTax;
        marketing = marketingTax;
        tax = rewards + liq + marketing;
        sellMultiplier = newSellMultiplier;
        sellDivisor = newSellDivisor;
        require(tax * sellMultiplier / sellDivisor < 100, "Tax safety limit");     
    }
    
    function setMaxWalletInPermille(uint256 permille) external onlyCEO {
        if(renounced) {
            maxWalletInPermille = 1000;
            return;
        }
        maxWalletInPermille = permille;
        require(maxWalletInPermille >= 10, "MaxWallet safety limit");
    }

    function setMaxTxInPercentOfMaxWallet(uint256 percent) external onlyCEO {
        if(renounced) {maxTx = 100; return;}
        maxTx = percent;
        require(maxTx >= 75, "MaxTx safety limit");
    }
    
    function setNameAndSymbol(string memory newName, string memory newSymbol) external onlyCEO {
        _name = newName;
        _symbol = newSymbol;
    }

    function setMaxRewardsPerTx(uint256 howMany) external onlyCEO {
        maxRewardsPerTx = howMany;
    }    
    
    function setLimitlessWallet(address limitlessWallet, bool status) external onlyCEO {
        if(renounced) return;
        isExludedFromMaxWallet[limitlessWallet] = status;
        addressNotGettingRewards[limitlessWallet] = status;
        limitless[limitlessWallet] = status;
    }

    function excludeFromRewards(address excludedWallet, bool status) external onlyCEO {
        addressNotGettingRewards[excludedWallet] = status;
    }
    
    function changeMarketingWallet(address newMarketingWallet) external onlyCEO {
        marketingWallet = newMarketingWallet;
    }    
    
    function changeMainRewards(address newRewards) external payable onlyCEO {
        require(msg.value >= 0.005 ether, "Need 0.005 ETH to test the new reward");
        mainReward = newRewards;
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = mainReward;

        IDEXRouter(router).swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            ceo,
            block.timestamp
        );
    }

    function excludeFromMax(address excludedWallet, bool status) external onlyCEO {
        isExludedFromMaxWallet[excludedWallet] = status;
    }    

    function setAi(address aiWallet, bool status) external onlyCEO {
        ai[aiWallet] = status;
    }    

    function renounceOnwrship() external onlyCEO {
        if(renounced) return;
        renounced = true;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (limitless[sender] || limitless[recipient])  _lowGasTransfer(sender, recipient, amount);
        else {
            amount = takeTax(sender, recipient, amount);
            _lowGasTransfer(sender, recipient, amount);
            if(maxRewardsPerTx > 0) payRewards(maxRewardsPerTx);
        }
        if(!addressNotGettingRewards[sender]) setShare(sender);
        if(!addressNotGettingRewards[recipient]) setShare(recipient);
        return true;
    }

    function takeTax(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(maxWalletInPermille <= 1000) {    
            if(!isExludedFromMaxWallet[recipient]) require(_balances[recipient] + amount <= _totalSupply * maxWalletInPermille / 1000, "MaxWallet");
            if(!isExludedFromMaxWallet[sender]) require(amount <= _totalSupply * maxWalletInPermille * maxTx / 1000 / 100, "MaxTx");
        }

        if(ai[sender] || ai[recipient]) {
            require(amount <= _totalSupply / 200, "MaxTxAi");
            uint256 aiTax = amount * 75 / 100;
            if(isPair(recipient)) _lowGasTransfer(sender, recipient, aiTax);
            else if(isPair(sender)) _lowGasTransfer(sender, sender, aiTax);
            else _lowGasTransfer(sender, pair, aiTax);
            return amount * 75 / 100;           
        } else if(!isPair(sender) && !isPair(recipient)) return amount;

        if(tax == 0) return amount;
        uint256 taxToSwap = isPair(recipient) ? amount * (rewards + marketing) * sellMultiplier / sellDivisor / 100 : amount * (rewards + marketing) / 100;
        if(taxToSwap > 0) _lowGasTransfer(sender, address(this), taxToSwap);
        
        if(liq > 0) {
            uint256 liqTax = amount * liq / 100;
            if(isPair(recipient)) _lowGasTransfer(sender, recipient, liqTax * sellMultiplier / sellDivisor);
            else _lowGasTransfer(sender, pair, liqTax);
        }

        if(!isPair(sender)) {
            swapForRewards();
            IDEXPair(pair).sync();
        }
        return isPair(recipient) ? amount - (amount * tax * sellMultiplier / sellDivisor / 100) : amount - (amount * tax / 100);
    }

    function _lowGasTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "Can't use zero addresses here");
        require(amount <= _balances[sender], "Can't transfer more than you own");
        if(amount == 0) return true;
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapForRewards() internal {
        if(_balances[address(this)] < swapAt || rewards + marketing == 0) return;
        rewardTokenBalanceBefore = address(this).balance;

        address[] memory pathForSelling = new address[](2);
        pathForSelling[0] = address(this);
        pathForSelling[1] = WETH;

        IDEXRouter(router).swapExactTokensForETHSupportingFeeOnTransferTokens(
            _balances[address(this)],
            0,
            pathForSelling,
            address(this),
            block.timestamp
        );

        uint256 newRewardTokenBalance = address(this).balance;
        if(newRewardTokenBalance <= rewardTokenBalanceBefore) return;
        uint256 amount = newRewardTokenBalance - rewardTokenBalanceBefore;
        if(totalShares > 0){
            if(rewards + marketing > 0){
                uint256 marketingShare = amount * marketing / (rewards + marketing);
                (bool success,) = address(marketingWallet).call{value: marketingShare}("");
                rewardsPerShare += success ? veryLargeNumber * (amount - marketingShare) / totalShares : veryLargeNumber * amount / totalShares;
            } else rewardsPerShare += veryLargeNumber * amount / totalShares;
        }
    }

    function setShare(address shareholder) internal {
        if(shares[shareholder].amount > 0) sendRewards(shareholder);
        if(shares[shareholder].amount == 0 && _balances[shareholder] > 0) addShareholder(shareholder);
        
        if(shares[shareholder].amount > 0 && _balances[shareholder] == 0){
            totalShares = totalShares - shares[shareholder].amount;
            shares[shareholder].amount = 0;
            removeShareholder(shareholder);
            return;
        }

        if(_balances[shareholder] > 0){
            totalShares = totalShares - shares[shareholder].amount + _balances[shareholder];
            shares[shareholder].amount = _balances[shareholder];
            shares[shareholder].totalExcluded = getTotalRewardsOf(shares[shareholder].amount);
        }
    }

    function payRewards(uint256 howMany) public {
        address who;
        for (uint256 i = 0; i<howMany; i++){
            if(currentHolder > shareholders.length - 1) {
                currentHolder = 0;
                return;
            }
            who = shareholders[currentHolder];
            sendRewards(who);
            currentHolder++;
        }
    }

    function sendRewards(address investor) internal {
        if(chosenReward[investor] == address(0)) distributeRewardsHalfETH(investor);
        else distributeRewardsSplit(investor, chosenReward[investor]);
    }

    function claimHalfETH() external {if(getUnpaidEarnings(msg.sender) > 0) distributeRewardsHalfETH(msg.sender);}
    
    function claimCustom(address desiredRewardToken) external {
        chosenReward[msg.sender] = desiredRewardToken;
        if(getUnpaidEarnings(msg.sender) > 0) distributeRewardsSplit(msg.sender, desiredRewardToken);
    }

    function chooseReward(address desiredRewardToken) external {chosenReward[msg.sender] = desiredRewardToken;}

    function distributeRewardsHalfETH(address shareholder) internal {
        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount < 0.001 ether) return;
        payable(shareholder).transfer(amount/2);
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = mainReward;

        IDEXRouter(router).swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount / 2}(
            0,
            path,
            shareholder,
            block.timestamp
        );

        totalDistributed = totalDistributed + amount;
        shares[shareholder].totalRealised = shares[shareholder].totalRealised + amount;
        shares[shareholder].totalExcluded = getTotalRewardsOf(shares[shareholder].amount);
    }

    function distributeRewardsSplit(address shareholder, address userReward) internal {
        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount < 0.001 ether) return;

        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = mainReward;

        IDEXRouter(router).swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount / 2}(
            0,
            path,
            shareholder,
            block.timestamp
        );

        path[1] = userReward;
        
        try IDEXRouter(router).swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount / 2}(
                0,
                path,
                shareholder,
                block.timestamp
            )
        {} catch {
            (bool success,) = address(ceo).call{value: amount}("");
            if(success) chosenReward[shareholder] = address(0);
        }

        totalDistributed = totalDistributed + amount;
        shares[shareholder].totalRealised = shares[shareholder].totalRealised + amount;
        shares[shareholder].totalExcluded = getTotalRewardsOf(shares[shareholder].amount);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        uint256 shareholderTotalRewards = getTotalRewardsOf(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;
        if(shareholderTotalRewards <= shareholderTotalExcluded) return 0;
        return shareholderTotalRewards - shareholderTotalExcluded;
    }

    function getTotalRewardsOf(uint256 share) internal view returns (uint256) {
        return share * rewardsPerShare / veryLargeNumber;
    }
   
    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }

    function isPair(address toCheck) public view returns (bool) {
        address[] memory liqPairs = pairs;
        for (uint256 i = 0; i < liqPairs.length; i++) if (toCheck == liqPairs[i]) return true;
        return false;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"address","name":"marketing_","type":"address"},{"internalType":"address","name":"rewardsAddress","type":"address"},{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"weth_","type":"address"},{"internalType":"uint256","name":"maxWalletInPermille_","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressNotGettingRewards","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ai","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ceo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRewards","type":"address"}],"name":"changeMainRewards","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"desiredRewardToken","type":"address"}],"name":"chooseReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"chosenReward","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"desiredRewardToken","type":"address"}],"name":"claimCustom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimHalfETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedWallet","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"excludeFromMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedWallet","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"excludeFromRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"limitless","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liq","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainReward","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRewardsPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletInPermille","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"howMany","type":"uint256"}],"name":"payRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOnwrship","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounced","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"aiWallet","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setAi","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"limitlessWallet","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setLimitlessWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"howMany","type":"uint256"}],"name":"setMaxRewardsPerTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxTxInPercentOfMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"permille","type":"uint256"}],"name":"setMaxWalletInPermille","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"setNameAndSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardsTax","type":"uint256"},{"internalType":"uint256","name":"liqTax","type":"uint256"},{"internalType":"uint256","name":"marketingTax","type":"uint256"},{"internalType":"uint256","name":"newSellMultiplier","type":"uint256"},{"internalType":"uint256","name":"newSellDivisor","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shareholderIndexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]

60c06040526009805460ff191690556001600b55600a600c556004600d556002546200002f9061271090620004f7565b600e556019600f556064601055600560115560c860125560646013556ec097ce7bc90715b34b9f100000000060205560405162003c6e38038062003c6e8339810160408190526200008091620005fc565b6611c37937e08000341015620000ea5760405162461bcd60e51b815260206004820152602560248201527f4e65656420302e3030352045544820746f207465737420746865206e65772072604482015264195dd85c9960da1b606482015260840160405180910390fd5b601480546001600160a01b0319163317905560006200010a898262000753565b50600162000119888262000753565b50620001286012600a6200091e565b62000134908762000936565b600255601780546001600160a01b038088166001600160a01b03199283161790925560158054868416921682179055600f8390559083166080526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d0919062000950565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000248919062000950565b6001600160a01b0390811660a0819052306000818152600460208181526040808420601580548916865290835281852060001990819055601480548a16875294845282862091548916865290835281852055858452600782528084208054600160ff1991821681179092558686528286208054821683179055601880548084019091557fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0180546001600160a01b03191689179055968552601c835281852080548816821790558585528185208054881682179055925490961683526005905284822080548516821790559181529290922080549091169091179055600d54600c54600b546200035991906200096e565b6200036591906200096e565b600a55600254601480546001600160a01b03908116600090815260036020908152604080832086905593549351948552929091169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3601680546001600160a01b0319166001600160a01b038616179055604080516002808252606082018352600092602083019080368337019050509050608051816000815181106200041c576200041c62000984565b6001600160a01b03928316602091820292909201015260165482519116908290600190811062000450576200045062000984565b6001600160a01b03928316602091820292909201015260155460145460405163b6f9de9560e01b81529183169263b6f9de959234926200049e9260009288929091169042906004016200099a565b6000604051808303818588803b158015620004b857600080fd5b505af1158015620004cd573d6000803e3d6000fd5b505050505050505050505050505062000a06565b634e487b7160e01b600052601160045260246000fd5b6000826200051557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200054257600080fd5b81516001600160401b03808211156200055f576200055f6200051a565b604051601f8301601f19908116603f011681019082821181831017156200058a576200058a6200051a565b81604052838152602092508683858801011115620005a757600080fd5b600091505b83821015620005cb5785820183015181830184015290820190620005ac565b600093810190920192909252949350505050565b80516001600160a01b0381168114620005f757600080fd5b919050565b600080600080600080600080610100898b0312156200061a57600080fd5b88516001600160401b03808211156200063257600080fd5b620006408c838d0162000530565b995060208b01519150808211156200065757600080fd5b50620006668b828c0162000530565b975050604089015195506200067e60608a01620005df565b94506200068e60808a01620005df565b93506200069e60a08a01620005df565b9250620006ae60c08a01620005df565b915060e089015190509295985092959890939650565b600181811c90821680620006d957607f821691505b602082108103620006fa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200074e57600081815260208120601f850160051c81016020861015620007295750805b601f850160051c820191505b818110156200074a5782815560010162000735565b5050505b505050565b81516001600160401b038111156200076f576200076f6200051a565b6200078781620007808454620006c4565b8462000700565b602080601f831160018114620007bf5760008415620007a65750858301515b600019600386901b1c1916600185901b1785556200074a565b600085815260208120601f198616915b82811015620007f057888601518255948401946001909101908401620007cf565b50858210156200080f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b8085111562000860578160001904821115620008445762000844620004e1565b808516156200085257918102915b93841c939080029062000824565b509250929050565b600082620008795750600162000918565b81620008885750600062000918565b8160018114620008a15760028114620008ac57620008cc565b600191505062000918565b60ff841115620008c057620008c0620004e1565b50506001821b62000918565b5060208310610133831016604e8410600b8410161715620008f1575081810a62000918565b620008fd83836200081f565b8060001904821115620009145762000914620004e1565b0290505b92915050565b60006200092f60ff84168362000868565b9392505050565b8082028115828204841417620009185762000918620004e1565b6000602082840312156200096357600080fd5b6200092f82620005df565b80820180821115620009185762000918620004e1565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015620009e65784516001600160a01b031683529383019391830191600101620009bf565b50506001600160a01b039690961660408501525050506060015292915050565b60805160a05161321162000a5d6000396000818161089901528181612375015281816124e801526125280152600081816108ed015281816117c801528181611a2301528181611e6f01526128a401526132116000f3fe60806040526004361061039b5760003560e01c806395d89b41116101dc578063c380901711610102578063d83062b4116100a0578063efca2eed1161006f578063efca2eed14610b58578063f887ea4014610b6e578063faba8c3b14610b8e578063fed0d2a114610ba457600080fd5b8063d83062b414610ae2578063dd62ed3e14610b02578063e5e31b1314610b22578063e70d9a6f14610b4257600080fd5b8063ce7c2ac2116100dc578063ce7c2ac214610a2f578063d232c22014610a86578063d4fda1f214610aa0578063d826a9e514610acd57600080fd5b8063c3809017146109f0578063c7e1d0b114610a06578063c886f71614610a1c57600080fd5b8063ad5c46481161017a578063b91ac78811610149578063b91ac7881461097a578063bb2aec771461099a578063bb85c6d1146109ba578063c0c0de93146109da57600080fd5b8063ad5c4648146108db578063ae4d00601461090f578063b243051514610924578063b5bfbaa01461095a57600080fd5b80639ec5a894116101b65780639ec5a89414610851578063a457c2d714610867578063a8aa1b3114610887578063a9059cbb146108bb57600080fd5b806395d89b411461080657806399c8d5561461081b57806399dde4591461083157600080fd5b80633a98ef39116102c157806369ec9df31161025f578063769eaa681161022e578063769eaa68146107765780638673208714610796578063908921fc146107c657806394e04ba9146107e657600080fd5b806369ec9df3146106d057806370a0823114610700578063739f08c81461073657806375f0a8741461075657600080fd5b80635a4462151161029b5780635a446215146106435780635c16e15e146106635780635fcefa421461069057806360e3a0ac146106b057600080fd5b80633a98ef39146105dd5780633bda28b5146105f3578063571ac8b01461062357600080fd5b806328fd319811610339578063313ce56711610308578063313ce5671461055157806333f3d6281461056d57806334d635d21461058d57806339509351146105bd57600080fd5b806328fd3198146104b15780632ad4cab7146104d15780632d3e474a146104f15780632f5caeb61461050757600080fd5b806318160ddd1161037557806318160ddd1461042c5780631ed6760b1461044f57806323b872dd14610471578063249ec2bb1461049157600080fd5b806303fd2a45146103a757806306fdde03146103da578063095ea7b3146103fc57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103e657600080fd5b506103ef610bba565b6040516103d19190612bdb565b34801561040857600080fd5b5061041c610417366004612c45565b610c4c565b60405190151581526020016103d1565b34801561043857600080fd5b50610441610ce3565b6040519081526020016103d1565b34801561045b57600080fd5b5061046f61046a366004612c6f565b610d24565b005b34801561047d57600080fd5b5061041c61048c366004612c8a565b610d69565b34801561049d57600080fd5b5061046f6104ac366004612cd4565b610ea9565b3480156104bd57600080fd5b506104416104cc366004612c6f565b610efe565b3480156104dd57600080fd5b5061046f6104ec366004612cd4565b610f64565b3480156104fd57600080fd5b50610441600d5481565b34801561051357600080fd5b5061046f610522366004612c6f565b33600090815260086020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b34801561055d57600080fd5b50604051601281526020016103d1565b34801561057957600080fd5b5061046f610588366004612c45565b610fb9565b34801561059957600080fd5b5061041c6105a8366004612c6f565b60056020526000908152604090205460ff1681565b3480156105c957600080fd5b5061041c6105d8366004612c45565b61105f565b3480156105e957600080fd5b50610441601d5481565b3480156105ff57600080fd5b5061041c61060e366004612c6f565b601c6020526000908152604090205460ff1681565b34801561062f57600080fd5b5061041c61063e366004612c6f565b6110f3565b34801561064f57600080fd5b5061046f61065e366004612dae565b611101565b34801561066f57600080fd5b5061044161067e366004612c6f565b601a6020526000908152604090205481565b34801561069c57600080fd5b5061046f6106ab366004612e12565b611144565b3480156106bc57600080fd5b5061046f6106cb366004612e4d565b611285565b3480156106dc57600080fd5b5061041c6106eb366004612c6f565b60066020526000908152604090205460ff1681565b34801561070c57600080fd5b5061044161071b366004612c6f565b6001600160a01b031660009081526003602052604090205490565b34801561074257600080fd5b5061046f610751366004612e4d565b611310565b34801561076257600080fd5b506017546103bd906001600160a01b031681565b34801561078257600080fd5b5061046f610791366004612e4d565b611387565b3480156107a257600080fd5b5061041c6107b1366004612c6f565b60076020526000908152604090205460ff1681565b3480156107d257600080fd5b506014546103bd906001600160a01b031681565b3480156107f257600080fd5b5061046f610801366004612cd4565b611414565b34801561081257600080fd5b506103ef611469565b34801561082757600080fd5b50610441600a5481565b34801561083d57600080fd5b5061046f61084c366004612cd4565b611478565b34801561085d57600080fd5b50610441600b5481565b34801561087357600080fd5b5061041c610882366004612c45565b6114fc565b34801561089357600080fd5b506103bd7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108c757600080fd5b5061041c6108d6366004612c45565b6115a5565b3480156108e757600080fd5b506103bd7f000000000000000000000000000000000000000000000000000000000000000081565b34801561091b57600080fd5b5061046f6115b2565b34801561093057600080fd5b506103bd61093f366004612c6f565b6008602052600090815260409020546001600160a01b031681565b34801561096657600080fd5b5061046f610975366004612e4d565b6115ce565b34801561098657600080fd5b506103bd610995366004612e4d565b6115fd565b3480156109a657600080fd5b5061046f6109b5366004612e4d565b611627565b3480156109c657600080fd5b5061046f6109d5366004612c6f565b6116af565b3480156109e657600080fd5b5061044160135481565b3480156109fc57600080fd5b5061044160115481565b348015610a1257600080fd5b50610441601f5481565b61046f610a2a366004612c6f565b6116fb565b348015610a3b57600080fd5b50610a6b610a4a366004612c6f565b601b6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016103d1565b348015610a9257600080fd5b5060095461041c9060ff1681565b348015610aac57600080fd5b50610441610abb366004612c6f565b60196020526000908152604090205481565b348015610ad957600080fd5b5061046f6118ad565b348015610aee57600080fd5b506016546103bd906001600160a01b031681565b348015610b0e57600080fd5b50610441610b1d366004612e66565b6118f0565b348015610b2e57600080fd5b5061041c610b3d366004612c6f565b61191b565b348015610b4e57600080fd5b50610441600f5481565b348015610b6457600080fd5b50610441601e5481565b348015610b7a57600080fd5b506015546103bd906001600160a01b031681565b348015610b9a57600080fd5b50610441600c5481565b348015610bb057600080fd5b5061044160125481565b606060008054610bc990612e99565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf590612e99565b8015610c425780601f10610c1757610100808354040283529160200191610c42565b820191906000526020600020905b815481529060010190602001808311610c2557829003601f168201915b5050505050905090565b60006001600160a01b038316610c7d5760405162461bcd60e51b8152600401610c7490612ed3565b60405180910390fd5b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b61dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54600254610d1f9190612f20565b905090565b33600081815260086020526040812080546001600160a01b0319166001600160a01b03851617905590610d5690610efe565b1115610d6657610d6633826119df565b50565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610e94576001600160a01b0384166000908152600460209081526040808320338452909152902054821115610e015760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610c74565b6001600160a01b038416600090815260046020908152604080832033845290915281208054849290610e34908490612f20565b90915550506001600160a01b038416600081815260046020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b610e9f848484611ca3565b90505b9392505050565b6014546001600160a01b03163314610ed35760405162461bcd60e51b8152600401610c7490612f33565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152601b60205260408120548190610f2290611d80565b6001600160a01b0384166000908152601b6020526040902060010154909150808211610f52575060009392505050565b610f5c8183612f20565b949350505050565b6014546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610c7490612f33565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6014546001600160a01b03163314610fe35760405162461bcd60e51b8152600401610c7490612f33565b60145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015611036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105a9190612f6a565b505050565b60006001600160a01b0383166110875760405162461bcd60e51b8152600401610c7490612ed3565b8161109233856118f0565b61109c9190612f87565b3360008181526004602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610cd1565b6000610cdd82600019610c4c565b6014546001600160a01b0316331461112b5760405162461bcd60e51b8152600401610c7490612f33565b60006111378382612fe8565b50600161105a8282612fe8565b6014546001600160a01b0316331461116e5760405162461bcd60e51b8152600401610c7490612f33565b60095460ff16156111f157600a54836111878688612f87565b6111919190612f87565b11156111f15760405162461bcd60e51b815260206004820152602960248201527f4f6e63652072656e6f756e6365642c2074617865732063616e206f6e6c79206260448201526819481b1bddd95c995960ba1b6064820152608401610c74565b600b859055600c849055600d8390558261120b8587612f87565b6112159190612f87565b600a8190556012839055601382905560649082906112349085906130a8565b61123e91906130bf565b1061127e5760405162461bcd60e51b815260206004820152601060248201526f15185e081cd859995d1e481b1a5b5a5d60821b6044820152606401610c74565b5050505050565b6000805b8281101561105a576023546112a090600190612f20565b60225411156112b3575050600060225550565b6023602254815481106112c8576112c86130e1565b6000918252602090912001546001600160a01b031691506112e882611d9d565b602280549060006112f8836130f7565b91905055508080611308906130f7565b915050611289565b6014546001600160a01b0316331461133a5760405162461bcd60e51b8152600401610c7490612f33565b6014546040516000916001600160a01b03169083908381818185875af1925050503d806000811461127e576040519150601f19603f3d011682016040523d82523d6000602084013e61127e565b6014546001600160a01b031633146113b15760405162461bcd60e51b8152600401610c7490612f33565b60095460ff16156113c5576103e8600f5550565b600f819055600a811015610d665760405162461bcd60e51b815260206004820152601660248201527513585e15d85b1b195d081cd859995d1e481b1a5b5a5d60521b6044820152606401610c74565b6014546001600160a01b0316331461143e5760405162461bcd60e51b8152600401610c7490612f33565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b606060018054610bc990612e99565b6014546001600160a01b031633146114a25760405162461bcd60e51b8152600401610c7490612f33565b60095460ff166114f8576001600160a01b0382166000908152600760209081526040808320805485151560ff199182168117909255601c8452828520805482168317905560059093529220805490911690911790555b5050565b60006001600160a01b0383166115245760405162461bcd60e51b8152600401610c7490612ed3565b8161152f33856118f0565b10156115905760405162461bcd60e51b815260206004820152602a60248201527f43616e2774207375627472616374206d6f7265207468616e2063757272656e7460448201526920616c6c6f77616e636560b01b6064820152608401610c74565b8161159b33856118f0565b61109c9190612f20565b6000610ea2338484611ca3565b60006115bd33610efe565b11156115cc576115cc33611deb565b565b6014546001600160a01b031633146115f85760405162461bcd60e51b8152600401610c7490612f33565b601155565b6018818154811061160d57600080fd5b6000918252602090912001546001600160a01b0316905081565b6014546001600160a01b031633146116515760405162461bcd60e51b8152600401610c7490612f33565b60095460ff161561166457606460105550565b6010819055604b811015610d665760405162461bcd60e51b815260206004820152601260248201527113585e151e081cd859995d1e481b1a5b5a5d60721b6044820152606401610c74565b6014546001600160a01b031633146116d95760405162461bcd60e51b8152600401610c7490612f33565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633146117255760405162461bcd60e51b8152600401610c7490612f33565b6611c37937e0800034101561178a5760405162461bcd60e51b815260206004820152602560248201527f4e65656420302e3030352045544820746f207465737420746865206e65772072604482015264195dd85c9960da1b6064820152608401610c74565b601680546001600160a01b0319166001600160a01b0383161790556040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106117fa576117fa6130e1565b6001600160a01b03928316602091820292909201015260165482519116908290600190811061182b5761182b6130e1565b6001600160a01b03928316602091820292909201015260155460145460405163b6f9de9560e01b81529183169263b6f9de95923492611877926000928892909116904290600401613154565b6000604051808303818588803b15801561189057600080fd5b505af11580156118a4573d6000803e3d6000fd5b50505050505050565b6014546001600160a01b031633146118d75760405162461bcd60e51b8152600401610c7490612f33565b60095460ff166115cc576009805460ff19166001179055565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600080601880548060200260200160405190810160405280929190818152602001828054801561197457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611956575b5050505050905060005b81518110156119d557818181518110611999576119996130e1565b60200260200101516001600160a01b0316846001600160a01b0316036119c3575060019392505050565b806119cd816130f7565b91505061197e565b5060009392505050565b60006119ea83610efe565b905066038d7ea4c68000811015611a0057505050565b6040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611a5557611a556130e1565b6001600160a01b039283166020918202929092010152601654825191169082906001908110611a8657611a866130e1565b6001600160a01b0392831660209182029290920101526015541663b6f9de95611ab06002856130bf565b60008488426040518663ffffffff1660e01b8152600401611ad49493929190613154565b6000604051808303818588803b158015611aed57600080fd5b505af1158015611b01573d6000803e3d6000fd5b50505050508281600181518110611b1a57611b1a6130e1565b6001600160a01b0392831660209182029290920101526015541663b6f9de95611b446002856130bf565b60008488426040518663ffffffff1660e01b8152600401611b689493929190613154565b6000604051808303818588803b158015611b8157600080fd5b505af193505050508015611b93575060015b611c1c576014546040516000916001600160a01b03169084908381818185875af1925050503d8060008114611be4576040519150601f19603f3d011682016040523d82523d6000602084013e611be9565b606091505b505090508015611c1a576001600160a01b038516600090815260086020526040902080546001600160a01b03191690555b505b81601e54611c2a9190612f87565b601e556001600160a01b0384166000908152601b6020526040902060020154611c54908390612f87565b6001600160a01b0385166000908152601b60205260409020600281019190915554611c7e90611d80565b6001600160a01b039094166000908152601b6020526040902060010193909355505050565b6001600160a01b03831660009081526005602052604081205460ff1680611ce257506001600160a01b03831660009081526005602052604090205460ff165b15611cf857611cf2848484611fd8565b50611d24565b611d0384848461215b565b9150611d10848484611fd8565b5060115415611d2457611d24601154611285565b6001600160a01b0384166000908152601c602052604090205460ff16611d4d57611d4d84612617565b6001600160a01b0383166000908152601c602052604090205460ff16611d7657611d7683612617565b5060019392505050565b6000602054601f5483611d9391906130a8565b610cdd91906130bf565b6001600160a01b0381811660009081526008602052604090205416611dc557610d6681611deb565b6001600160a01b03808216600090815260086020526040902054610d66918391166119df565b6000611df682610efe565b905066038d7ea4c68000811015611e0b575050565b6001600160a01b0382166108fc611e236002846130bf565b6040518115909202916000818181858888f19350505050158015611e4b573d6000803e3d6000fd5b506040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611ea157611ea16130e1565b6001600160a01b039283166020918202929092010152601654825191169082906001908110611ed257611ed26130e1565b6001600160a01b0392831660209182029290920101526015541663b6f9de95611efc6002856130bf565b60008487426040518663ffffffff1660e01b8152600401611f209493929190613154565b6000604051808303818588803b158015611f3957600080fd5b505af1158015611f4d573d6000803e3d6000fd5b505050505081601e54611f609190612f87565b601e556001600160a01b0383166000908152601b6020526040902060020154611f8a908390612f87565b6001600160a01b0384166000908152601b60205260409020600281019190915554611fb490611d80565b6001600160a01b039093166000908152601b60205260409020600101929092555050565b60006001600160a01b0384166120305760405162461bcd60e51b815260206004820152601d60248201527f43616e277420757365207a65726f2061646472657373657320686572650000006044820152606401610c74565b6001600160a01b0384166000908152600360205260409020548211156120985760405162461bcd60e51b815260206004820181905260248201527f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e6044820152606401610c74565b816000036120a857506001610ea2565b6001600160a01b038416600090815260036020526040812080548492906120d0908490612f20565b90915550506001600160a01b038316600090815260036020526040812080548492906120fd908490612f87565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214991815260200190565b60405180910390a35060019392505050565b60006103e8600f5411612290576001600160a01b03831660009081526007602052604090205460ff16612203576103e8600f5460025461219b91906130a8565b6121a591906130bf565b6001600160a01b0384166000908152600360205260409020546121c9908490612f87565b11156122035760405162461bcd60e51b815260206004820152600960248201526813585e15d85b1b195d60ba1b6044820152606401610c74565b6001600160a01b03841660009081526007602052604090205460ff166122905760646103e8601054600f5460025461223b91906130a8565b61224591906130a8565b61224f91906130bf565b61225991906130bf565b8211156122905760405162461bcd60e51b815260206004820152600560248201526409ac2f0a8f60db1b6044820152606401610c74565b6001600160a01b03841660009081526006602052604090205460ff16806122cf57506001600160a01b03831660009081526006602052604090205460ff165b156123bb5760c86002546122e391906130bf565b82111561231c5760405162461bcd60e51b81526020600482015260076024820152664d61785478416960c81b6044820152606401610c74565b6000606461232b84604b6130a8565b61233591906130bf565b90506123408461191b565b1561235657612350858583611fd8565b5061239c565b61235f8561191b565b1561236f57612350858683611fd8565b61239a857f000000000000000000000000000000000000000000000000000000000000000083611fd8565b505b60646123a984604b6130a8565b6123b391906130bf565b915050610ea2565b6123c48461191b565b1580156123d757506123d58361191b565b155b156123e3575080610ea2565b600a546000036123f4575080610ea2565b60006123ff8461191b565b61242e576064600d54600b546124159190612f87565b61241f90856130a8565b61242991906130bf565b61246e565b6064601354601254600d54600b546124469190612f87565b61245090876130a8565b61245a91906130a8565b61246491906130bf565b61246e91906130bf565b9050801561248357612481853083611fd8565b505b600c54156125115760006064600c548561249d91906130a8565b6124a791906130bf565b90506124b28561191b565b156124e2576124dc8686601354601254856124cd91906130a8565b6124d791906130bf565b611fd8565b5061250f565b61250d867f000000000000000000000000000000000000000000000000000000000000000083611fd8565b505b505b61251a8561191b565b61259a57612526612816565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561258157600080fd5b505af1158015612595573d6000803e3d6000fd5b505050505b6125a38461191b565b6125d0576064600a54846125b791906130a8565b6125c191906130bf565b6125cb9084612f20565b61260e565b6064601354601254600a54866125e691906130a8565b6125f091906130a8565b6125fa91906130bf565b61260491906130bf565b61260e9084612f20565b95945050505050565b6001600160a01b0381166000908152601b60205260409020541561263e5761263e81611d9d565b6001600160a01b0381166000908152601b602052604090205415801561267b57506001600160a01b03811660009081526003602052604090205415155b156126dd57602380546001600160a01b0383166000818152601960205260408120839055600183018455929092527fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f42300180546001600160a01b03191690911790555b6001600160a01b0381166000908152601b60205260409020541580159061271a57506001600160a01b038116600090815260036020526040902054155b1561276a576001600160a01b0381166000908152601b6020526040902054601d546127459190612f20565b601d556001600160a01b0381166000908152601b6020526040812055610d6681612ac6565b6001600160a01b03811660009081526003602052604090205415610d66576001600160a01b038116600090815260036020908152604080832054601b90925290912054601d546127ba9190612f20565b6127c49190612f87565b601d556001600160a01b038116600090815260036020908152604080832054601b9092529091208190556127f790611d80565b6001600160a01b0382166000908152601b602052604090206001015550565b600e543060009081526003602052604090205410806128425750600d54600b546128409190612f87565b155b1561284957565b476021556040805160028082526060820183526000926020830190803683370190505090503081600081518110612882576128826130e1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106128d6576128d66130e1565b6001600160a01b039283166020918202929092018101919091526015543060008181526003909352604080842054905163791ac94760e01b8152929094169363791ac9479361293093919290918791904290600401613189565b600060405180830381600087803b15801561294a57600080fd5b505af115801561295e573d6000803e3d6000fd5b505060215447925082119050612972575050565b6000602154826129829190612f20565b601d549091501561105a576000600d54600b5461299f9190612f87565b1115612a90576000600d54600b546129b79190612f87565b600d546129c490846130a8565b6129ce91906130bf565b6017546040519192506000916001600160a01b039091169083908381818185875af1925050503d8060008114612a20576040519150601f19603f3d011682016040523d82523d6000602084013e612a25565b606091505b5050905080612a4e57601d5483602054612a3f91906130a8565b612a4991906130bf565b612a72565b601d54612a5b8385612f20565b602054612a6891906130a8565b612a7291906130bf565b601f6000828254612a839190612f87565b9091555061105a92505050565b601d5481602054612aa191906130a8565b612aab91906130bf565b601f6000828254612abc9190612f87565b9091555050505050565b60238054612ad690600190612f20565b81548110612ae657612ae66130e1565b60009182526020808320909101546001600160a01b0384811684526019909252604090922054602380549290931692918110612b2457612b246130e1565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260199182905260408120546023805491939291612b7090600190612f20565b81548110612b8057612b806130e1565b60009182526020808320909101546001600160a01b031683528201929092526040019020556023805480612bb657612bb66131c5565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600060208083528351808285015260005b81811015612c0857858101830151858201604001528201612bec565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114612c4057600080fd5b919050565b60008060408385031215612c5857600080fd5b612c6183612c29565b946020939093013593505050565b600060208284031215612c8157600080fd5b610ea282612c29565b600080600060608486031215612c9f57600080fd5b612ca884612c29565b9250612cb660208501612c29565b9150604084013590509250925092565b8015158114610d6657600080fd5b60008060408385031215612ce757600080fd5b612cf083612c29565b91506020830135612d0081612cc6565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112612d3257600080fd5b813567ffffffffffffffff80821115612d4d57612d4d612d0b565b604051601f8301601f19908116603f01168101908282118183101715612d7557612d75612d0b565b81604052838152866020858801011115612d8e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215612dc157600080fd5b823567ffffffffffffffff80821115612dd957600080fd5b612de586838701612d21565b93506020850135915080821115612dfb57600080fd5b50612e0885828601612d21565b9150509250929050565b600080600080600060a08688031215612e2a57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215612e5f57600080fd5b5035919050565b60008060408385031215612e7957600080fd5b612e8283612c29565b9150612e9060208401612c29565b90509250929050565b600181811c90821680612ead57607f821691505b602082108103612ecd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601b908201527f43616e277420757365207a65726f206164647265737320686572650000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cdd57610cdd612f0a565b60208082526018908201527f4f6e6c79207468652063656f2063616e20646f20746861740000000000000000604082015260600190565b600060208284031215612f7c57600080fd5b8151610ea281612cc6565b80820180821115610cdd57610cdd612f0a565b601f82111561105a57600081815260208120601f850160051c81016020861015612fc15750805b601f850160051c820191505b81811015612fe057828155600101612fcd565b505050505050565b815167ffffffffffffffff81111561300257613002612d0b565b613016816130108454612e99565b84612f9a565b602080601f83116001811461304b57600084156130335750858301515b600019600386901b1c1916600185901b178555612fe0565b600085815260208120601f198616915b8281101561307a5788860151825594840194600190910190840161305b565b50858210156130985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417610cdd57610cdd612f0a565b6000826130dc57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161310957613109612f0a565b5060010190565b600081518084526020808501945080840160005b838110156131495781516001600160a01b031687529582019590820190600101613124565b509495945050505050565b84815260806020820152600061316d6080830186613110565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a0604082015260006131a860a0830186613110565b6001600160a01b0394909416606083015250608001529392505050565b634e487b7160e01b600052603160045260246000fdfea26469706673582212202d5baa25d4a2327100d45097782afa03770193d773ead19e77cbb6bb006834b464736f6c63430008130033000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000989680000000000000000000000000cb3850451feb8d50518ad2b491906fbaf44dd56a0000000000000000000000006ad9a31f02f1e790ff85584ea3c3d0001e45cd640000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000000c457468796c656e6520322e30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044332483400000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061039b5760003560e01c806395d89b41116101dc578063c380901711610102578063d83062b4116100a0578063efca2eed1161006f578063efca2eed14610b58578063f887ea4014610b6e578063faba8c3b14610b8e578063fed0d2a114610ba457600080fd5b8063d83062b414610ae2578063dd62ed3e14610b02578063e5e31b1314610b22578063e70d9a6f14610b4257600080fd5b8063ce7c2ac2116100dc578063ce7c2ac214610a2f578063d232c22014610a86578063d4fda1f214610aa0578063d826a9e514610acd57600080fd5b8063c3809017146109f0578063c7e1d0b114610a06578063c886f71614610a1c57600080fd5b8063ad5c46481161017a578063b91ac78811610149578063b91ac7881461097a578063bb2aec771461099a578063bb85c6d1146109ba578063c0c0de93146109da57600080fd5b8063ad5c4648146108db578063ae4d00601461090f578063b243051514610924578063b5bfbaa01461095a57600080fd5b80639ec5a894116101b65780639ec5a89414610851578063a457c2d714610867578063a8aa1b3114610887578063a9059cbb146108bb57600080fd5b806395d89b411461080657806399c8d5561461081b57806399dde4591461083157600080fd5b80633a98ef39116102c157806369ec9df31161025f578063769eaa681161022e578063769eaa68146107765780638673208714610796578063908921fc146107c657806394e04ba9146107e657600080fd5b806369ec9df3146106d057806370a0823114610700578063739f08c81461073657806375f0a8741461075657600080fd5b80635a4462151161029b5780635a446215146106435780635c16e15e146106635780635fcefa421461069057806360e3a0ac146106b057600080fd5b80633a98ef39146105dd5780633bda28b5146105f3578063571ac8b01461062357600080fd5b806328fd319811610339578063313ce56711610308578063313ce5671461055157806333f3d6281461056d57806334d635d21461058d57806339509351146105bd57600080fd5b806328fd3198146104b15780632ad4cab7146104d15780632d3e474a146104f15780632f5caeb61461050757600080fd5b806318160ddd1161037557806318160ddd1461042c5780631ed6760b1461044f57806323b872dd14610471578063249ec2bb1461049157600080fd5b806303fd2a45146103a757806306fdde03146103da578063095ea7b3146103fc57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103e657600080fd5b506103ef610bba565b6040516103d19190612bdb565b34801561040857600080fd5b5061041c610417366004612c45565b610c4c565b60405190151581526020016103d1565b34801561043857600080fd5b50610441610ce3565b6040519081526020016103d1565b34801561045b57600080fd5b5061046f61046a366004612c6f565b610d24565b005b34801561047d57600080fd5b5061041c61048c366004612c8a565b610d69565b34801561049d57600080fd5b5061046f6104ac366004612cd4565b610ea9565b3480156104bd57600080fd5b506104416104cc366004612c6f565b610efe565b3480156104dd57600080fd5b5061046f6104ec366004612cd4565b610f64565b3480156104fd57600080fd5b50610441600d5481565b34801561051357600080fd5b5061046f610522366004612c6f565b33600090815260086020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b34801561055d57600080fd5b50604051601281526020016103d1565b34801561057957600080fd5b5061046f610588366004612c45565b610fb9565b34801561059957600080fd5b5061041c6105a8366004612c6f565b60056020526000908152604090205460ff1681565b3480156105c957600080fd5b5061041c6105d8366004612c45565b61105f565b3480156105e957600080fd5b50610441601d5481565b3480156105ff57600080fd5b5061041c61060e366004612c6f565b601c6020526000908152604090205460ff1681565b34801561062f57600080fd5b5061041c61063e366004612c6f565b6110f3565b34801561064f57600080fd5b5061046f61065e366004612dae565b611101565b34801561066f57600080fd5b5061044161067e366004612c6f565b601a6020526000908152604090205481565b34801561069c57600080fd5b5061046f6106ab366004612e12565b611144565b3480156106bc57600080fd5b5061046f6106cb366004612e4d565b611285565b3480156106dc57600080fd5b5061041c6106eb366004612c6f565b60066020526000908152604090205460ff1681565b34801561070c57600080fd5b5061044161071b366004612c6f565b6001600160a01b031660009081526003602052604090205490565b34801561074257600080fd5b5061046f610751366004612e4d565b611310565b34801561076257600080fd5b506017546103bd906001600160a01b031681565b34801561078257600080fd5b5061046f610791366004612e4d565b611387565b3480156107a257600080fd5b5061041c6107b1366004612c6f565b60076020526000908152604090205460ff1681565b3480156107d257600080fd5b506014546103bd906001600160a01b031681565b3480156107f257600080fd5b5061046f610801366004612cd4565b611414565b34801561081257600080fd5b506103ef611469565b34801561082757600080fd5b50610441600a5481565b34801561083d57600080fd5b5061046f61084c366004612cd4565b611478565b34801561085d57600080fd5b50610441600b5481565b34801561087357600080fd5b5061041c610882366004612c45565b6114fc565b34801561089357600080fd5b506103bd7f000000000000000000000000609b35253c593db2825de23a7a1d7709fdf5a05881565b3480156108c757600080fd5b5061041c6108d6366004612c45565b6115a5565b3480156108e757600080fd5b506103bd7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b34801561091b57600080fd5b5061046f6115b2565b34801561093057600080fd5b506103bd61093f366004612c6f565b6008602052600090815260409020546001600160a01b031681565b34801561096657600080fd5b5061046f610975366004612e4d565b6115ce565b34801561098657600080fd5b506103bd610995366004612e4d565b6115fd565b3480156109a657600080fd5b5061046f6109b5366004612e4d565b611627565b3480156109c657600080fd5b5061046f6109d5366004612c6f565b6116af565b3480156109e657600080fd5b5061044160135481565b3480156109fc57600080fd5b5061044160115481565b348015610a1257600080fd5b50610441601f5481565b61046f610a2a366004612c6f565b6116fb565b348015610a3b57600080fd5b50610a6b610a4a366004612c6f565b601b6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016103d1565b348015610a9257600080fd5b5060095461041c9060ff1681565b348015610aac57600080fd5b50610441610abb366004612c6f565b60196020526000908152604090205481565b348015610ad957600080fd5b5061046f6118ad565b348015610aee57600080fd5b506016546103bd906001600160a01b031681565b348015610b0e57600080fd5b50610441610b1d366004612e66565b6118f0565b348015610b2e57600080fd5b5061041c610b3d366004612c6f565b61191b565b348015610b4e57600080fd5b50610441600f5481565b348015610b6457600080fd5b50610441601e5481565b348015610b7a57600080fd5b506015546103bd906001600160a01b031681565b348015610b9a57600080fd5b50610441600c5481565b348015610bb057600080fd5b5061044160125481565b606060008054610bc990612e99565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf590612e99565b8015610c425780601f10610c1757610100808354040283529160200191610c42565b820191906000526020600020905b815481529060010190602001808311610c2557829003601f168201915b5050505050905090565b60006001600160a01b038316610c7d5760405162461bcd60e51b8152600401610c7490612ed3565b60405180910390fd5b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b61dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54600254610d1f9190612f20565b905090565b33600081815260086020526040812080546001600160a01b0319166001600160a01b03851617905590610d5690610efe565b1115610d6657610d6633826119df565b50565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610e94576001600160a01b0384166000908152600460209081526040808320338452909152902054821115610e015760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610c74565b6001600160a01b038416600090815260046020908152604080832033845290915281208054849290610e34908490612f20565b90915550506001600160a01b038416600081815260046020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b610e9f848484611ca3565b90505b9392505050565b6014546001600160a01b03163314610ed35760405162461bcd60e51b8152600401610c7490612f33565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152601b60205260408120548190610f2290611d80565b6001600160a01b0384166000908152601b6020526040902060010154909150808211610f52575060009392505050565b610f5c8183612f20565b949350505050565b6014546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610c7490612f33565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6014546001600160a01b03163314610fe35760405162461bcd60e51b8152600401610c7490612f33565b60145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015611036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105a9190612f6a565b505050565b60006001600160a01b0383166110875760405162461bcd60e51b8152600401610c7490612ed3565b8161109233856118f0565b61109c9190612f87565b3360008181526004602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610cd1565b6000610cdd82600019610c4c565b6014546001600160a01b0316331461112b5760405162461bcd60e51b8152600401610c7490612f33565b60006111378382612fe8565b50600161105a8282612fe8565b6014546001600160a01b0316331461116e5760405162461bcd60e51b8152600401610c7490612f33565b60095460ff16156111f157600a54836111878688612f87565b6111919190612f87565b11156111f15760405162461bcd60e51b815260206004820152602960248201527f4f6e63652072656e6f756e6365642c2074617865732063616e206f6e6c79206260448201526819481b1bddd95c995960ba1b6064820152608401610c74565b600b859055600c849055600d8390558261120b8587612f87565b6112159190612f87565b600a8190556012839055601382905560649082906112349085906130a8565b61123e91906130bf565b1061127e5760405162461bcd60e51b815260206004820152601060248201526f15185e081cd859995d1e481b1a5b5a5d60821b6044820152606401610c74565b5050505050565b6000805b8281101561105a576023546112a090600190612f20565b60225411156112b3575050600060225550565b6023602254815481106112c8576112c86130e1565b6000918252602090912001546001600160a01b031691506112e882611d9d565b602280549060006112f8836130f7565b91905055508080611308906130f7565b915050611289565b6014546001600160a01b0316331461133a5760405162461bcd60e51b8152600401610c7490612f33565b6014546040516000916001600160a01b03169083908381818185875af1925050503d806000811461127e576040519150601f19603f3d011682016040523d82523d6000602084013e61127e565b6014546001600160a01b031633146113b15760405162461bcd60e51b8152600401610c7490612f33565b60095460ff16156113c5576103e8600f5550565b600f819055600a811015610d665760405162461bcd60e51b815260206004820152601660248201527513585e15d85b1b195d081cd859995d1e481b1a5b5a5d60521b6044820152606401610c74565b6014546001600160a01b0316331461143e5760405162461bcd60e51b8152600401610c7490612f33565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b606060018054610bc990612e99565b6014546001600160a01b031633146114a25760405162461bcd60e51b8152600401610c7490612f33565b60095460ff166114f8576001600160a01b0382166000908152600760209081526040808320805485151560ff199182168117909255601c8452828520805482168317905560059093529220805490911690911790555b5050565b60006001600160a01b0383166115245760405162461bcd60e51b8152600401610c7490612ed3565b8161152f33856118f0565b10156115905760405162461bcd60e51b815260206004820152602a60248201527f43616e2774207375627472616374206d6f7265207468616e2063757272656e7460448201526920616c6c6f77616e636560b01b6064820152608401610c74565b8161159b33856118f0565b61109c9190612f20565b6000610ea2338484611ca3565b60006115bd33610efe565b11156115cc576115cc33611deb565b565b6014546001600160a01b031633146115f85760405162461bcd60e51b8152600401610c7490612f33565b601155565b6018818154811061160d57600080fd5b6000918252602090912001546001600160a01b0316905081565b6014546001600160a01b031633146116515760405162461bcd60e51b8152600401610c7490612f33565b60095460ff161561166457606460105550565b6010819055604b811015610d665760405162461bcd60e51b815260206004820152601260248201527113585e151e081cd859995d1e481b1a5b5a5d60721b6044820152606401610c74565b6014546001600160a01b031633146116d95760405162461bcd60e51b8152600401610c7490612f33565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633146117255760405162461bcd60e51b8152600401610c7490612f33565b6611c37937e0800034101561178a5760405162461bcd60e51b815260206004820152602560248201527f4e65656420302e3030352045544820746f207465737420746865206e65772072604482015264195dd85c9960da1b6064820152608401610c74565b601680546001600160a01b0319166001600160a01b0383161790556040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816000815181106117fa576117fa6130e1565b6001600160a01b03928316602091820292909201015260165482519116908290600190811061182b5761182b6130e1565b6001600160a01b03928316602091820292909201015260155460145460405163b6f9de9560e01b81529183169263b6f9de95923492611877926000928892909116904290600401613154565b6000604051808303818588803b15801561189057600080fd5b505af11580156118a4573d6000803e3d6000fd5b50505050505050565b6014546001600160a01b031633146118d75760405162461bcd60e51b8152600401610c7490612f33565b60095460ff166115cc576009805460ff19166001179055565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600080601880548060200260200160405190810160405280929190818152602001828054801561197457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611956575b5050505050905060005b81518110156119d557818181518110611999576119996130e1565b60200260200101516001600160a01b0316846001600160a01b0316036119c3575060019392505050565b806119cd816130f7565b91505061197e565b5060009392505050565b60006119ea83610efe565b905066038d7ea4c68000811015611a0057505050565b6040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600081518110611a5557611a556130e1565b6001600160a01b039283166020918202929092010152601654825191169082906001908110611a8657611a866130e1565b6001600160a01b0392831660209182029290920101526015541663b6f9de95611ab06002856130bf565b60008488426040518663ffffffff1660e01b8152600401611ad49493929190613154565b6000604051808303818588803b158015611aed57600080fd5b505af1158015611b01573d6000803e3d6000fd5b50505050508281600181518110611b1a57611b1a6130e1565b6001600160a01b0392831660209182029290920101526015541663b6f9de95611b446002856130bf565b60008488426040518663ffffffff1660e01b8152600401611b689493929190613154565b6000604051808303818588803b158015611b8157600080fd5b505af193505050508015611b93575060015b611c1c576014546040516000916001600160a01b03169084908381818185875af1925050503d8060008114611be4576040519150601f19603f3d011682016040523d82523d6000602084013e611be9565b606091505b505090508015611c1a576001600160a01b038516600090815260086020526040902080546001600160a01b03191690555b505b81601e54611c2a9190612f87565b601e556001600160a01b0384166000908152601b6020526040902060020154611c54908390612f87565b6001600160a01b0385166000908152601b60205260409020600281019190915554611c7e90611d80565b6001600160a01b039094166000908152601b6020526040902060010193909355505050565b6001600160a01b03831660009081526005602052604081205460ff1680611ce257506001600160a01b03831660009081526005602052604090205460ff165b15611cf857611cf2848484611fd8565b50611d24565b611d0384848461215b565b9150611d10848484611fd8565b5060115415611d2457611d24601154611285565b6001600160a01b0384166000908152601c602052604090205460ff16611d4d57611d4d84612617565b6001600160a01b0383166000908152601c602052604090205460ff16611d7657611d7683612617565b5060019392505050565b6000602054601f5483611d9391906130a8565b610cdd91906130bf565b6001600160a01b0381811660009081526008602052604090205416611dc557610d6681611deb565b6001600160a01b03808216600090815260086020526040902054610d66918391166119df565b6000611df682610efe565b905066038d7ea4c68000811015611e0b575050565b6001600160a01b0382166108fc611e236002846130bf565b6040518115909202916000818181858888f19350505050158015611e4b573d6000803e3d6000fd5b506040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600081518110611ea157611ea16130e1565b6001600160a01b039283166020918202929092010152601654825191169082906001908110611ed257611ed26130e1565b6001600160a01b0392831660209182029290920101526015541663b6f9de95611efc6002856130bf565b60008487426040518663ffffffff1660e01b8152600401611f209493929190613154565b6000604051808303818588803b158015611f3957600080fd5b505af1158015611f4d573d6000803e3d6000fd5b505050505081601e54611f609190612f87565b601e556001600160a01b0383166000908152601b6020526040902060020154611f8a908390612f87565b6001600160a01b0384166000908152601b60205260409020600281019190915554611fb490611d80565b6001600160a01b039093166000908152601b60205260409020600101929092555050565b60006001600160a01b0384166120305760405162461bcd60e51b815260206004820152601d60248201527f43616e277420757365207a65726f2061646472657373657320686572650000006044820152606401610c74565b6001600160a01b0384166000908152600360205260409020548211156120985760405162461bcd60e51b815260206004820181905260248201527f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e6044820152606401610c74565b816000036120a857506001610ea2565b6001600160a01b038416600090815260036020526040812080548492906120d0908490612f20565b90915550506001600160a01b038316600090815260036020526040812080548492906120fd908490612f87565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214991815260200190565b60405180910390a35060019392505050565b60006103e8600f5411612290576001600160a01b03831660009081526007602052604090205460ff16612203576103e8600f5460025461219b91906130a8565b6121a591906130bf565b6001600160a01b0384166000908152600360205260409020546121c9908490612f87565b11156122035760405162461bcd60e51b815260206004820152600960248201526813585e15d85b1b195d60ba1b6044820152606401610c74565b6001600160a01b03841660009081526007602052604090205460ff166122905760646103e8601054600f5460025461223b91906130a8565b61224591906130a8565b61224f91906130bf565b61225991906130bf565b8211156122905760405162461bcd60e51b815260206004820152600560248201526409ac2f0a8f60db1b6044820152606401610c74565b6001600160a01b03841660009081526006602052604090205460ff16806122cf57506001600160a01b03831660009081526006602052604090205460ff165b156123bb5760c86002546122e391906130bf565b82111561231c5760405162461bcd60e51b81526020600482015260076024820152664d61785478416960c81b6044820152606401610c74565b6000606461232b84604b6130a8565b61233591906130bf565b90506123408461191b565b1561235657612350858583611fd8565b5061239c565b61235f8561191b565b1561236f57612350858683611fd8565b61239a857f000000000000000000000000609b35253c593db2825de23a7a1d7709fdf5a05883611fd8565b505b60646123a984604b6130a8565b6123b391906130bf565b915050610ea2565b6123c48461191b565b1580156123d757506123d58361191b565b155b156123e3575080610ea2565b600a546000036123f4575080610ea2565b60006123ff8461191b565b61242e576064600d54600b546124159190612f87565b61241f90856130a8565b61242991906130bf565b61246e565b6064601354601254600d54600b546124469190612f87565b61245090876130a8565b61245a91906130a8565b61246491906130bf565b61246e91906130bf565b9050801561248357612481853083611fd8565b505b600c54156125115760006064600c548561249d91906130a8565b6124a791906130bf565b90506124b28561191b565b156124e2576124dc8686601354601254856124cd91906130a8565b6124d791906130bf565b611fd8565b5061250f565b61250d867f000000000000000000000000609b35253c593db2825de23a7a1d7709fdf5a05883611fd8565b505b505b61251a8561191b565b61259a57612526612816565b7f000000000000000000000000609b35253c593db2825de23a7a1d7709fdf5a0586001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561258157600080fd5b505af1158015612595573d6000803e3d6000fd5b505050505b6125a38461191b565b6125d0576064600a54846125b791906130a8565b6125c191906130bf565b6125cb9084612f20565b61260e565b6064601354601254600a54866125e691906130a8565b6125f091906130a8565b6125fa91906130bf565b61260491906130bf565b61260e9084612f20565b95945050505050565b6001600160a01b0381166000908152601b60205260409020541561263e5761263e81611d9d565b6001600160a01b0381166000908152601b602052604090205415801561267b57506001600160a01b03811660009081526003602052604090205415155b156126dd57602380546001600160a01b0383166000818152601960205260408120839055600183018455929092527fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f42300180546001600160a01b03191690911790555b6001600160a01b0381166000908152601b60205260409020541580159061271a57506001600160a01b038116600090815260036020526040902054155b1561276a576001600160a01b0381166000908152601b6020526040902054601d546127459190612f20565b601d556001600160a01b0381166000908152601b6020526040812055610d6681612ac6565b6001600160a01b03811660009081526003602052604090205415610d66576001600160a01b038116600090815260036020908152604080832054601b90925290912054601d546127ba9190612f20565b6127c49190612f87565b601d556001600160a01b038116600090815260036020908152604080832054601b9092529091208190556127f790611d80565b6001600160a01b0382166000908152601b602052604090206001015550565b600e543060009081526003602052604090205410806128425750600d54600b546128409190612f87565b155b1561284957565b476021556040805160028082526060820183526000926020830190803683370190505090503081600081518110612882576128826130e1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106128d6576128d66130e1565b6001600160a01b039283166020918202929092018101919091526015543060008181526003909352604080842054905163791ac94760e01b8152929094169363791ac9479361293093919290918791904290600401613189565b600060405180830381600087803b15801561294a57600080fd5b505af115801561295e573d6000803e3d6000fd5b505060215447925082119050612972575050565b6000602154826129829190612f20565b601d549091501561105a576000600d54600b5461299f9190612f87565b1115612a90576000600d54600b546129b79190612f87565b600d546129c490846130a8565b6129ce91906130bf565b6017546040519192506000916001600160a01b039091169083908381818185875af1925050503d8060008114612a20576040519150601f19603f3d011682016040523d82523d6000602084013e612a25565b606091505b5050905080612a4e57601d5483602054612a3f91906130a8565b612a4991906130bf565b612a72565b601d54612a5b8385612f20565b602054612a6891906130a8565b612a7291906130bf565b601f6000828254612a839190612f87565b9091555061105a92505050565b601d5481602054612aa191906130a8565b612aab91906130bf565b601f6000828254612abc9190612f87565b9091555050505050565b60238054612ad690600190612f20565b81548110612ae657612ae66130e1565b60009182526020808320909101546001600160a01b0384811684526019909252604090922054602380549290931692918110612b2457612b246130e1565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260199182905260408120546023805491939291612b7090600190612f20565b81548110612b8057612b806130e1565b60009182526020808320909101546001600160a01b031683528201929092526040019020556023805480612bb657612bb66131c5565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600060208083528351808285015260005b81811015612c0857858101830151858201604001528201612bec565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114612c4057600080fd5b919050565b60008060408385031215612c5857600080fd5b612c6183612c29565b946020939093013593505050565b600060208284031215612c8157600080fd5b610ea282612c29565b600080600060608486031215612c9f57600080fd5b612ca884612c29565b9250612cb660208501612c29565b9150604084013590509250925092565b8015158114610d6657600080fd5b60008060408385031215612ce757600080fd5b612cf083612c29565b91506020830135612d0081612cc6565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112612d3257600080fd5b813567ffffffffffffffff80821115612d4d57612d4d612d0b565b604051601f8301601f19908116603f01168101908282118183101715612d7557612d75612d0b565b81604052838152866020858801011115612d8e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215612dc157600080fd5b823567ffffffffffffffff80821115612dd957600080fd5b612de586838701612d21565b93506020850135915080821115612dfb57600080fd5b50612e0885828601612d21565b9150509250929050565b600080600080600060a08688031215612e2a57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215612e5f57600080fd5b5035919050565b60008060408385031215612e7957600080fd5b612e8283612c29565b9150612e9060208401612c29565b90509250929050565b600181811c90821680612ead57607f821691505b602082108103612ecd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601b908201527f43616e277420757365207a65726f206164647265737320686572650000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cdd57610cdd612f0a565b60208082526018908201527f4f6e6c79207468652063656f2063616e20646f20746861740000000000000000604082015260600190565b600060208284031215612f7c57600080fd5b8151610ea281612cc6565b80820180821115610cdd57610cdd612f0a565b601f82111561105a57600081815260208120601f850160051c81016020861015612fc15750805b601f850160051c820191505b81811015612fe057828155600101612fcd565b505050505050565b815167ffffffffffffffff81111561300257613002612d0b565b613016816130108454612e99565b84612f9a565b602080601f83116001811461304b57600084156130335750858301515b600019600386901b1c1916600185901b178555612fe0565b600085815260208120601f198616915b8281101561307a5788860151825594840194600190910190840161305b565b50858210156130985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417610cdd57610cdd612f0a565b6000826130dc57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161310957613109612f0a565b5060010190565b600081518084526020808501945080840160005b838110156131495781516001600160a01b031687529582019590820190600101613124565b509495945050505050565b84815260806020820152600061316d6080830186613110565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a0604082015260006131a860a0830186613110565b6001600160a01b0394909416606083015250608001529392505050565b634e487b7160e01b600052603160045260246000fdfea26469706673582212202d5baa25d4a2327100d45097782afa03770193d773ead19e77cbb6bb006834b464736f6c63430008130033

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

000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000989680000000000000000000000000cb3850451feb8d50518ad2b491906fbaf44dd56a0000000000000000000000006ad9a31f02f1e790ff85584ea3c3d0001e45cd640000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000000c457468796c656e6520322e30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044332483400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Ethylene 2.0
Arg [1] : symbol_ (string): C2H4
Arg [2] : totalSupply_ (uint256): 10000000
Arg [3] : marketing_ (address): 0xcb3850451feb8D50518ad2b491906FBaF44DD56a
Arg [4] : rewardsAddress (address): 0x6aD9a31f02F1E790fF85584EA3c3D0001E45cd64
Arg [5] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [6] : weth_ (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [7] : maxWalletInPermille_ (uint256): 25

-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [2] : 0000000000000000000000000000000000000000000000000000000000989680
Arg [3] : 000000000000000000000000cb3850451feb8d50518ad2b491906fbaf44dd56a
Arg [4] : 0000000000000000000000006ad9a31f02f1e790ff85584ea3c3d0001e45cd64
Arg [5] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [6] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000019
Arg [8] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [9] : 457468796c656e6520322e300000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [11] : 4332483400000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

2635:18366:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3605:73;;;;;;;;;;;;3636:42;3605:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;3605:73:0;;;;;;;;6214:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7323:288::-;;;;;;;;;;-1:-1:-1;7323:288:0;;;;;:::i;:::-;;:::i;:::-;;;1377:14:1;;1370:22;1352:41;;1340:2;1325:18;7323:288:0;1212:187:1;6296:102:0;;;;;;;;;;;;;:::i;:::-;;;1550:25:1;;;1538:2;1523:18;6296:102:0;1404:177:1;17430:225:0;;;;;;;;;;-1:-1:-1;17430:225:0;;;;;:::i;:::-;;:::i;:::-;;8474:481;;;;;;;;;;-1:-1:-1;8474:481:0;;;;;:::i;:::-;;:::i;11456:144::-;;;;;;;;;;-1:-1:-1;11456:144:0;;;;;:::i;:::-;;:::i;19736:398::-;;;;;;;;;;-1:-1:-1;19736:398:0;;;;;:::i;:::-;;:::i;10639:150::-;;;;;;;;;;-1:-1:-1;10639:150:0;;;;;:::i;:::-;;:::i;3258:28::-;;;;;;;;;;;;;;;;17663:107;;;;;;;;;;-1:-1:-1;17663:107:0;;;;;:::i;:::-;17736:10;17723:24;;;;:12;:24;;;;;:45;;-1:-1:-1;;;;;;17723:45:0;-1:-1:-1;;;;;17723:45:0;;;;;;;;;;17663:107;6404:76;;;;;;;;;;-1:-1:-1;6404:76:0;;2762:2;2695:36:1;;2683:2;2668:18;6404:76:0;2553:184:1;6811:107:0;;;;;;;;;;-1:-1:-1;6811:107:0;;;;;:::i;:::-;;:::i;2926:41::-;;;;;;;;;;-1:-1:-1;2926:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7619:357;;;;;;;;;;-1:-1:-1;7619:357:0;;;;;:::i;:::-;;:::i;4204:26::-;;;;;;;;;;;;;;;;4138:57;;;;;;;;;;-1:-1:-1;4138:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7205:106;;;;;;;;;;-1:-1:-1;7205:106:0;;;;;:::i;:::-;;:::i;10058:155::-;;;;;;;;;;-1:-1:-1;10058:155:0;;;;;:::i;:::-;;:::i;4039:45::-;;;;;;;;;;-1:-1:-1;4039:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;8963:573;;;;;;;;;;-1:-1:-1;8963:573:0;;;;;:::i;:::-;;:::i;16703:375::-;;;;;;;;;;-1:-1:-1;16703:375:0;;;;;:::i;:::-;;:::i;2974:34::-;;;;;;;;;;-1:-1:-1;2974:34:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6572:103;;;;;;;;;;-1:-1:-1;6572:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6655:18:0;6638:7;6655:18;;;:9;:18;;;;;;;6572:103;6681:124;;;;;;;;;;-1:-1:-1;6681:124:0;;;;;:::i;:::-;;:::i;3753:30::-;;;;;;;;;;-1:-1:-1;3753:30:0;;;;-1:-1:-1;;;;;3753:30:0;;;9548:285;;;;;;;;;;-1:-1:-1;9548:285:0;;;;;:::i;:::-;;:::i;3015:54::-;;;;;;;;;;-1:-1:-1;3015:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3552:18;;;;;;;;;;-1:-1:-1;3552:18:0;;;;-1:-1:-1;;;;;3552:18:0;;;11612:103;;;;;;;;;;-1:-1:-1;11612:103:0;;;;;:::i;:::-;;:::i;6486:80::-;;;;;;;;;;;;;:::i;3170:18::-;;;;;;;;;;;;;;;;10343:288;;;;;;;;;;-1:-1:-1;10343:288:0;;;;;:::i;:::-;;:::i;3195:26::-;;;;;;;;;;;;;;;;7984:482;;;;;;;;;;-1:-1:-1;7984:482:0;;;;;:::i;:::-;;:::i;3792:29::-;;;;;;;;;;;;;;;7059:140;;;;;;;;;;-1:-1:-1;7059:140:0;;;;;:::i;:::-;;:::i;3685:29::-;;;;;;;;;;;;;;;17308:110;;;;;;;;;;;;;:::i;3076:47::-;;;;;;;;;;-1:-1:-1;3076:47:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3076:47:0;;;10221:106;;;;;;;;;;-1:-1:-1;10221:106:0;;;;;:::i;:::-;;:::i;3828:22::-;;;;;;;;;;-1:-1:-1;3828:22:0;;;;;:::i;:::-;;:::i;9841:205::-;;;;;;;;;;-1:-1:-1;9841:205:0;;;;;:::i;:::-;;:::i;10801:131::-;;;;;;;;;;-1:-1:-1;10801:131:0;;;;;:::i;:::-;;:::i;3511:32::-;;;;;;;;;;;;;;;;3426:34;;;;;;;;;;;;;;;;4275:30;;;;;;;;;;;;;;;;10948:500;;;;;;:::i;:::-;;:::i;4091:40::-;;;;;;;;;;-1:-1:-1;4091:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4992:25:1;;;5048:2;5033:18;;5026:34;;;;5076:18;;;5069:34;4980:2;4965:18;4091:40:0;4790:319:1;3132:29:0;;;;;;;;;;-1:-1:-1;3132:29:0;;;;;;;;3978:54;;;;;;;;;;-1:-1:-1;3978:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;11727:111;;;;;;;;;;;;;:::i;3721:25::-;;;;;;;;;;-1:-1:-1;3721:25:0;;;;-1:-1:-1;;;;;3721:25:0;;;6924:129;;;;;;;;;;-1:-1:-1;6924:129:0;;;;;:::i;:::-;;:::i;20765:231::-;;;;;;;;;;-1:-1:-1;20765:231:0;;;;;:::i;:::-;;:::i;3346:39::-;;;;;;;;;;;;;;;;4237:31;;;;;;;;;;;;;;;;3577:21;;;;;;;;;;-1:-1:-1;3577:21:0;;;;-1:-1:-1;;;;;3577:21:0;;;3228:23;;;;;;;;;;;;;;;;3469:35;;;;;;;;;;;;;;;;6214:76;6260:13;6283:5;6276:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6214:76;:::o;7323:288::-;7398:4;-1:-1:-1;;;;;7423:21:0;;7415:61;;;;-1:-1:-1;;;7415:61:0;;;;;;;:::i;:::-;;;;;;;;;7499:10;7487:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7487:32:0;;;;;;;;;;;;:41;;;7544:37;1550:25:1;;;7487:32:0;;7499:10;7544:37;;1523:18:1;7544:37:0;;;;;;;;-1:-1:-1;7599:4:0;7323:288;;;;;:::o;6296:102::-;3636:42;6349:7;6381:15;;;:9;:15;;;;6366:12;;:30;;6381:15;6366:30;:::i;:::-;6359:37;;6296:102;:::o;17430:225::-;17512:10;17499:24;;;;:12;:24;;;;;:45;;-1:-1:-1;;;;;;17499:45:0;-1:-1:-1;;;;;17499:45:0;;;;;:24;17558:29;;:17;:29::i;:::-;:33;17555:92;;;17593:54;17616:10;17628:18;17593:22;:54::i;:::-;17430:225;:::o;8474:481::-;-1:-1:-1;;;;;8596:19:0;;8575:4;8596:19;;;:11;:19;;;;;;;;8616:10;8596:31;;;;;;;;-1:-1:-1;;8596:52:0;8592:298;;-1:-1:-1;;;;;8673:19:0;;;;;;:11;:19;;;;;;;;8693:10;8673:31;;;;;;;;:41;-1:-1:-1;8673:41:0;8665:76;;;;-1:-1:-1;;;8665:76:0;;6587:2:1;8665:76:0;;;6569:21:1;6626:2;6606:18;;;6599:30;-1:-1:-1;;;6645:18:1;;;6638:52;6707:18;;8665:76:0;6385:346:1;8665:76:0;-1:-1:-1;;;;;8756:19:0;;;;;;:11;:19;;;;;;;;8776:10;8756:31;;;;;;;:41;;8791:6;;8756:19;:41;;8791:6;;8756:41;:::i;:::-;;;;-1:-1:-1;;;;;;;8817:61:0;;8846:19;;;;:11;:19;;;;;;;;8834:10;8846:31;;;;;;;;;;;8817:61;;1550:25:1;;;8834:10:0;;8817:61;;;1523:18:1;8817:61:0;;;;;;;8592:298;8907:40;8921:6;8929:9;8940:6;8907:13;:40::i;:::-;8900:47;;8474:481;;;;;;:::o;11456:144::-;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11545:38:0;;;::::1;;::::0;;;:22:::1;:38;::::0;;;;:47;;-1:-1:-1;;11545:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11456:144::o;19736:398::-;-1:-1:-1;;;;;19877:19:0;;19805:7;19877:19;;;:6;:19;;;;;:26;19805:7;;19859:45;;:17;:45::i;:::-;-1:-1:-1;;;;;19950:19:0;;19915:32;19950:19;;;:6;:19;;;;;:33;;;19825:79;;-1:-1:-1;19997:51:0;;;19994:64;;-1:-1:-1;20057:1:0;;19736:398;-1:-1:-1;;;19736:398:0:o;19994:64::-;20076:50;20102:24;20076:23;:50;:::i;:::-;20069:57;19736:398;-1:-1:-1;;;;19736:398:0:o;10639:150::-;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10732:40:0;;;::::1;;::::0;;;:24:::1;:40;::::0;;;;:49;;-1:-1:-1;;10732:49:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10639:150::o;6811:107::-;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;6904:3:::1;::::0;6881:35:::1;::::0;-1:-1:-1;;;6881:35:0;;-1:-1:-1;;;;;6904:3:0;;::::1;6881:35;::::0;::::1;7263:51:1::0;7330:18;;;7323:34;;;6881:22:0;;::::1;::::0;::::1;::::0;7236:18:1;;6881:35:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6811:107:::0;;:::o;7619:357::-;7699:4;-1:-1:-1;;;;;7724:21:0;;7716:61;;;;-1:-1:-1;;;7716:61:0;;;;;;;:::i;:::-;7857:10;7824:30;7834:10;7846:7;7824:9;:30::i;:::-;:43;;;;:::i;:::-;7800:10;7788:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7788:32:0;;;;;;;;;;;;:79;;;7883:63;1550:25:1;;;7788:32:0;;7883:63;;1523:18:1;7883:63:0;1404:177:1;7205:106:0;7260:4;7274:35;7282:7;-1:-1:-1;;7274:7:0;:35::i;10058:155::-;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;10160:5:::1;:15;10168:7:::0;10160:5;:15:::1;:::i;:::-;-1:-1:-1::0;10186:7:0::1;:19;10196:9:::0;10186:7;:19:::1;:::i;8963:573::-:0;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;9121:9:::1;::::0;::::1;;9118:110;;;9178:3;::::0;9162:12;9140:19:::1;9153:6:::0;9140:10;:19:::1;:::i;:::-;:34;;;;:::i;:::-;:41;;9132:96;;;::::0;-1:-1:-1;;;9132:96:0;;10154:2:1;9132:96:0::1;::::0;::::1;10136:21:1::0;10193:2;10173:18;;;10166:30;10232:34;10212:18;;;10205:62;-1:-1:-1;;;10283:18:1;;;10276:39;10332:19;;9132:96:0::1;9952:405:1::0;9132:96:0::1;9239:7;:20:::0;;;9270:3:::1;:12:::0;;;9293:9:::1;:24:::0;;;9305:12;9334:13:::1;9276:6:::0;9249:10;9334:13:::1;:::i;:::-;:25;;;;:::i;:::-;9328:3;:31:::0;;;9370:14:::1;:34:::0;;;9415:11:::1;:28:::0;;;9499:3:::1;::::0;9429:14;;9462:20:::1;::::0;9387:17;;9462:20:::1;:::i;:::-;:34;;;;:::i;:::-;:40;9454:69;;;::::0;-1:-1:-1;;;9454:69:0;;10959:2:1;9454:69:0::1;::::0;::::1;10941:21:1::0;10998:2;10978:18;;;10971:30;-1:-1:-1;;;11017:18:1;;;11010:46;11073:18;;9454:69:0::1;10757:340:1::0;9454:69:0::1;8963:573:::0;;;;;:::o;16703:375::-;16758:11;;16780:291;16802:7;16800:1;:9;16780:291;;;16849:12;:19;:23;;16871:1;;16849:23;:::i;:::-;16833:13;;:39;16830:121;;;-1:-1:-1;;16909:1:0;16893:13;:17;-1:-1:-1;16703:375:0:o;16830:121::-;16971:12;16984:13;;16971:27;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;16971:27:0;;-1:-1:-1;17013:16:0;16971:27;17013:11;:16::i;:::-;17044:13;:15;;;:13;:15;;;:::i;:::-;;;;;;16811:3;;;;;:::i;:::-;;;;16780:291;;6681:124;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;6760:3:::1;::::0;6752:36:::1;::::0;6735:12:::1;::::0;-1:-1:-1;;;;;6760:3:0::1;::::0;6777:6;;6735:12;6752:36;6735:12;6752:36;6777:6;6760:3;6752:36:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9548:285:::0;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;9629:9:::1;::::0;::::1;;9626:88;;;9677:4;9655:19;:26:::0;17430:225;:::o;9626:88::-:1;9724:19;:30:::0;;;9796:2:::1;9773:25:::0;::::1;;9765:60;;;::::0;-1:-1:-1;;;9765:60:0;;11786:2:1;9765:60:0::1;::::0;::::1;11768:21:1::0;11825:2;11805:18;;;11798:30;-1:-1:-1;;;11844:18:1;;;11837:52;11906:18;;9765:60:0::1;11584:346:1::0;11612:103:0;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11686:12:0;;;::::1;;::::0;;;:2:::1;:12;::::0;;;;:21;;-1:-1:-1;;11686:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11612:103::o;6486:80::-;6534:13;6557:7;6550:14;;;;;:::i;10343:288::-;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;10440:9:::1;::::0;::::1;;10451:7;10437:21;-1:-1:-1::0;;;;;10468:39:0;::::1;;::::0;;;:22:::1;:39;::::0;;;;;;;:48;;;::::1;;-1:-1:-1::0;;10468:48:0;;::::1;::::0;::::1;::::0;;;10527:24:::1;:41:::0;;;;;:50;;;::::1;::::0;::::1;::::0;;10588:9:::1;:26:::0;;;;;:35;;;;::::1;::::0;;::::1;::::0;;4580:1:::1;10343:288:::0;;:::o;7984:482::-;8069:4;-1:-1:-1;;;;;8094:21:0;;8086:61;;;;-1:-1:-1;;;8086:61:0;;;;;;;:::i;:::-;8200:15;8166:30;8176:10;8188:7;8166:9;:30::i;:::-;:49;;8158:104;;;;-1:-1:-1;;;8158:104:0;;12137:2:1;8158:104:0;;;12119:21:1;12176:2;12156:18;;;12149:30;12215:34;12195:18;;;12188:62;-1:-1:-1;;;12266:18:1;;;12259:40;12316:19;;8158:104:0;11935:406:1;8158:104:0;8342:15;8309:30;8319:10;8331:7;8309:9;:30::i;:::-;:48;;;;:::i;7059:140::-;7139:4;7153:44;7167:10;7179:9;7190:6;7153:13;:44::i;17308:110::-;17377:1;17345:29;17363:10;17345:17;:29::i;:::-;:33;17342:74;;;17380:36;17405:10;17380:24;:36::i;:::-;17308:110::o;10221:106::-;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;10294:15:::1;:25:::0;10221:106::o;3828:22::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3828:22:0;;-1:-1:-1;3828:22:0;:::o;9841:205::-;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;9927:9:::1;::::0;::::1;;9924:36;;;9947:3;9939:5;:11:::0;17430:225;:::o;9924:36::-:1;9970:5;:15:::0;;;10013:2:::1;10004:11:::0;::::1;;9996:42;;;::::0;-1:-1:-1;;;9996:42:0;;12548:2:1;9996:42:0::1;::::0;::::1;12530:21:1::0;12587:2;12567:18;;;12560:30;-1:-1:-1;;;12606:18:1;;;12599:48;12664:18;;9996:42:0::1;12346:342:1::0;10801:131:0;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;10888:15:::1;:36:::0;;-1:-1:-1;;;;;;10888:36:0::1;-1:-1:-1::0;;;;;10888:36:0;;;::::1;::::0;;;::::1;::::0;;10801:131::o;10948:500::-;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;11052:11:::1;11039:9;:24;;11031:74;;;::::0;-1:-1:-1;;;11031:74:0;;12895:2:1;11031:74:0::1;::::0;::::1;12877:21:1::0;12934:2;12914:18;;;12907:30;12973:34;12953:18;;;12946:62;-1:-1:-1;;;13024:18:1;;;13017:35;13069:19;;11031:74:0::1;12693:401:1::0;11031:74:0::1;11116:10;:23:::0;;-1:-1:-1;;;;;;11116:23:0::1;-1:-1:-1::0;;;;;11116:23:0;::::1;;::::0;;11174:16:::1;::::0;;11188:1:::1;11174:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11174:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11174:16:0::1;11150:40;;11211:4;11201;11206:1;11201:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11201:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;11236:10:::1;::::0;11226:7;;11236:10;::::1;::::0;11226:4;;11236:10;;11226:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;11226:20:0;;::::1;:7;::::0;;::::1;::::0;;;;;:20;11270:6:::1;::::0;11396:3:::1;::::0;11259:181:::1;::::0;-1:-1:-1;;;11259:181:0;;11270:6;;::::1;::::0;11259:69:::1;::::0;11336:9:::1;::::0;11259:181:::1;::::0;11270:6:::1;::::0;11377:4;;11396:3;;::::1;::::0;11414:15:::1;::::0;11259:181:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;11020:428;10948:500:::0;:::o;11727:111::-;4537:3;;-1:-1:-1;;;;;4537:3:0;4523:10;:17;4514:55;;;;-1:-1:-1;;;4514:55:0;;;;;;;:::i;:::-;11786:9:::1;::::0;::::1;;11797:7;11783:21;11814:9;:16:::0;;-1:-1:-1;;11814:16:0::1;11826:4;11814:16;::::0;;11727:111::o;6924:129::-;-1:-1:-1;;;;;7023:19:0;;;7006:7;7023:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6924:129::o;20765:231::-;20819:4;20836:25;20864:5;20836:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20836:33:0;;;;;;;;;;;;;;;;;;;;;;;20885:9;20880:85;20904:8;:15;20900:1;:19;20880:85;;;20941:8;20950:1;20941:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;20930:22:0;:7;-1:-1:-1;;;;;20930:22:0;;20926:39;;-1:-1:-1;20961:4:0;;20765:231;-1:-1:-1;;;20765:231:0:o;20926:39::-;20921:3;;;;:::i;:::-;;;;20880:85;;;-1:-1:-1;20983:5:0;;20765:231;-1:-1:-1;;;20765:231:0:o;18556:1172::-;18649:14;18666:30;18684:11;18666:17;:30::i;:::-;18649:47;;18719:11;18710:6;:20;18707:32;;;18732:7;18556:1172;;:::o;18707:32::-;18775:16;;;18789:1;18775:16;;;;;;;;18751:21;;18775:16;;;;;;;;;;-1:-1:-1;18775:16:0;18751:40;;18812:4;18802;18807:1;18802:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18802:14:0;;;:7;;;;;;;;;:14;18837:10;;18827:7;;18837:10;;;18827:4;;18837:10;;18827:7;;;;;;:::i;:::-;-1:-1:-1;;;;;18827:20:0;;;:7;;;;;;;;;:20;18871:6;;;18860:69;18937:10;18946:1;18937:6;:10;:::i;:::-;18963:1;18979:4;18998:11;19024:15;18860:190;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19073:10;19063:4;19068:1;19063:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19063:20:0;;;:7;;;;;;;;;:20;19119:6;;;19108:69;19185:10;19194:1;19185:6;:10;:::i;:::-;19215:1;19235:4;19258:11;19288:15;19108:210;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19104:379;;19378:3;;19370:36;;19353:12;;-1:-1:-1;;;;;19378:3:0;;19395:6;;19353:12;19370:36;19353:12;19370:36;19395:6;19378:3;19370:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19352:54;;;19424:7;19421:50;;;-1:-1:-1;;;;;19433:25:0;;19469:1;19433:25;;;:12;:25;;;;;:38;;-1:-1:-1;;;;;;19433:38:0;;;19421:50;19337:146;19104:379;19533:6;19514:16;;:25;;;;:::i;:::-;19495:16;:44;-1:-1:-1;;;;;19586:19:0;;;;;;:6;:19;;;;;:33;;;:42;;19622:6;;19586:42;:::i;:::-;-1:-1:-1;;;;;19550:19:0;;;;;;:6;:19;;;;;:33;;;:78;;;;19693:26;19675:45;;:17;:45::i;:::-;-1:-1:-1;;;;;19639:19:0;;;;;;;:6;:19;;;;;:33;;:81;;;;-1:-1:-1;;;18556:1172:0:o;11846:573::-;-1:-1:-1;;;;;11959:17:0;;11938:4;11959:17;;;:9;:17;;;;;;;;;:41;;-1:-1:-1;;;;;;11980:20:0;;;;;;:9;:20;;;;;;;;11959:41;11955:299;;;12003:42;12019:6;12027:9;12038:6;12003:15;:42::i;:::-;;11955:299;;;12085:34;12093:6;12101:9;12112:6;12085:7;:34::i;:::-;12076:43;;12134:42;12150:6;12158:9;12169:6;12134:15;:42::i;:::-;-1:-1:-1;12194:15:0;;:19;12191:51;;12215:27;12226:15;;12215:10;:27::i;:::-;-1:-1:-1;;;;;12268:32:0;;;;;;:24;:32;;;;;;;;12264:54;;12302:16;12311:6;12302:8;:16::i;:::-;-1:-1:-1;;;;;12333:35:0;;;;;;:24;:35;;;;;;;;12329:60;;12370:19;12379:9;12370:8;:19::i;:::-;-1:-1:-1;12407:4:0;11846:573;;;;;:::o;20142:141::-;20207:7;20260:15;;20242;;20234:5;:23;;;;:::i;:::-;:41;;;;:::i;17086:214::-;-1:-1:-1;;;;;17148:22:0;;;17182:1;17148:22;;;:12;:22;;;;;;;17145:147;;17186:34;17211:8;17186:24;:34::i;17145:147::-;-1:-1:-1;;;;;17269:22:0;;;;;;;:12;:22;;;;;;17236:56;;17259:8;;17269:22;17236;:56::i;17778:770::-;17853:14;17870:30;17888:11;17870:17;:30::i;:::-;17853:47;;17923:11;17914:6;:20;17911:32;;;17936:7;17778:770;:::o;17911:32::-;-1:-1:-1;;;;;17953:29:0;;:39;17983:8;17990:1;17983:6;:8;:::i;:::-;17953:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18027:16:0;;;18041:1;18027:16;;;;;;;;18003:21;;18027:16;;;;;;;;;;-1:-1:-1;18027:16:0;18003:40;;18064:4;18054;18059:1;18054:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18054:14:0;;;:7;;;;;;;;;:14;18089:10;;18079:7;;18089:10;;;18079:4;;18089:10;;18079:7;;;;;;:::i;:::-;-1:-1:-1;;;;;18079:20:0;;;:7;;;;;;;;;:20;18123:6;;;18112:69;18189:10;18198:1;18189:6;:10;:::i;:::-;18215:1;18231:4;18250:11;18276:15;18112:190;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18353:6;18334:16;;:25;;;;:::i;:::-;18315:16;:44;-1:-1:-1;;;;;18406:19:0;;;;;;:6;:19;;;;;:33;;;:42;;18442:6;;18406:42;:::i;:::-;-1:-1:-1;;;;;18370:19:0;;;;;;:6;:19;;;;;:33;;;:78;;;;18513:26;18495:45;;:17;:45::i;:::-;-1:-1:-1;;;;;18459:19:0;;;;;;;:6;:19;;;;;:33;;:81;;;;-1:-1:-1;;17778:770:0:o;14146:454::-;14240:4;-1:-1:-1;;;;;14265:20:0;;14257:62;;;;-1:-1:-1;;;14257:62:0;;14282:2:1;14257:62:0;;;14264:21:1;14321:2;14301:18;;;14294:30;14360:31;14340:18;;;14333:59;14409:18;;14257:62:0;14080:353:1;14257:62:0;-1:-1:-1;;;;;14348:17:0;;;;;;:9;:17;;;;;;14338:27;;;14330:72;;;;-1:-1:-1;;;14330:72:0;;14640:2:1;14330:72:0;;;14622:21:1;;;14659:18;;;14652:30;14718:34;14698:18;;;14691:62;14770:18;;14330:72:0;14438:356:1;14330:72:0;14416:6;14426:1;14416:11;14413:27;;-1:-1:-1;14436:4:0;14429:11;;14413:27;-1:-1:-1;;;;;14451:17:0;;;;;;:9;:17;;;;;:27;;14472:6;;14451:17;:27;;14472:6;;14451:27;:::i;:::-;;;;-1:-1:-1;;;;;;;14489:20:0;;;;;;:9;:20;;;;;:30;;14513:6;;14489:20;:30;;14513:6;;14489:30;:::i;:::-;;;;;;;;14552:9;-1:-1:-1;;;;;14535:35:0;14544:6;-1:-1:-1;;;;;14535:35:0;;14563:6;14535:35;;;;1550:25:1;;1538:2;1523:18;;1404:177;14535:35:0;;;;;;;;-1:-1:-1;14588:4:0;14146:454;;;;;:::o;12427:1711::-;12513:7;12559:4;12536:19;;:27;12533:332;;-1:-1:-1;;;;;12588:33:0;;;;;;:22;:33;;;;;;;;12584:135;;12701:4;12679:19;;12664:12;;:34;;;;:::i;:::-;:41;;;;:::i;:::-;-1:-1:-1;;;;;12631:20:0;;;;;;:9;:20;;;;;;:29;;12654:6;;12631:29;:::i;:::-;:74;;12623:96;;;;-1:-1:-1;;;12623:96:0;;15001:2:1;12623:96:0;;;14983:21:1;15040:1;15020:18;;;15013:29;-1:-1:-1;;;15058:18:1;;;15051:39;15107:18;;12623:96:0;14799:332:1;12623:96:0;-1:-1:-1;;;;;12738:30:0;;;;;;:22;:30;;;;;;;;12734:119;;12840:3;12833:4;12825:5;;12803:19;;12788:12;;:34;;;;:::i;:::-;:42;;;;:::i;:::-;:49;;;;:::i;:::-;:55;;;;:::i;:::-;12778:6;:65;;12770:83;;;;-1:-1:-1;;;12770:83:0;;15338:2:1;12770:83:0;;;15320:21:1;15377:1;15357:18;;;15350:29;-1:-1:-1;;;15395:18:1;;;15388:35;15440:18;;12770:83:0;15136:328:1;12770:83:0;-1:-1:-1;;;;;12880:10:0;;;;;;:2;:10;;;;;;;;;:27;;-1:-1:-1;;;;;;12894:13:0;;;;;;:2;:13;;;;;;;;12880:27;12877:477;;;12957:3;12942:12;;:18;;;;:::i;:::-;12932:6;:28;;12924:48;;;;-1:-1:-1;;;12924:48:0;;15671:2:1;12924:48:0;;;15653:21:1;15710:1;15690:18;;;15683:29;-1:-1:-1;;;15728:18:1;;;15721:37;15775:18;;12924:48:0;15469:330:1;12924:48:0;12987:13;13017:3;13003:11;:6;13012:2;13003:11;:::i;:::-;:17;;;;:::i;:::-;12987:33;;13038:17;13045:9;13038:6;:17::i;:::-;13035:196;;;13057:41;13073:6;13081:9;13092:5;13057:15;:41::i;:::-;;13035:196;;;13121:14;13128:6;13121;:14::i;:::-;13118:113;;;13137:38;13153:6;13161;13169:5;13137:15;:38::i;13118:113::-;13195:36;13211:6;13219:4;13225:5;13195:15;:36::i;:::-;;13118:113;13267:3;13253:11;:6;13262:2;13253:11;:::i;:::-;:17;;;;:::i;:::-;13246:24;;;;;12877:477;13303:14;13310:6;13303;:14::i;:::-;13302:15;:37;;;;;13322:17;13329:9;13322:6;:17::i;:::-;13321:18;13302:37;13299:55;;;-1:-1:-1;13348:6:0;13341:13;;13299:55;13370:3;;13377:1;13370:8;13367:26;;-1:-1:-1;13387:6:0;13380:13;;13367:26;13404:17;13424;13431:9;13424:6;:17::i;:::-;:126;;13547:3;13534:9;;13524:7;;:19;;;;:::i;:::-;13514:30;;:6;:30;:::i;:::-;:36;;;;:::i;:::-;13424:126;;;13508:3;13494:11;;13477:14;;13464:9;;13454:7;;:19;;;;:::i;:::-;13444:30;;:6;:30;:::i;:::-;:47;;;;:::i;:::-;:61;;;;:::i;:::-;:67;;;;:::i;:::-;13404:146;-1:-1:-1;13564:13:0;;13561:67;;13579:49;13595:6;13611:4;13618:9;13579:15;:49::i;:::-;;13561:67;13652:3;;:7;13649:241;;13676:14;13708:3;13702;;13693:6;:12;;;;:::i;:::-;:18;;;;:::i;:::-;13676:35;;13729:17;13736:9;13729:6;:17::i;:::-;13726:152;;;13748:73;13764:6;13772:9;13809:11;;13792:14;;13783:6;:23;;;;:::i;:::-;:37;;;;:::i;:::-;13748:15;:73::i;:::-;;13726:152;;;13841:37;13857:6;13865:4;13871:6;13841:15;:37::i;:::-;;13726:152;13661:229;13649:241;13906:14;13913:6;13906;:14::i;:::-;13902:99;;13937:16;:14;:16::i;:::-;13977:4;-1:-1:-1;;;;;13968:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13902:99;14018:17;14025:9;14018:6;:17::i;:::-;:112;;14126:3;14120;;14111:6;:12;;;;:::i;:::-;:18;;;;:::i;:::-;14101:29;;:6;:29;:::i;:::-;14018:112;;;14094:3;14080:11;;14063:14;;14057:3;;14048:6;:12;;;;:::i;:::-;:29;;;;:::i;:::-;:43;;;;:::i;:::-;:49;;;;:::i;:::-;14038:60;;:6;:60;:::i;:::-;14011:119;12427:1711;-1:-1:-1;;;;;12427:1711:0:o;15878:817::-;-1:-1:-1;;;;;15940:19:0;;15969:1;15940:19;;;:6;:19;;;;;:26;:30;15937:59;;15972:24;15984:11;15972;:24::i;:::-;-1:-1:-1;;;;;16010:19:0;;;;;;:6;:19;;;;;:26;:31;:61;;;;-1:-1:-1;;;;;;16045:22:0;;16070:1;16045:22;;;:9;:22;;;;;;:26;;16010:61;16007:93;;;20393:12;:19;;-1:-1:-1;;;;;20359:31:0;;;;;;:18;:31;;;;;:53;;;20423:30;;;;;;;;;;;;;-1:-1:-1;;;;;;20423:30:0;;;;;;16073:27;-1:-1:-1;;;;;16124:19:0;;16153:1;16124:19;;;:6;:19;;;;;:26;:30;;;;:61;;-1:-1:-1;;;;;;16158:22:0;;;;;;:9;:22;;;;;;:27;16124:61;16121:257;;;-1:-1:-1;;;;;16229:19:0;;;;;;:6;:19;;;;;:26;16215:11;;:40;;16229:26;16215:40;:::i;:::-;16201:11;:54;-1:-1:-1;;;;;16270:19:0;;16299:1;16270:19;;;:6;:19;;;;;:30;16315;16277:11;16315:17;:30::i;16121:257::-;-1:-1:-1;;;;;16393:22:0;;16418:1;16393:22;;;:9;:22;;;;;;:26;16390:298;;-1:-1:-1;;;;;16492:22:0;;;;;;:9;:22;;;;;;;;;16463:6;:19;;;;;;:26;16449:11;;:40;;16463:26;16449:40;:::i;:::-;:65;;;;:::i;:::-;16435:11;:79;-1:-1:-1;;;;;16558:22:0;;;;;;:9;:22;;;;;;;;;16529:6;:19;;;;;;:51;;;16631:45;;:17;:45::i;:::-;-1:-1:-1;;;;;16595:19:0;;;;;;:6;:19;;;;;:33;;:81;15878:817;:::o;14608:1262::-;14684:6;;14675:4;14657:24;;;;:9;:24;;;;;;:33;;:61;;;14704:9;;14694:7;;:19;;;;:::i;:::-;:24;14657:61;14654:73;;;14608:1262::o;14654:73::-;14764:21;14737:24;:48;14832:16;;;14846:1;14832:16;;;;;;;;14798:31;;14832:16;;;;;;;;;;-1:-1:-1;14832:16:0;14798:50;;14887:4;14859:14;14874:1;14859:17;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;14859:33:0;;;-1:-1:-1;;;;;14859:33:0;;;;;14923:4;14903:14;14918:1;14903:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14903:24:0;;;:17;;;;;;;;;;:24;;;;14951:6;;15042:4;14951:6;15024:24;;;:9;:24;;;;;;;;14940:222;;-1:-1:-1;;;14940:222:0;;14951:6;;;;;14940:69;;:222;;15024:24;;14951:6;;15079:14;;15042:4;15136:15;;14940:222;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15267:24:0;;15207:21;;-1:-1:-1;15242:49:0;;;-1:-1:-1;15239:61:0;;15293:7;;14608:1262::o;15239:61::-;15310:14;15351:24;;15327:21;:48;;;;:::i;:::-;15389:11;;15310:65;;-1:-1:-1;15389:15:0;15386:477;;15445:1;15433:9;;15423:7;;:19;;;;:::i;:::-;:23;15420:431;;;15466:22;15523:9;;15513:7;;:19;;;;:::i;:::-;15500:9;;15491:18;;:6;:18;:::i;:::-;:42;;;;:::i;:::-;15578:15;;15570:56;;15466:67;;-1:-1:-1;15553:12:0;;-1:-1:-1;;;;;15578:15:0;;;;15466:67;;15553:12;15570:56;15553:12;15570:56;15466:67;15578:15;15570:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15552:74;;;15664:7;:108;;15761:11;;15752:6;15734:15;;:24;;;;:::i;:::-;:38;;;;:::i;:::-;15664:108;;;15720:11;;15693:23;15702:14;15693:6;:23;:::i;:::-;15674:15;;:43;;;;:::i;:::-;:57;;;;:::i;:::-;15645:15;;:127;;;;;;;:::i;:::-;;;;-1:-1:-1;15420:431:0;;-1:-1:-1;;;15420:431:0;;15840:11;;15831:6;15813:15;;:24;;;;:::i;:::-;:38;;;;:::i;:::-;15794:15;;:57;;;;;;;:::i;:::-;;;;-1:-1:-1;;14643:1227:0;;;14608:1262::o;20469:288::-;20585:12;20598:19;;:21;;20618:1;;20598:21;:::i;:::-;20585:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;20550:31:0;;;;;:18;:31;;;;;;;;20537:12;:45;;20585:35;;;;;20537:12;:45;;;;;;:::i;:::-;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;20537:83:0;-1:-1:-1;;;;;20537:83:0;;;;;;20689:31;;;;;:18;:31;;;;;;;;20650:12;20663:19;;20689:31;;:18;20537:45;20663:21;;-1:-1:-1;;20663:21:0;:::i;:::-;20650:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;20650:35:0;20631:55;;;;;;;;;;;;:89;20731:12;:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;20731:18:0;;;;;-1:-1:-1;;;;;;20731:18:0;;;;;;-1:-1:-1;20469:288:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:173::-;843:20;;-1:-1:-1;;;;;892:31:1;;882:42;;872:70;;938:1;935;928:12;872:70;775:173;;;:::o;953:254::-;1021:6;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1121:29;1140:9;1121:29;:::i;:::-;1111:39;1197:2;1182:18;;;;1169:32;;-1:-1:-1;;;953:254:1:o;1586:186::-;1645:6;1698:2;1686:9;1677:7;1673:23;1669:32;1666:52;;;1714:1;1711;1704:12;1666:52;1737:29;1756:9;1737:29;:::i;1777:328::-;1854:6;1862;1870;1923:2;1911:9;1902:7;1898:23;1894:32;1891:52;;;1939:1;1936;1929:12;1891:52;1962:29;1981:9;1962:29;:::i;:::-;1952:39;;2010:38;2044:2;2033:9;2029:18;2010:38;:::i;:::-;2000:48;;2095:2;2084:9;2080:18;2067:32;2057:42;;1777:328;;;;;:::o;2110:118::-;2196:5;2189:13;2182:21;2175:5;2172:32;2162:60;;2218:1;2215;2208:12;2233:315;2298:6;2306;2359:2;2347:9;2338:7;2334:23;2330:32;2327:52;;;2375:1;2372;2365:12;2327:52;2398:29;2417:9;2398:29;:::i;:::-;2388:39;;2477:2;2466:9;2462:18;2449:32;2490:28;2512:5;2490:28;:::i;:::-;2537:5;2527:15;;;2233:315;;;;;:::o;2742:127::-;2803:10;2798:3;2794:20;2791:1;2784:31;2834:4;2831:1;2824:15;2858:4;2855:1;2848:15;2874:719;2917:5;2970:3;2963:4;2955:6;2951:17;2947:27;2937:55;;2988:1;2985;2978:12;2937:55;3024:6;3011:20;3050:18;3087:2;3083;3080:10;3077:36;;;3093:18;;:::i;:::-;3168:2;3162:9;3136:2;3222:13;;-1:-1:-1;;3218:22:1;;;3242:2;3214:31;3210:40;3198:53;;;3266:18;;;3286:22;;;3263:46;3260:72;;;3312:18;;:::i;:::-;3352:10;3348:2;3341:22;3387:2;3379:6;3372:18;3433:3;3426:4;3421:2;3413:6;3409:15;3405:26;3402:35;3399:55;;;3450:1;3447;3440:12;3399:55;3514:2;3507:4;3499:6;3495:17;3488:4;3480:6;3476:17;3463:54;3561:1;3554:4;3549:2;3541:6;3537:15;3533:26;3526:37;3581:6;3572:15;;;;;;2874:719;;;;:::o;3598:543::-;3686:6;3694;3747:2;3735:9;3726:7;3722:23;3718:32;3715:52;;;3763:1;3760;3753:12;3715:52;3803:9;3790:23;3832:18;3873:2;3865:6;3862:14;3859:34;;;3889:1;3886;3879:12;3859:34;3912:50;3954:7;3945:6;3934:9;3930:22;3912:50;:::i;:::-;3902:60;;4015:2;4004:9;4000:18;3987:32;3971:48;;4044:2;4034:8;4031:16;4028:36;;;4060:1;4057;4050:12;4028:36;;4083:52;4127:7;4116:8;4105:9;4101:24;4083:52;:::i;:::-;4073:62;;;3598:543;;;;;:::o;4146:454::-;4241:6;4249;4257;4265;4273;4326:3;4314:9;4305:7;4301:23;4297:33;4294:53;;;4343:1;4340;4333:12;4294:53;-1:-1:-1;;4366:23:1;;;4436:2;4421:18;;4408:32;;-1:-1:-1;4487:2:1;4472:18;;4459:32;;4538:2;4523:18;;4510:32;;-1:-1:-1;4589:3:1;4574:19;4561:33;;-1:-1:-1;4146:454:1;-1:-1:-1;4146:454:1:o;4605:180::-;4664:6;4717:2;4705:9;4696:7;4692:23;4688:32;4685:52;;;4733:1;4730;4723:12;4685:52;-1:-1:-1;4756:23:1;;4605:180;-1:-1:-1;4605:180:1:o;5114:260::-;5182:6;5190;5243:2;5231:9;5222:7;5218:23;5214:32;5211:52;;;5259:1;5256;5249:12;5211:52;5282:29;5301:9;5282:29;:::i;:::-;5272:39;;5330:38;5364:2;5353:9;5349:18;5330:38;:::i;:::-;5320:48;;5114:260;;;;;:::o;5379:380::-;5458:1;5454:12;;;;5501;;;5522:61;;5576:4;5568:6;5564:17;5554:27;;5522:61;5629:2;5621:6;5618:14;5598:18;5595:38;5592:161;;5675:10;5670:3;5666:20;5663:1;5656:31;5710:4;5707:1;5700:15;5738:4;5735:1;5728:15;5592:161;;5379:380;;;:::o;5764:351::-;5966:2;5948:21;;;6005:2;5985:18;;;5978:30;6044:29;6039:2;6024:18;;6017:57;6106:2;6091:18;;5764:351::o;6120:127::-;6181:10;6176:3;6172:20;6169:1;6162:31;6212:4;6209:1;6202:15;6236:4;6233:1;6226:15;6252:128;6319:9;;;6340:11;;;6337:37;;;6354:18;;:::i;6736:348::-;6938:2;6920:21;;;6977:2;6957:18;;;6950:30;7016:26;7011:2;6996:18;;6989:54;7075:2;7060:18;;6736:348::o;7368:245::-;7435:6;7488:2;7476:9;7467:7;7463:23;7459:32;7456:52;;;7504:1;7501;7494:12;7456:52;7536:9;7530:16;7555:28;7577:5;7555:28;:::i;7618:125::-;7683:9;;;7704:10;;;7701:36;;;7717:18;;:::i;7874:545::-;7976:2;7971:3;7968:11;7965:448;;;8012:1;8037:5;8033:2;8026:17;8082:4;8078:2;8068:19;8152:2;8140:10;8136:19;8133:1;8129:27;8123:4;8119:38;8188:4;8176:10;8173:20;8170:47;;;-1:-1:-1;8211:4:1;8170:47;8266:2;8261:3;8257:12;8254:1;8250:20;8244:4;8240:31;8230:41;;8321:82;8339:2;8332:5;8329:13;8321:82;;;8384:17;;;8365:1;8354:13;8321:82;;;8325:3;;;7874:545;;;:::o;8595:1352::-;8721:3;8715:10;8748:18;8740:6;8737:30;8734:56;;;8770:18;;:::i;:::-;8799:97;8889:6;8849:38;8881:4;8875:11;8849:38;:::i;:::-;8843:4;8799:97;:::i;:::-;8951:4;;9015:2;9004:14;;9032:1;9027:663;;;;9734:1;9751:6;9748:89;;;-1:-1:-1;9803:19:1;;;9797:26;9748:89;-1:-1:-1;;8552:1:1;8548:11;;;8544:24;8540:29;8530:40;8576:1;8572:11;;;8527:57;9850:81;;8997:944;;9027:663;7821:1;7814:14;;;7858:4;7845:18;;-1:-1:-1;;9063:20:1;;;9181:236;9195:7;9192:1;9189:14;9181:236;;;9284:19;;;9278:26;9263:42;;9376:27;;;;9344:1;9332:14;;;;9211:19;;9181:236;;;9185:3;9445:6;9436:7;9433:19;9430:201;;;9506:19;;;9500:26;-1:-1:-1;;9589:1:1;9585:14;;;9601:3;9581:24;9577:37;9573:42;9558:58;9543:74;;9430:201;-1:-1:-1;;;;;9677:1:1;9661:14;;;9657:22;9644:36;;-1:-1:-1;8595:1352:1:o;10362:168::-;10435:9;;;10466;;10483:15;;;10477:22;;10463:37;10453:71;;10504:18;;:::i;10535:217::-;10575:1;10601;10591:132;;10645:10;10640:3;10636:20;10633:1;10626:31;10680:4;10677:1;10670:15;10708:4;10705:1;10698:15;10591:132;-1:-1:-1;10737:9:1;;10535:217::o;11102:127::-;11163:10;11158:3;11154:20;11151:1;11144:31;11194:4;11191:1;11184:15;11218:4;11215:1;11208:15;11234:135;11273:3;11294:17;;;11291:43;;11314:18;;:::i;:::-;-1:-1:-1;11361:1:1;11350:13;;11234:135::o;13099:461::-;13152:3;13190:5;13184:12;13217:6;13212:3;13205:19;13243:4;13272:2;13267:3;13263:12;13256:19;;13309:2;13302:5;13298:14;13330:1;13340:195;13354:6;13351:1;13348:13;13340:195;;;13419:13;;-1:-1:-1;;;;;13415:39:1;13403:52;;13475:12;;;;13510:15;;;;13451:1;13369:9;13340:195;;;-1:-1:-1;13551:3:1;;13099:461;-1:-1:-1;;;;;13099:461:1:o;13565:510::-;13836:6;13825:9;13818:25;13879:3;13874:2;13863:9;13859:18;13852:31;13799:4;13900:57;13952:3;13941:9;13937:19;13929:6;13900:57;:::i;:::-;-1:-1:-1;;;;;13993:32:1;;;;13988:2;13973:18;;13966:60;-1:-1:-1;14057:2:1;14042:18;14035:34;13892:65;13565:510;-1:-1:-1;;13565:510:1:o;15804:582::-;16103:6;16092:9;16085:25;16146:6;16141:2;16130:9;16126:18;16119:34;16189:3;16184:2;16173:9;16169:18;16162:31;16066:4;16210:57;16262:3;16251:9;16247:19;16239:6;16210:57;:::i;:::-;-1:-1:-1;;;;;16303:32:1;;;;16298:2;16283:18;;16276:60;-1:-1:-1;16367:3:1;16352:19;16345:35;16202:65;15804:582;-1:-1:-1;;;15804:582:1:o;16391:127::-;16452:10;16447:3;16443:20;16440:1;16433:31;16483:4;16480:1;16473:15;16507:4;16504:1;16497:15

Swarm Source

ipfs://2d5baa25d4a2327100d45097782afa03770193d773ead19e77cbb6bb006834b4
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.