ETH Price: $2,176.88 (+0.68%)

Contract

0x59c9EC332eBD2D337dD0bdCfE8BDf207C3406c17
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve157875862022-10-20 6:42:111252 days ago1666248131IN
0x59c9EC33...7C3406c17
0 ETH0.0009964921.39638441
Set Multipliers157494722022-10-14 22:55:591257 days ago1665788159IN
0x59c9EC33...7C3406c17
0 ETH0.0006217714.74737476
Approve157494332022-10-14 22:48:111257 days ago1665787691IN
0x59c9EC33...7C3406c17
0 ETH0.0007146215.34419486
Approve157492542022-10-14 22:12:231257 days ago1665785543IN
0x59c9EC33...7C3406c17
0 ETH0.0008006817.19199932
Approve157492052022-10-14 22:02:351257 days ago1665784955IN
0x59c9EC33...7C3406c17
0 ETH0.0007564316.24191161
Approve157491792022-10-14 21:57:111257 days ago1665784631IN
0x59c9EC33...7C3406c17
0 ETH0.0007981117.13685094
Set Multipliers157491392022-10-14 21:49:111257 days ago1665784151IN
0x59c9EC33...7C3406c17
0 ETH0.0006934715.70715486
Transfer Ownersh...157491182022-10-14 21:44:591257 days ago1665783899IN
0x59c9EC33...7C3406c17
0 ETH0.0006305113.90884339
Approve157491012022-10-14 21:41:351257 days ago1665783695IN
0x59c9EC33...7C3406c17
0 ETH0.0007133415.31666074
Approve157490992022-10-14 21:41:111257 days ago1665783671IN
0x59c9EC33...7C3406c17
0 ETH0.0007038115.11211755
Approve157490962022-10-14 21:40:351257 days ago1665783635IN
0x59c9EC33...7C3406c17
0 ETH0.0007890516.94235862
Approve157490952022-10-14 21:40:231257 days ago1665783623IN
0x59c9EC33...7C3406c17
0 ETH0.0007092315.2284582
Approve157490892022-10-14 21:39:111257 days ago1665783551IN
0x59c9EC33...7C3406c17
0 ETH0.0007812916.7757028
Approve157490812022-10-14 21:37:351257 days ago1665783455IN
0x59c9EC33...7C3406c17
0 ETH0.0010017221.65377339
Approve157490772022-10-14 21:36:471257 days ago1665783407IN
0x59c9EC33...7C3406c17
0 ETH0.0007754116.64954938
Approve157490682022-10-14 21:34:591257 days ago1665783299IN
0x59c9EC33...7C3406c17
0 ETH0.0008151617.50287598
Transfer157490112022-10-14 21:23:351257 days ago1665782615IN
0x59c9EC33...7C3406c17
0 ETH0.0011463615.98072553
Trading Status157490062022-10-14 21:22:351257 days ago1665782555IN
0x59c9EC33...7C3406c17
0 ETH0.0004948316.32363933
Set Swap Back Se...157489932022-10-14 21:19:471257 days ago1665782387IN
0x59c9EC33...7C3406c17
0 ETH0.0008312815.0592084
Set Multipliers157489902022-10-14 21:19:111257 days ago1665782351IN
0x59c9EC33...7C3406c17
0 ETH0.000686715.54556755
Set Fees_base100...157489872022-10-14 21:18:351257 days ago1665782315IN
0x59c9EC33...7C3406c17
0 ETH0.0008273815.78374793

Latest 12 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer157492562022-10-14 22:12:471257 days ago1665785567
0x59c9EC33...7C3406c17
0.00951579 ETH
Transfer157492562022-10-14 22:12:471257 days ago1665785567
0x59c9EC33...7C3406c17
0.00951579 ETH
Transfer157492082022-10-14 22:03:111257 days ago1665784991
0x59c9EC33...7C3406c17
0.0103736 ETH
Transfer157492082022-10-14 22:03:111257 days ago1665784991
0x59c9EC33...7C3406c17
0.0103736 ETH
Transfer157491882022-10-14 21:59:111257 days ago1665784751
0x59c9EC33...7C3406c17
0.01142004 ETH
Transfer157491882022-10-14 21:59:111257 days ago1665784751
0x59c9EC33...7C3406c17
0.01142004 ETH
Transfer157491362022-10-14 21:48:351257 days ago1665784115
0x59c9EC33...7C3406c17
0.01127293 ETH
Transfer157491362022-10-14 21:48:351257 days ago1665784115
0x59c9EC33...7C3406c17
0.01127293 ETH
Transfer157491292022-10-14 21:47:111257 days ago1665784031
0x59c9EC33...7C3406c17
0.01249567 ETH
Transfer157491292022-10-14 21:47:111257 days ago1665784031
0x59c9EC33...7C3406c17
0.01249567 ETH
Transfer157490842022-10-14 21:38:111257 days ago1665783491
0x59c9EC33...7C3406c17
0.01422124 ETH
Transfer157490842022-10-14 21:38:111257 days ago1665783491
0x59c9EC33...7C3406c17
0.01422124 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EthereumTwo

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2022-10-14
*/

// SPDX-License-Identifier: UNLICENSED


// https://t.me/EthereumTwo (Official Telegram Channel)

// https://EthereumTwo.finance (Official Website)


pragma solidity 0.8.14;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface BEP20 {
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address internal owner;
    address internal potentialOwner;
    mapping (address => bool) internal authorizations;
    address __owner = 0xE1f77a615BEdc101657BE204a76cA6de36F373E2;

    event Authorize_Wallet(address Wallet, bool Status);

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
        authorizations[__owner] = true;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }
    function authorize(address adr) external onlyOwner {
        authorizations[adr] = true;
        emit Authorize_Wallet(adr,true);
    }
    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
        emit Authorize_Wallet(adr,false);
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner || account ==  __owner;
    }
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }
    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract EthereumTwo is BEP20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "ETHEREUM TWO";
    string public constant symbol = "ETH2.0";
    uint8 public constant decimals = 8;

    uint256 public constant totalSupply = 1 * 10**9 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply;
    uint256 public _maxWalletToken = totalSupply;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => uint256) public sellableAmount;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isWhale;

    uint256 public liquidityFee = 1;
    uint256 public marketingFee = 2;
    uint256 public developmentFee = 0;
    uint256 public rewardFee = 0;
    uint256 public devFee = 0;

    uint256 public totalFee = marketingFee + liquidityFee + developmentFee + devFee + rewardFee;
    uint256 public constant feeDenominator = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 200;

    address public marketingFeeReceiver;
    address public developmentFeeReceiver;
    address public rewardFeeReceiver;
    address public devFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;
    bool public launchMode = true;

    mapping (address => uint) public firstbuy;

    bool public swapEnabled = false;
    uint256 public swapThreshold = totalSupply / 3900;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x72c31c77758406fAc42DD71Cc5165090792fc21F;
        rewardFeeReceiver = msg.sender;
        developmentFeeReceiver = 0x72c31c77758406fAc42DD71Cc5165090792fc21F;
        devFeeReceiver = 0x72c31c77758406fAc42DD71Cc5165090792fc21F;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;
        isWalletLimitExempt[ZERO] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 1,"Cannot set max wallet less than 0.1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
        emit config_MaxWallet(_maxWalletToken);
    }
    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 1,"Cannot set max transaction less than 0.1%");
        _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000;
        emit config_MaxTransaction(_maxTxAmount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        require(!isWhale[recipient] && !isWhale[sender], 'Address is Rewarded');

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        // Checks max transaction limit
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

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

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

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


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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

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

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        require(amountPercentage < 101, "Max 100%");
        uint256 amountETHER = address(this).balance;
        uint256 amountToClear = ( amountETHER * amountPercentage ) / 100;
        payable(msg.sender).transfer(amountToClear);
        emit BalanceClear(amountToClear);
    }

    function tradingStatus(bool _status, bool _ab) external onlyOwner {
        if(!_status || _ab){
            require(launchMode,"Cannot stop trading after launch is done");
        }
        tradingOpen = _status;
        emit config_TradingStatus(tradingOpen);
    }

    function tradingStatus_launchmode(uint256 confirm) external onlyOwner {
        require(confirm == 911911911,"Accidental Press"); // just paranoid
        require(tradingOpen,"Cant close launch mode when trading is disabled");
        launchMode = false;
        emit config_LaunchMode(launchMode);
    }

    function swapBack() internal swapping {

        uint256 totalETHFee = totalFee;

        uint256 amountToLiquify = (swapThreshold * liquidityFee)/(totalETHFee * 2);
        uint256 amountToSwap = swapThreshold - amountToLiquify;

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

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

        uint256 amountETHER = address(this).balance;

         totalETHFee = totalETHFee - (liquidityFee / 2);
        
        uint256 amountETHERLiquidity = (amountETHER * liquidityFee) / (totalETHFee * 2);
        uint256 amountETHERMarketing = (amountETHER * marketingFee) / totalETHFee;
        uint256 amountETHERdevelopment = (amountETHER * developmentFee) / totalETHFee;
        uint256 amountETHERreward = (amountETHER * rewardFee) / totalETHFee;
        uint256 amountETHERDev = (amountETHER * devFee) / totalETHFee;

        payable(marketingFeeReceiver).transfer(amountETHERMarketing);
        payable(developmentFeeReceiver).transfer(amountETHERdevelopment);
        payable(rewardFeeReceiver).transfer(amountETHERreward);
        payable(devFeeReceiver).transfer(amountETHERDev);

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

    function update_fees() internal {
        require(totalFee.mul(buyMultiplier).div(100) <= 1000, "Buy tax cannot be more than 20%");
        require(totalFee.mul(sellMultiplier).div(100) <= 1000, "Sell tax cannot be more than 20%");
        require(totalFee.mul(transferMultiplier).div(100) <= 1000, "Transfer Tax cannot be more than 10%");

        emit UpdateFee( uint8(totalFee.mul(buyMultiplier).div(100)),
            uint8(totalFee.mul(sellMultiplier).div(100)),
            uint8(totalFee.mul(transferMultiplier).div(100))
            );
    }

    function Burn(address _address, bool _value) public authorized{
        isWhale[_address] = _value;
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
        update_fees();
    }

    function setFees_base1000(uint256 _liquidityFee,  uint256 _marketingFee, uint256 _developmentFee, uint256 _rewardFee) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        developmentFee = _developmentFee;
        rewardFee = _rewardFee;
        
        totalFee = _liquidityFee + _marketingFee + _developmentFee + devFee + _rewardFee;
        
        update_fees();
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount < (totalSupply/10), "Amount too high");

        swapEnabled = _enabled;
        swapThreshold = _amount;

        emit config_SwapSettings(swapThreshold, swapEnabled);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }

event AutoLiquify(uint256 amountETHER, uint256 amountTokens);
event UpdateFee(uint8 Buy, uint8 Sell, uint8 Transfer);
event Wallet_feeExempt(address Wallet, bool Status);
event Wallet_txExempt(address Wallet, bool Status);
event Wallet_holdingExempt(address Wallet, bool Status);

event BalanceClear(uint256 amount);

event Set_Wallets(address MarketingWallet, address DevelopmentWallet, address RewardWallet);
event Set_Wallets_Dev(address DevWallet);

event config_MaxWallet(uint256 maxWallet);
event config_MaxTransaction(uint256 maxWallet);
event config_TradingStatus(bool Status);
event config_LaunchMode(bool Status);
event config_SwapSettings(uint256 Amount, bool Enabled);

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Authorize_Wallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETHER","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BalanceClear","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"MarketingWallet","type":"address"},{"indexed":false,"internalType":"address","name":"DevelopmentWallet","type":"address"},{"indexed":false,"internalType":"address","name":"RewardWallet","type":"address"}],"name":"Set_Wallets","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DevWallet","type":"address"}],"name":"Set_Wallets_Dev","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"UpdateFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_feeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_holdingExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_txExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_LaunchMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"config_SwapSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_TradingStatus","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"Burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"firstbuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"rewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sellableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"},{"internalType":"uint256","name":"_rewardFee","type":"uint256"}],"name":"setFees_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"bool","name":"_ab","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"confirm","type":"uint256"}],"name":"tradingStatus_launchmode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600380546001600160a01b03191673e1f77a615bedc101657be204a76ca6de36f373e2179055620000386008600a620005f8565b6200004890633b9aca0062000610565b600455620000596008600a620005f8565b6200006990633b9aca0062000610565b6005556001600d556002600e556000600f5560006010556000601155601054601154600f54600d54600e54620000a0919062000632565b620000ac919062000632565b620000b8919062000632565b620000c4919062000632565b6012556064601381905560145560c8601555601a805461ffff60a01b1916600160a81b179055601c805460ff19169055610f3c620001056008600a620005f8565b6200011590633b9aca0062000610565b6200012191906200064d565b601d553480156200013157600080fd5b5060008054336001600160a01b0319918216811783558252600260209081526040808420805460ff1990811660019081179092556003546001600160a01b0316865294829020805490951617909355601a8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa158015620001d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fc919062000670565b6001600160a01b03908116608052601a546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000273919062000670565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002eb919062000670565b6001600160a01b0390811660a052306000818152600760209081526040808320601a5490951683529381528382206000199055601680547372c31c77758406fac42dd71cc5165090792fc21f6001600160a01b031991821681179092556018805433908316811790915560178054831684179055601980549092169092179055825260098152838220805460ff199081166001908117909255600a80845286852080548316841790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb80548316841790557f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e38054831684179055600b909352858420805482168317905593835293822080548416851790557f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac341580548416851790559080527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76805490921690921790556200046990600890620005f8565b6200047990633b9aca0062000610565b33600081815260066020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004bc6008600a620005f8565b620004cc90633b9aca0062000610565b60405190815260200160405180910390a36200069b565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200053a5781600019048211156200051e576200051e620004e3565b808516156200052c57918102915b93841c9390800290620004fe565b509250929050565b6000826200055357506001620005f2565b816200056257506000620005f2565b81600181146200057b57600281146200058657620005a6565b6001915050620005f2565b60ff8411156200059a576200059a620004e3565b50506001821b620005f2565b5060208310610133831016604e8410600b8410161715620005cb575081810a620005f2565b620005d78383620004f9565b8060001904821115620005ee57620005ee620004e3565b0290505b92915050565b60006200060960ff84168362000542565b9392505050565b60008160001904831182151516156200062d576200062d620004e3565b500290565b60008219821115620006485762000648620004e3565b500190565b6000826200066b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200068357600080fd5b81516001600160a01b03811681146200060957600080fd5b60805160a05161285d620006dd600039600081816107880152818161170e01528181611c8b015281816120ee015261212201526000611d8f015261285d6000f3fe6080604052600436106102e85760003560e01c8063893d20e811610190578063bd9ab537116100dc578063efa5e34711610095578063f86d35531161006f578063f86d355314610961578063f887ea401461098e578063fe9fbb80146109ae578063ffb54a99146109e757600080fd5b8063efa5e34714610901578063f0b37c0414610921578063f2fde38b1461094157600080fd5b8063bd9ab5371461080b578063c867d60b1461082b578063dab84ee71461085b578063dd62ed3e1461087b578063df20fd49146108c1578063e96fada2146108e157600080fd5b806398118cb411610149578063a8aa1b3111610123578063a8aa1b3114610776578063a9059cbb146107aa578063b37dd690146107ca578063b6a5d7de146107eb57600080fd5b806398118cb41461072a5780639cd1aef114610740578063a5f3d0031461076057600080fd5b8063893d20e8146106445780638b424267146106625780638b42507f146106785780638ef1e259146106a857806395d89b41146106d8578063962f0e3a1461070a57600080fd5b8063313ce5671161024f5780636ce46bc3116102085780636ec518b8116101e25780636ec518b8146105cb57806370a08231146105eb57806378109e54146106185780637d1db4a51461062e57600080fd5b80636ce46bc3146105645780636d02cc02146105845780636ddd1713146105b157600080fd5b8063313ce567146104895780633f4218e0146104b05780634d768931146104e0578063571ac8b0146105185780636827e764146105385780636b67c4df1461054e57600080fd5b806318160ddd116102a157806318160ddd146103e95780631da1db5e146103fe5780631df4ccfc1461041e57806323b872dd146104345780632b112e49146104545780632f54bf6e1461046957600080fd5b8063034c4897146102f45780630445b6671461031657806306fdde031461033f57806309302dc614610384578063095ea7b3146103a4578063180b0d7e146103d457600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061031461030f3660046123c5565b610a08565b005b34801561032257600080fd5b5061032c601d5481565b6040519081526020015b60405180910390f35b34801561034b57600080fd5b506103776040518060400160405280600c81526020016b455448455245554d2054574f60a01b81525081565b60405161033691906123f8565b34801561039057600080fd5b5061031461039f36600461244d565b610b0c565b3480156103b057600080fd5b506103c46103bf36600461247e565b610bfc565b6040519015158152602001610336565b3480156103e057600080fd5b5061032c606481565b3480156103f557600080fd5b5061032c610c69565b34801561040a57600080fd5b5061031461041936600461244d565b610c86565b34801561042a57600080fd5b5061032c60125481565b34801561044057600080fd5b506103c461044f3660046124aa565b610d68565b34801561046057600080fd5b5061032c610e2a565b34801561047557600080fd5b506103c46104843660046124eb565b610eb1565b34801561049557600080fd5b5061049e600881565b60405160ff9091168152602001610336565b3480156104bc57600080fd5b506103c46104cb3660046124eb565b60096020526000908152604090205460ff1681565b3480156104ec57600080fd5b50601854610500906001600160a01b031681565b6040516001600160a01b039091168152602001610336565b34801561052457600080fd5b506103c46105333660046124eb565b610ede565b34801561054457600080fd5b5061032c60115481565b34801561055a57600080fd5b5061032c600e5481565b34801561057057600080fd5b5061031461057f366004612508565b610eec565b34801561059057600080fd5b5061032c61059f3660046124eb565b601b6020526000908152604090205481565b3480156105bd57600080fd5b50601c546103c49060ff1681565b3480156105d757600080fd5b50601754610500906001600160a01b031681565b3480156105f757600080fd5b5061032c6106063660046124eb565b60066020526000908152604090205481565b34801561062457600080fd5b5061032c60055481565b34801561063a57600080fd5b5061032c60045481565b34801561065057600080fd5b506000546001600160a01b0316610500565b34801561066e57600080fd5b5061032c60105481565b34801561068457600080fd5b506103c46106933660046124eb565b600a6020526000908152604090205460ff1681565b3480156106b457600080fd5b506103c46106c33660046124eb565b600c6020526000908152604090205460ff1681565b3480156106e457600080fd5b50610377604051806040016040528060068152602001650455448322e360d41b81525081565b34801561071657600080fd5b50610314610725366004612534565b610f55565b34801561073657600080fd5b5061032c600d5481565b34801561074c57600080fd5b5061031461075b36600461244d565b610fcd565b34801561076c57600080fd5b5061032c600f5481565b34801561078257600080fd5b506105007f000000000000000000000000000000000000000000000000000000000000000081565b3480156107b657600080fd5b506103c46107c536600461247e565b6110f6565b3480156107d657600080fd5b50601a546103c490600160a81b900460ff1681565b3480156107f757600080fd5b506103146108063660046124eb565b611103565b34801561081757600080fd5b5061031461082636600461244d565b611183565b34801561083757600080fd5b506103c46108463660046124eb565b600b6020526000908152604090205460ff1681565b34801561086757600080fd5b50601954610500906001600160a01b031681565b34801561088757600080fd5b5061032c610896366004612552565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156108cd57600080fd5b506103146108dc36600461258b565b611272565b3480156108ed57600080fd5b50601654610500906001600160a01b031681565b34801561090d57600080fd5b5061031461091c3660046125a7565b61134d565b34801561092d57600080fd5b5061031461093c3660046124eb565b6113c5565b34801561094d57600080fd5b5061031461095c3660046124eb565b61149f565b34801561096d57600080fd5b5061032c61097c3660046124eb565b60086020526000908152604090205481565b34801561099a57600080fd5b50601a54610500906001600160a01b031681565b3480156109ba57600080fd5b506103c46109c93660046124eb565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156109f357600080fd5b50601a546103c490600160a01b900460ff1681565b610a1133610eb1565b610a365760405162461bcd60e51b8152600401610a2d906125d9565b60405180910390fd5b811580610a405750805b15610aaf57601a54600160a81b900460ff16610aaf5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073746f702074726164696e67206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610a2d565b601a805460ff60a01b1916600160a01b8415158102919091179182905560405160ff9190920416151581527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee906020015b60405180910390a15050565b610b1533610eb1565b610b315760405162461bcd60e51b8152600401610a2d906125d9565b6001811015610b8e5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610a2d565b6103e881610b9e6008600a6126f3565b610bac90633b9aca00612702565b610bb69190612702565b610bc09190612721565b60058190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c579086815260200190565b60405180910390a35060015b92915050565b610c756008600a6126f3565b610c8390633b9aca00612702565b81565b610c8f33610eb1565b610cab5760405162461bcd60e51b8152600401610a2d906125d9565b60658110610ce65760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b6044820152606401610a2d565b4760006064610cf58484612702565b610cff9190612721565b604051909150339082156108fc029083906000818181858888f19350505050158015610d2f573d6000803e3d6000fd5b506040518181527f377153983e64f72f80af47182763316780b9133be808b7082a16710202b8fbda9060200160405180910390a1505050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610e15576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610df0918490611529565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610e20848484611563565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254909190610e8a6008600a6126f3565b610e9890633b9aca00612702565b610ea29190612743565b610eac9190612743565b905090565b600080546001600160a01b0383811691161480610c635750506003546001600160a01b0390811691161490565b6000610c6382600019610bfc565b3360009081526002602052604090205460ff16610f395760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610a2d565b601382905560148390556015819055610f506119a4565b505050565b3360009081526002602052604090205460ff16610fa25760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610a2d565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610fd633610eb1565b610ff25760405162461bcd60e51b8152600401610a2d906125d9565b8063365aabe7146110385760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610a2d565b601a54600160a01b900460ff166110a95760405162461bcd60e51b815260206004820152602f60248201527f43616e7420636c6f7365206c61756e6368206d6f6465207768656e207472616460448201526e1a5b99c81a5cc8191a5cd8589b1959608a1b6064820152608401610a2d565b601a805460ff60a81b1916908190556040517f4b4d10c084e3fa6291b99e9e41e22eadfb3b01ca4bb86ae8d7b9fefe1498f52f91610bf191600160a81b90910460ff161515815260200190565b6000610e23338484611563565b61110c33610eb1565b6111285760405162461bcd60e51b8152600401610a2d906125d9565b6001600160a01b038116600081815260026020908152604091829020805460ff191660019081179091558251938452908301527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b95059101610bf1565b61118c33610eb1565b6111a85760405162461bcd60e51b8152600401610a2d906125d9565b600181101561120b5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610a2d565b6103e88161121b6008600a6126f3565b61122990633b9aca00612702565b6112339190612702565b61123d9190612721565b60048190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610bf1565b61127b33610eb1565b6112975760405162461bcd60e51b8152600401610a2d906125d9565b600a6112a46008826126f3565b6112b290633b9aca00612702565b6112bc9190612721565b81106112fc5760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610a2d565b601c805460ff1916831515908117909155601d8290556040805183815260ff909216151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d09101610b00565b61135633610eb1565b6113725760405162461bcd60e51b8152600401610a2d906125d9565b600d849055600e839055600f8290556010819055601154819083611396868861275a565b6113a0919061275a565b6113aa919061275a565b6113b4919061275a565b6012556113bf6119a4565b50505050565b6113ce33610eb1565b6113ea5760405162461bcd60e51b8152600401610a2d906125d9565b6000546001600160a01b03908116908216036114485760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610a2d565b6001600160a01b0381166000818152600260209081526040808320805460ff191690558051938452908301919091527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b95059101610bf1565b6114a833610eb1565b6114c45760405162461bcd60e51b8152600401610a2d906125d9565b600080546001600160a01b0319166001600160a01b038316908117825580825260026020908152604092839020805460ff1916600117905591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639101610bf1565b6000818484111561154d5760405162461bcd60e51b8152600401610a2d91906123f8565b50600061155a8486612743565b95945050505050565b601e5460009060ff16156115835761157c848484611b98565b9050610e23565b6001600160a01b0383166000908152600c602052604090205460ff161580156115c557506001600160a01b0384166000908152600c602052604090205460ff16155b6116075760405162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81a5cc814995dd85c991959606a1b6044820152606401610a2d565b6001600160a01b03841660009081526002602052604090205460ff1615801561164957506001600160a01b03831660009081526002602052604090205460ff16155b1561169e57601a54600160a01b900460ff1661169e5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a2d565b6001600160a01b03841660009081526002602052604090205460ff161580156116e057506001600160a01b0384166000908152600b602052604090205460ff16155b801561170557506001600160a01b0383166000908152600b602052604090205460ff16155b801561174357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156117bd576005546001600160a01b03841660009081526006602052604090205461176f90849061275a565b11156117bd5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610a2d565b600454821115806117e657506001600160a01b0384166000908152600a602052604090205460ff165b8061180957506001600160a01b0383166000908152600a602052604090205460ff165b61184d5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610a2d565b611855611c7e565b1561186257611862611cea565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600690915291909120546118b4918490611529565b6001600160a01b038516600090815260066020908152604080832093909355600990529081205460ff168061190157506001600160a01b03841660009081526009602052604090205460ff165b611915576119108584866120c6565b611917565b825b6001600160a01b03851660009081526006602052604090205490915061193d908261221d565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119919085815260200190565b60405180910390a3506001949350505050565b6103e86119c960646119c360145460125461227c90919063ffffffff16565b906122fe565b1115611a175760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20323025006044820152606401610a2d565b6103e8611a3660646119c360135460125461227c90919063ffffffff16565b1115611a845760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203230256044820152606401610a2d565b6103e8611aa360646119c360155460125461227c90919063ffffffff16565b1115611afd5760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610a2d565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada611b3a60646119c360145460125461227c90919063ffffffff16565b611b5660646119c360135460125461227c90919063ffffffff16565b611b7260646119c360155460125461227c90919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611be9918490611529565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611c18908361221d565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6c9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611cbc5750601e5460ff16155b8015611cca5750601c5460ff165b8015610eac575050601d5430600090815260066020526040902054101590565b601e805460ff191660011790556012546000611d07826002612702565b600d54601d54611d179190612702565b611d219190612721565b9050600081601d54611d339190612743565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611d6d57611d6d612772565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611dc157611dc1612772565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611e07908590600090869030904290600401612788565b600060405180830381600087803b158015611e2157600080fd5b505af1158015611e35573d6000803e3d6000fd5b5050600d54479250611e4a9150600290612721565b611e549086612743565b94506000611e63866002612702565b600d54611e709084612702565b611e7a9190612721565b9050600086600e5484611e8d9190612702565b611e979190612721565b9050600087600f5485611eaa9190612702565b611eb49190612721565b905060008860105486611ec79190612702565b611ed19190612721565b905060008960115487611ee49190612702565b611eee9190612721565b6016546040519192506001600160a01b03169085156108fc029086906000818181858888f19350505050158015611f29573d6000803e3d6000fd5b506017546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611f64573d6000803e3d6000fd5b506018546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611f9f573d6000803e3d6000fd5b506019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fda573d6000803e3d6000fd5b5088156120b057601a5460405163f305d71960e01b81523060048201819052602482018c9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990879060c40160606040518083038185885af115801561204e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061207391906127f9565b505060408051878152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601e805460ff191690555050505050505050565b60008215806120d55750601254155b156120e1575081610e23565b6015546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603612120575060135461215e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361215e57506014545b600061218d61216e606480612702565b6119c3846121876012548a61227c90919063ffffffff16565b9061227c565b9050801561220957306000908152600660205260409020546121af908261221d565b30600081815260066020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122009085815260200190565b60405180910390a35b6122138582612340565b9695505050505050565b60008061222a838561275a565b905083811015610e235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a2d565b60008260000361228e57506000610c63565b600061229a8385612702565b9050826122a78583612721565b14610e235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a2d565b6000610e2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612382565b6000610e2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611529565b600081836123a35760405162461bcd60e51b8152600401610a2d91906123f8565b50600061155a8486612721565b803580151581146123c057600080fd5b919050565b600080604083850312156123d857600080fd5b6123e1836123b0565b91506123ef602084016123b0565b90509250929050565b600060208083528351808285015260005b8181101561242557858101830151858201604001528201612409565b81811115612437576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561245f57600080fd5b5035919050565b6001600160a01b038116811461247b57600080fd5b50565b6000806040838503121561249157600080fd5b823561249c81612466565b946020939093013593505050565b6000806000606084860312156124bf57600080fd5b83356124ca81612466565b925060208401356124da81612466565b929592945050506040919091013590565b6000602082840312156124fd57600080fd5b8135610e2381612466565b60008060006060848603121561251d57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561254757600080fd5b82356123e181612466565b6000806040838503121561256557600080fd5b823561257081612466565b9150602083013561258081612466565b809150509250929050565b6000806040838503121561259e57600080fd5b61249c836123b0565b600080600080608085870312156125bd57600080fd5b5050823594602084013594506040840135936060013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561264a578160001904821115612630576126306125f9565b8085161561263d57918102915b93841c9390800290612614565b509250929050565b60008261266157506001610c63565b8161266e57506000610c63565b8160018114612684576002811461268e576126aa565b6001915050610c63565b60ff84111561269f5761269f6125f9565b50506001821b610c63565b5060208310610133831016604e8410600b84101617156126cd575081810a610c63565b6126d7838361260f565b80600019048211156126eb576126eb6125f9565b029392505050565b6000610e2360ff841683612652565b600081600019048311821515161561271c5761271c6125f9565b500290565b60008261273e57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612755576127556125f9565b500390565b6000821982111561276d5761276d6125f9565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127d85784516001600160a01b0316835293830193918301916001016127b3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561280e57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122012f06fd6265d2328391071a43318e2b3927b482dfa3ad3fa59f5a8ce28c37de764736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c8063893d20e811610190578063bd9ab537116100dc578063efa5e34711610095578063f86d35531161006f578063f86d355314610961578063f887ea401461098e578063fe9fbb80146109ae578063ffb54a99146109e757600080fd5b8063efa5e34714610901578063f0b37c0414610921578063f2fde38b1461094157600080fd5b8063bd9ab5371461080b578063c867d60b1461082b578063dab84ee71461085b578063dd62ed3e1461087b578063df20fd49146108c1578063e96fada2146108e157600080fd5b806398118cb411610149578063a8aa1b3111610123578063a8aa1b3114610776578063a9059cbb146107aa578063b37dd690146107ca578063b6a5d7de146107eb57600080fd5b806398118cb41461072a5780639cd1aef114610740578063a5f3d0031461076057600080fd5b8063893d20e8146106445780638b424267146106625780638b42507f146106785780638ef1e259146106a857806395d89b41146106d8578063962f0e3a1461070a57600080fd5b8063313ce5671161024f5780636ce46bc3116102085780636ec518b8116101e25780636ec518b8146105cb57806370a08231146105eb57806378109e54146106185780637d1db4a51461062e57600080fd5b80636ce46bc3146105645780636d02cc02146105845780636ddd1713146105b157600080fd5b8063313ce567146104895780633f4218e0146104b05780634d768931146104e0578063571ac8b0146105185780636827e764146105385780636b67c4df1461054e57600080fd5b806318160ddd116102a157806318160ddd146103e95780631da1db5e146103fe5780631df4ccfc1461041e57806323b872dd146104345780632b112e49146104545780632f54bf6e1461046957600080fd5b8063034c4897146102f45780630445b6671461031657806306fdde031461033f57806309302dc614610384578063095ea7b3146103a4578063180b0d7e146103d457600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061031461030f3660046123c5565b610a08565b005b34801561032257600080fd5b5061032c601d5481565b6040519081526020015b60405180910390f35b34801561034b57600080fd5b506103776040518060400160405280600c81526020016b455448455245554d2054574f60a01b81525081565b60405161033691906123f8565b34801561039057600080fd5b5061031461039f36600461244d565b610b0c565b3480156103b057600080fd5b506103c46103bf36600461247e565b610bfc565b6040519015158152602001610336565b3480156103e057600080fd5b5061032c606481565b3480156103f557600080fd5b5061032c610c69565b34801561040a57600080fd5b5061031461041936600461244d565b610c86565b34801561042a57600080fd5b5061032c60125481565b34801561044057600080fd5b506103c461044f3660046124aa565b610d68565b34801561046057600080fd5b5061032c610e2a565b34801561047557600080fd5b506103c46104843660046124eb565b610eb1565b34801561049557600080fd5b5061049e600881565b60405160ff9091168152602001610336565b3480156104bc57600080fd5b506103c46104cb3660046124eb565b60096020526000908152604090205460ff1681565b3480156104ec57600080fd5b50601854610500906001600160a01b031681565b6040516001600160a01b039091168152602001610336565b34801561052457600080fd5b506103c46105333660046124eb565b610ede565b34801561054457600080fd5b5061032c60115481565b34801561055a57600080fd5b5061032c600e5481565b34801561057057600080fd5b5061031461057f366004612508565b610eec565b34801561059057600080fd5b5061032c61059f3660046124eb565b601b6020526000908152604090205481565b3480156105bd57600080fd5b50601c546103c49060ff1681565b3480156105d757600080fd5b50601754610500906001600160a01b031681565b3480156105f757600080fd5b5061032c6106063660046124eb565b60066020526000908152604090205481565b34801561062457600080fd5b5061032c60055481565b34801561063a57600080fd5b5061032c60045481565b34801561065057600080fd5b506000546001600160a01b0316610500565b34801561066e57600080fd5b5061032c60105481565b34801561068457600080fd5b506103c46106933660046124eb565b600a6020526000908152604090205460ff1681565b3480156106b457600080fd5b506103c46106c33660046124eb565b600c6020526000908152604090205460ff1681565b3480156106e457600080fd5b50610377604051806040016040528060068152602001650455448322e360d41b81525081565b34801561071657600080fd5b50610314610725366004612534565b610f55565b34801561073657600080fd5b5061032c600d5481565b34801561074c57600080fd5b5061031461075b36600461244d565b610fcd565b34801561076c57600080fd5b5061032c600f5481565b34801561078257600080fd5b506105007f00000000000000000000000086be7dc8354c5d8abca6289c595f60f2bf8c3a4181565b3480156107b657600080fd5b506103c46107c536600461247e565b6110f6565b3480156107d657600080fd5b50601a546103c490600160a81b900460ff1681565b3480156107f757600080fd5b506103146108063660046124eb565b611103565b34801561081757600080fd5b5061031461082636600461244d565b611183565b34801561083757600080fd5b506103c46108463660046124eb565b600b6020526000908152604090205460ff1681565b34801561086757600080fd5b50601954610500906001600160a01b031681565b34801561088757600080fd5b5061032c610896366004612552565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156108cd57600080fd5b506103146108dc36600461258b565b611272565b3480156108ed57600080fd5b50601654610500906001600160a01b031681565b34801561090d57600080fd5b5061031461091c3660046125a7565b61134d565b34801561092d57600080fd5b5061031461093c3660046124eb565b6113c5565b34801561094d57600080fd5b5061031461095c3660046124eb565b61149f565b34801561096d57600080fd5b5061032c61097c3660046124eb565b60086020526000908152604090205481565b34801561099a57600080fd5b50601a54610500906001600160a01b031681565b3480156109ba57600080fd5b506103c46109c93660046124eb565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156109f357600080fd5b50601a546103c490600160a01b900460ff1681565b610a1133610eb1565b610a365760405162461bcd60e51b8152600401610a2d906125d9565b60405180910390fd5b811580610a405750805b15610aaf57601a54600160a81b900460ff16610aaf5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073746f702074726164696e67206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610a2d565b601a805460ff60a01b1916600160a01b8415158102919091179182905560405160ff9190920416151581527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee906020015b60405180910390a15050565b610b1533610eb1565b610b315760405162461bcd60e51b8152600401610a2d906125d9565b6001811015610b8e5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610a2d565b6103e881610b9e6008600a6126f3565b610bac90633b9aca00612702565b610bb69190612702565b610bc09190612721565b60058190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c579086815260200190565b60405180910390a35060015b92915050565b610c756008600a6126f3565b610c8390633b9aca00612702565b81565b610c8f33610eb1565b610cab5760405162461bcd60e51b8152600401610a2d906125d9565b60658110610ce65760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b6044820152606401610a2d565b4760006064610cf58484612702565b610cff9190612721565b604051909150339082156108fc029083906000818181858888f19350505050158015610d2f573d6000803e3d6000fd5b506040518181527f377153983e64f72f80af47182763316780b9133be808b7082a16710202b8fbda9060200160405180910390a1505050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610e15576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610df0918490611529565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610e20848484611563565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254909190610e8a6008600a6126f3565b610e9890633b9aca00612702565b610ea29190612743565b610eac9190612743565b905090565b600080546001600160a01b0383811691161480610c635750506003546001600160a01b0390811691161490565b6000610c6382600019610bfc565b3360009081526002602052604090205460ff16610f395760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610a2d565b601382905560148390556015819055610f506119a4565b505050565b3360009081526002602052604090205460ff16610fa25760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610a2d565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610fd633610eb1565b610ff25760405162461bcd60e51b8152600401610a2d906125d9565b8063365aabe7146110385760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610a2d565b601a54600160a01b900460ff166110a95760405162461bcd60e51b815260206004820152602f60248201527f43616e7420636c6f7365206c61756e6368206d6f6465207768656e207472616460448201526e1a5b99c81a5cc8191a5cd8589b1959608a1b6064820152608401610a2d565b601a805460ff60a81b1916908190556040517f4b4d10c084e3fa6291b99e9e41e22eadfb3b01ca4bb86ae8d7b9fefe1498f52f91610bf191600160a81b90910460ff161515815260200190565b6000610e23338484611563565b61110c33610eb1565b6111285760405162461bcd60e51b8152600401610a2d906125d9565b6001600160a01b038116600081815260026020908152604091829020805460ff191660019081179091558251938452908301527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b95059101610bf1565b61118c33610eb1565b6111a85760405162461bcd60e51b8152600401610a2d906125d9565b600181101561120b5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610a2d565b6103e88161121b6008600a6126f3565b61122990633b9aca00612702565b6112339190612702565b61123d9190612721565b60048190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610bf1565b61127b33610eb1565b6112975760405162461bcd60e51b8152600401610a2d906125d9565b600a6112a46008826126f3565b6112b290633b9aca00612702565b6112bc9190612721565b81106112fc5760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610a2d565b601c805460ff1916831515908117909155601d8290556040805183815260ff909216151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d09101610b00565b61135633610eb1565b6113725760405162461bcd60e51b8152600401610a2d906125d9565b600d849055600e839055600f8290556010819055601154819083611396868861275a565b6113a0919061275a565b6113aa919061275a565b6113b4919061275a565b6012556113bf6119a4565b50505050565b6113ce33610eb1565b6113ea5760405162461bcd60e51b8152600401610a2d906125d9565b6000546001600160a01b03908116908216036114485760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610a2d565b6001600160a01b0381166000818152600260209081526040808320805460ff191690558051938452908301919091527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b95059101610bf1565b6114a833610eb1565b6114c45760405162461bcd60e51b8152600401610a2d906125d9565b600080546001600160a01b0319166001600160a01b038316908117825580825260026020908152604092839020805460ff1916600117905591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639101610bf1565b6000818484111561154d5760405162461bcd60e51b8152600401610a2d91906123f8565b50600061155a8486612743565b95945050505050565b601e5460009060ff16156115835761157c848484611b98565b9050610e23565b6001600160a01b0383166000908152600c602052604090205460ff161580156115c557506001600160a01b0384166000908152600c602052604090205460ff16155b6116075760405162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81a5cc814995dd85c991959606a1b6044820152606401610a2d565b6001600160a01b03841660009081526002602052604090205460ff1615801561164957506001600160a01b03831660009081526002602052604090205460ff16155b1561169e57601a54600160a01b900460ff1661169e5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a2d565b6001600160a01b03841660009081526002602052604090205460ff161580156116e057506001600160a01b0384166000908152600b602052604090205460ff16155b801561170557506001600160a01b0383166000908152600b602052604090205460ff16155b801561174357507f00000000000000000000000086be7dc8354c5d8abca6289c595f60f2bf8c3a416001600160a01b0316836001600160a01b031614155b156117bd576005546001600160a01b03841660009081526006602052604090205461176f90849061275a565b11156117bd5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610a2d565b600454821115806117e657506001600160a01b0384166000908152600a602052604090205460ff165b8061180957506001600160a01b0383166000908152600a602052604090205460ff165b61184d5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610a2d565b611855611c7e565b1561186257611862611cea565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600690915291909120546118b4918490611529565b6001600160a01b038516600090815260066020908152604080832093909355600990529081205460ff168061190157506001600160a01b03841660009081526009602052604090205460ff165b611915576119108584866120c6565b611917565b825b6001600160a01b03851660009081526006602052604090205490915061193d908261221d565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119919085815260200190565b60405180910390a3506001949350505050565b6103e86119c960646119c360145460125461227c90919063ffffffff16565b906122fe565b1115611a175760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20323025006044820152606401610a2d565b6103e8611a3660646119c360135460125461227c90919063ffffffff16565b1115611a845760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203230256044820152606401610a2d565b6103e8611aa360646119c360155460125461227c90919063ffffffff16565b1115611afd5760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610a2d565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada611b3a60646119c360145460125461227c90919063ffffffff16565b611b5660646119c360135460125461227c90919063ffffffff16565b611b7260646119c360155460125461227c90919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611be9918490611529565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611c18908361221d565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6c9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000086be7dc8354c5d8abca6289c595f60f2bf8c3a411614801590611cbc5750601e5460ff16155b8015611cca5750601c5460ff165b8015610eac575050601d5430600090815260066020526040902054101590565b601e805460ff191660011790556012546000611d07826002612702565b600d54601d54611d179190612702565b611d219190612721565b9050600081601d54611d339190612743565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611d6d57611d6d612772565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611dc157611dc1612772565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611e07908590600090869030904290600401612788565b600060405180830381600087803b158015611e2157600080fd5b505af1158015611e35573d6000803e3d6000fd5b5050600d54479250611e4a9150600290612721565b611e549086612743565b94506000611e63866002612702565b600d54611e709084612702565b611e7a9190612721565b9050600086600e5484611e8d9190612702565b611e979190612721565b9050600087600f5485611eaa9190612702565b611eb49190612721565b905060008860105486611ec79190612702565b611ed19190612721565b905060008960115487611ee49190612702565b611eee9190612721565b6016546040519192506001600160a01b03169085156108fc029086906000818181858888f19350505050158015611f29573d6000803e3d6000fd5b506017546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611f64573d6000803e3d6000fd5b506018546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611f9f573d6000803e3d6000fd5b506019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fda573d6000803e3d6000fd5b5088156120b057601a5460405163f305d71960e01b81523060048201819052602482018c9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990879060c40160606040518083038185885af115801561204e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061207391906127f9565b505060408051878152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601e805460ff191690555050505050505050565b60008215806120d55750601254155b156120e1575081610e23565b6015546001600160a01b037f00000000000000000000000086be7dc8354c5d8abca6289c595f60f2bf8c3a41811690841603612120575060135461215e565b7f00000000000000000000000086be7dc8354c5d8abca6289c595f60f2bf8c3a416001600160a01b0316856001600160a01b03160361215e57506014545b600061218d61216e606480612702565b6119c3846121876012548a61227c90919063ffffffff16565b9061227c565b9050801561220957306000908152600660205260409020546121af908261221d565b30600081815260066020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122009085815260200190565b60405180910390a35b6122138582612340565b9695505050505050565b60008061222a838561275a565b905083811015610e235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a2d565b60008260000361228e57506000610c63565b600061229a8385612702565b9050826122a78583612721565b14610e235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a2d565b6000610e2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612382565b6000610e2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611529565b600081836123a35760405162461bcd60e51b8152600401610a2d91906123f8565b50600061155a8486612721565b803580151581146123c057600080fd5b919050565b600080604083850312156123d857600080fd5b6123e1836123b0565b91506123ef602084016123b0565b90509250929050565b600060208083528351808285015260005b8181101561242557858101830151858201604001528201612409565b81811115612437576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561245f57600080fd5b5035919050565b6001600160a01b038116811461247b57600080fd5b50565b6000806040838503121561249157600080fd5b823561249c81612466565b946020939093013593505050565b6000806000606084860312156124bf57600080fd5b83356124ca81612466565b925060208401356124da81612466565b929592945050506040919091013590565b6000602082840312156124fd57600080fd5b8135610e2381612466565b60008060006060848603121561251d57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561254757600080fd5b82356123e181612466565b6000806040838503121561256557600080fd5b823561257081612466565b9150602083013561258081612466565b809150509250929050565b6000806040838503121561259e57600080fd5b61249c836123b0565b600080600080608085870312156125bd57600080fd5b5050823594602084013594506040840135936060013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561264a578160001904821115612630576126306125f9565b8085161561263d57918102915b93841c9390800290612614565b509250929050565b60008261266157506001610c63565b8161266e57506000610c63565b8160018114612684576002811461268e576126aa565b6001915050610c63565b60ff84111561269f5761269f6125f9565b50506001821b610c63565b5060208310610133831016604e8410600b84101617156126cd575081810a610c63565b6126d7838361260f565b80600019048211156126eb576126eb6125f9565b029392505050565b6000610e2360ff841683612652565b600081600019048311821515161561271c5761271c6125f9565b500290565b60008261273e57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612755576127556125f9565b500390565b6000821982111561276d5761276d6125f9565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127d85784516001600160a01b0316835293830193918301916001016127b3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561280e57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122012f06fd6265d2328391071a43318e2b3927b482dfa3ad3fa59f5a8ce28c37de764736f6c634300080e0033

Deployed Bytecode Sourcemap

4307:12509:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11982:273;;;;;;;;;;-1:-1:-1;11982:273:0;;;;;:::i;:::-;;:::i;:::-;;6112:49;;;;;;;;;;;;;;;;;;;578:25:1;;;566:2;551:18;6112:49:0;;;;;;;;4562:44;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4562:44:0;;;;;;;;;;;;:::i;8451:310::-;;;;;;;;;;-1:-1:-1;8451:310:0;;;;;:::i;:::-;;:::i;7555:216::-;;;;;;;;;;-1:-1:-1;7555:216:0;;;;;:::i;:::-;;:::i;:::-;;;2022:14:1;;2015:22;1997:41;;1985:2;1970:18;7555:216:0;1857:187:1;5553:44:0;;;;;;;;;;;;5594:3;5553:44;;4703:62;;;;;;;;;;;;;:::i;11614:360::-;;;;;;;;;;-1:-1:-1;11614:360:0;;;;;:::i;:::-;;:::i;5455:91::-;;;;;;;;;;;;;;;;8073:370;;;;;;;;;;-1:-1:-1;8073:370:0;;;;;:::i;:::-;;:::i;15975:137::-;;;;;;;;;;;;;:::i;2969:126::-;;;;;;;;;;-1:-1:-1;2969:126:0;;;;;:::i;:::-;;:::i;4660:34::-;;;;;;;;;;;;4693:1;4660:34;;;;;2934:4:1;2922:17;;;2904:36;;2892:2;2877:18;4660:34:0;2762:184:1;5056:44:0;;;;;;;;;;-1:-1:-1;5056:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5802:32;;;;;;;;;;-1:-1:-1;5802:32:0;;;;-1:-1:-1;;;;;5802:32:0;;;;;;-1:-1:-1;;;;;3115:32:1;;;3097:51;;3085:2;3070:18;5802:32:0;2951:203:1;7779:122:0;;;;;;;;;;-1:-1:-1;7779:122:0;;;;;:::i;:::-;;:::i;5421:25::-;;;;;;;;;;;;;;;;5308:31;;;;;;;;;;;;;;;;15003:223;;;;;;;;;;-1:-1:-1;15003:223:0;;;;;:::i;:::-;;:::i;6024:41::-;;;;;;;;;;-1:-1:-1;6024:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;6074:31;;;;;;;;;;-1:-1:-1;6074:31:0;;;;;;;;5758:37;;;;;;;;;;-1:-1:-1;5758:37:0;;;;-1:-1:-1;;;;;5758:37:0;;;4875:45;;;;;;;;;;-1:-1:-1;4875:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;4822:44;;;;;;;;;;;;;;;;4774:41;;;;;;;;;;;;;;;;7330:78;;;;;;;;;;-1:-1:-1;7382:7:0;7400:5;-1:-1:-1;;;;;7400:5:0;7330:78;;5386:28;;;;;;;;;;;;;;;;5107:48;;;;;;;;;;-1:-1:-1;5107:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5221:40;;;;;;;;;;-1:-1:-1;5221:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4613;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4613:40:0;;;;;14888:107;;;;;;;;;;-1:-1:-1;14888:107:0;;;;;:::i;:::-;;:::i;5270:31::-;;;;;;;;;;;;;;;;12263:309;;;;;;;;;;-1:-1:-1;12263:309:0;;;;;:::i;:::-;;:::i;5346:33::-;;;;;;;;;;;;;;;;5910:29;;;;;;;;;;;;;;;7909:156;;;;;;;;;;-1:-1:-1;7909:156:0;;;;;:::i;:::-;;:::i;5986:29::-;;;;;;;;;;-1:-1:-1;5986:29:0;;;;-1:-1:-1;;;5986:29:0;;;;;;2615:138;;;;;;;;;;-1:-1:-1;2615:138:0;;;;;:::i;:::-;;:::i;8767:313::-;;;;;;;;;;-1:-1:-1;8767:313:0;;;;;:::i;:::-;;:::i;5162:52::-;;;;;;;;;;-1:-1:-1;5162:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5841:29;;;;;;;;;;-1:-1:-1;5841:29:0;;;;-1:-1:-1;;;;;5841:29:0;;;7414:133;;;;;;;;;;-1:-1:-1;7414:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7516:19:0;;;7498:7;7516:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7414:133;15676:287;;;;;;;;;;-1:-1:-1;15676:287:0;;;;;:::i;:::-;;:::i;5716:35::-;;;;;;;;;;-1:-1:-1;5716:35:0;;;;-1:-1:-1;;;;;5716:35:0;;;15234:434;;;;;;;;;;-1:-1:-1;15234:434:0;;;;;:::i;:::-;;:::i;2759:204::-;;;;;;;;;;-1:-1:-1;2759:204:0;;;;;:::i;:::-;;:::i;3325:173::-;;;;;;;;;;-1:-1:-1;3325:173:0;;;;;:::i;:::-;;:::i;4997:50::-;;;;;;;;;;-1:-1:-1;4997:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;5879:24;;;;;;;;;;-1:-1:-1;5879:24:0;;;;-1:-1:-1;;;;;5879:24:0;;;3101:107;;;;;;;;;;-1:-1:-1;3101:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;3181:19:0;3157:4;3181:19;;;:14;:19;;;;;;;;;3101:107;5948:31;;;;;;;;;;-1:-1:-1;5948:31:0;;;;-1:-1:-1;;;5948:31:0;;;;;;11982:273;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;;;;;;;;;12063:7:::1;12062:8;:15;;;;12074:3;12062:15;12059:108;;;12101:10;::::0;-1:-1:-1;;;12101:10:0;::::1;;;12093:62;;;::::0;-1:-1:-1;;;12093:62:0;;5858:2:1;12093:62:0::1;::::0;::::1;5840:21:1::0;5897:2;5877:18;;;5870:30;5936:34;5916:18;;;5909:62;-1:-1:-1;;;5987:18:1;;;5980:38;6035:19;;12093:62:0::1;5656:404:1::0;12093:62:0::1;12177:11;:21:::0;;-1:-1:-1;;;;12177:21:0::1;-1:-1:-1::0;;;12177:21:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;12214:33:::1;::::0;12177:21:::1;12235:11:::0;;;::::1;;2022:14:1::0;2015:22;1997:41;;12214:33:0::1;::::0;1985:2:1;1970:18;12214:33:0::1;;;;;;;;11982:273:::0;;:::o;8451:310::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;8587:1:::1;8560:23;:28;;8552:76;;;::::0;-1:-1:-1;;;8552:76:0;;6267:2:1;8552:76:0::1;::::0;::::1;6249:21:1::0;6306:2;6286:18;;;6279:30;6345:34;6325:18;;;6318:62;-1:-1:-1;;;6396:18:1;;;6389:34;6440:19;;8552:76:0::1;6065:400:1::0;8552:76:0::1;8700:4;8672:23:::0;4753:12:::1;4693:1;4753:2;:12;:::i;:::-;4741:24;::::0;:9:::1;:24;:::i;:::-;8658:37;;;;:::i;:::-;8657:47;;;;:::i;:::-;8639:15;:65:::0;;;8720:33:::1;::::0;578:25:1;;;8720:33:0::1;::::0;566:2:1;551:18;8720:33:0::1;;;;;;;;8451:310:::0;:::o;7555:216::-;7659:10;7630:4;7647:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7647:32:0;;;;;;;;;;:41;;;7704:37;7630:4;;7647:32;;7704:37;;;;7682:6;578:25:1;;566:2;551:18;;432:177;7704:37:0;;;;;;;;-1:-1:-1;7759:4:0;7555:216;;;;;:::o;4703:62::-;4753:12;4693:1;4753:2;:12;:::i;:::-;4741:24;;:9;:24;:::i;:::-;4703:62;:::o;11614:360::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;11724:3:::1;11705:16;:22;11697:43;;;::::0;-1:-1:-1;;;11697:43:0;;8582:2:1;11697:43:0::1;::::0;::::1;8564:21:1::0;8621:1;8601:18;;;8594:29;-1:-1:-1;;;8639:18:1;;;8632:38;8687:18;;11697:43:0::1;8380:331:1::0;11697:43:0::1;11773:21;11751:19;11866:3;11831:30;11845:16:::0;11773:21;11831:30:::1;:::i;:::-;11829:40;;;;:::i;:::-;11880:43;::::0;11805:64;;-1:-1:-1;11888:10:0::1;::::0;11880:43;::::1;;;::::0;11805:64;;11880:43:::1;::::0;;;11805:64;11888:10;11880:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11939:27:0::1;::::0;578:25:1;;;11939:27:0::1;::::0;566:2:1;551:18;11939:27:0::1;;;;;;;11686:288;;11614:360:::0;:::o;8073:370::-;-1:-1:-1;;;;;8193:19:0;;8173:4;8193:19;;;:11;:19;;;;;;;;8213:10;8193:31;;;;;;;;-1:-1:-1;;8193:52:0;8190:186;;8295:69;;;;;;;;;;;-1:-1:-1;;;8295:69:0;;;;;;;;-1:-1:-1;;;;;8295:19:0;;-1:-1:-1;8295:19:0;;;:11;:19;;;;;8315:10;8295:31;;;;;;;;;;:69;;8331:6;;8295:35;:69::i;:::-;-1:-1:-1;;;;;8261:19:0;;;;;;:11;:19;;;;;;;;8281:10;8261:31;;;;;;;:103;8190:186;8395:40;8409:6;8417:9;8428:6;8395:13;:40::i;:::-;8388:47;;8073:370;;;;;;:::o;15975:137::-;16088:9;:15;;;;4438:42;16028:7;16070:15;;;;;16028:7;;16088:15;4753:12;4693:1;4753:2;:12;:::i;:::-;4741:24;;:9;:24;:::i;:::-;16056:29;;;;:::i;:::-;:47;;;;:::i;:::-;16048:56;;15975:137;:::o;2969:126::-;3024:4;3059:5;;-1:-1:-1;;;;;3048:16:0;;;3059:5;;3048:16;;:39;;-1:-1:-1;;3080:7:0;;-1:-1:-1;;;;;3080:7:0;;;3068:19;;;;2969:126::o;7779:122::-;7834:4;7858:35;7866:7;-1:-1:-1;;7858:7:0;:35::i;15003:223::-;2571:10;3157:4;3181:19;;;:14;:19;;;;;;;;2550:48;;;;-1:-1:-1;;;2550:48:0;;9048:2:1;2550:48:0;;;9030:21:1;9087:2;9067:18;;;9060:30;-1:-1:-1;;;9106:18:1;;;9099:41;9157:18;;2550:48:0;8846:335:1;2550:48:0;15103:14:::1;:22:::0;;;15136:13:::1;:20:::0;;;15167:18:::1;:27:::0;;;15205:13:::1;:11;:13::i;:::-;15003:223:::0;;;:::o;14888:107::-;2571:10;3157:4;3181:19;;;:14;:19;;;;;;;;2550:48;;;;-1:-1:-1;;;2550:48:0;;9048:2:1;2550:48:0;;;9030:21:1;9087:2;9067:18;;;9060:30;-1:-1:-1;;;9106:18:1;;;9099:41;9157:18;;2550:48:0;8846:335:1;2550:48:0;-1:-1:-1;;;;;14961:17:0;;;::::1;;::::0;;;:7:::1;:17;::::0;;;;:26;;-1:-1:-1;;14961:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14888:107::o;12263:309::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;12352:7:::1;12363:9;12352:20;12344:48;;;::::0;-1:-1:-1;;;12344:48:0;;9388:2:1;12344:48:0::1;::::0;::::1;9370:21:1::0;9427:2;9407:18;;;9400:30;-1:-1:-1;;;9446:18:1;;;9439:46;9502:18;;12344:48:0::1;9186:340:1::0;12344:48:0::1;12428:11;::::0;-1:-1:-1;;;12428:11:0;::::1;;;12420:70;;;::::0;-1:-1:-1;;;12420:70:0;;9733:2:1;12420:70:0::1;::::0;::::1;9715:21:1::0;9772:2;9752:18;;;9745:30;9811:34;9791:18;;;9784:62;-1:-1:-1;;;9862:18:1;;;9855:45;9917:19;;12420:70:0::1;9531:411:1::0;12420:70:0::1;12501:10;:18:::0;;-1:-1:-1;;;;12501:18:0::1;::::0;;;;12535:29:::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;12553:10:0;;::::1;12501:18;12553:10;2022:14:1::0;2015:22;1997:41;;1985:2;1970:18;;1857:187;7909:156:0;7989:4;8013:44;8027:10;8039:9;8050:6;8013:13;:44::i;2615:138::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2677:19:0;::::1;;::::0;;;:14:::1;:19;::::0;;;;;;;;:26;;-1:-1:-1;;2677:26:0::1;2699:4;2677:26:::0;;::::1;::::0;;;2719;;10115:51:1;;;10182:18;;;10175:50;2719:26:0::1;::::0;10088:18:1;2719:26:0::1;9947:284:1::0;8767:313:0;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;8901:1:::1;8873:24;:29;;8865:82;;;::::0;-1:-1:-1;;;8865:82:0;;10438:2:1;8865:82:0::1;::::0;::::1;10420:21:1::0;10477:2;10457:18;;;10450:30;10516:34;10496:18;;;10489:62;-1:-1:-1;;;10567:18:1;;;10560:39;10616:19;;8865:82:0::1;10236:405:1::0;8865:82:0::1;9017:4;8988:24:::0;4753:12:::1;4693:1;4753:2;:12;:::i;:::-;4741:24;::::0;:9:::1;:24;:::i;:::-;8974:38;;;;:::i;:::-;8973:48;;;;:::i;:::-;8958:12;:63:::0;;;9037:35:::1;::::0;578:25:1;;;9037:35:0::1;::::0;566:2:1;551:18;9037:35:0::1;432:177:1::0;15676:287:0;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;15798:2:::1;4753:12;4693:1;15798:2:::0;4753:12:::1;:::i;:::-;4741:24;::::0;:9:::1;:24;:::i;:::-;15786:14;;;;:::i;:::-;15775:7;:26;15767:54;;;::::0;-1:-1:-1;;;15767:54:0;;10848:2:1;15767:54:0::1;::::0;::::1;10830:21:1::0;10887:2;10867:18;;;10860:30;-1:-1:-1;;;10906:18:1;;;10899:45;10961:18;;15767:54:0::1;10646:339:1::0;15767:54:0::1;15834:11;:22:::0;;-1:-1:-1;;15834:22:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15867:13:::1;:23:::0;;;15908:47:::1;::::0;;11158:25:1;;;15834:22:0::1;15943:11:::0;;;11226:14:1;11219:22;11214:2;11199:18;;11192:50;15908:47:0::1;::::0;11131:18:1;15908:47:0::1;10990:258:1::0;15234:434:0;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;15382:12:::1;:28:::0;;;15421:12:::1;:28:::0;;;15460:14:::1;:32:::0;;;15503:9:::1;:22:::0;;;15607:6:::1;::::0;15515:10;;15477:15;15557:29:::1;15436:13:::0;15397;15557:29:::1;:::i;:::-;:47;;;;:::i;:::-;:56;;;;:::i;:::-;:69;;;;:::i;:::-;15546:8;:80:::0;15647:13:::1;:11;:13::i;:::-;15234:434:::0;;;;:::o;2759:204::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;2838:5:::1;::::0;-1:-1:-1;;;;;2838:5:0;;::::1;2831:12:::0;;::::1;::::0;2823:51:::1;;;::::0;-1:-1:-1;;;2823:51:0;;11588:2:1;2823:51:0::1;::::0;::::1;11570:21:1::0;11627:2;11607:18;;;11600:30;11666:28;11646:18;;;11639:56;11712:18;;2823:51:0::1;11386:350:1::0;2823:51:0::1;-1:-1:-1::0;;;;;2885:19:0;::::1;2907:5;2885:19:::0;;;:14:::1;:19;::::0;;;;;;;:27;;-1:-1:-1;;2885:27:0::1;::::0;;2928;;10115:51:1;;;10182:18;;;10175:50;;;;2928:27:0::1;::::0;10088:18:1;2928:27:0::1;9947:284:1::0;3325:173:0;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;-1:-1:-1;;;2462:38:0;;;;;;;:::i;:::-;3401:5:::1;:11:::0;;-1:-1:-1;;;;;;3401:11:0::1;-1:-1:-1::0;;;;;3401:11:0;::::1;::::0;;::::1;::::0;;3423:19;;;:14:::1;:19;::::0;;;;;;;;:26;;-1:-1:-1;;3423:26:0::1;-1:-1:-1::0;3423:26:0::1;::::0;;3465:25;;3097:51:1;;;3465:25:0::1;::::0;3070:18:1;3465:25:0::1;2951:203:1::0;538:192:0;624:7;660:12;652:6;;;;644:29;;;;-1:-1:-1;;;644:29:0;;;;;;;;:::i;:::-;-1:-1:-1;684:9:0;696:5;700:1;696;:5;:::i;:::-;684:17;538:192;-1:-1:-1;;;;;538:192:0:o;9088:1240::-;9200:6;;9180:4;;9200:6;;9197:63;;;9216:41;9231:6;9239:9;9250:6;9216:14;:41::i;:::-;9209:48;;;;9197:63;-1:-1:-1;;;;;9279:18:0;;;;;;:7;:18;;;;;;;;9278:19;:39;;;;-1:-1:-1;;;;;;9302:15:0;;;;;;:7;:15;;;;;;;;9301:16;9278:39;9270:71;;;;-1:-1:-1;;;9270:71:0;;12159:2:1;9270:71:0;;;12141:21:1;12198:2;12178:18;;;12171:30;-1:-1:-1;;;12217:18:1;;;12210:49;12276:18;;9270:71:0;11957:343:1;9270:71:0;-1:-1:-1;;;;;9358:22:0;;;;;;:14;:22;;;;;;;;9357:23;:53;;;;-1:-1:-1;;;;;;9385:25:0;;;;;;:14;:25;;;;;;;;9384:26;9357:53;9354:127;;;9434:11;;-1:-1:-1;;;9434:11:0;;;;9426:43;;;;-1:-1:-1;;;9426:43:0;;12507:2:1;9426:43:0;;;12489:21:1;12546:2;12526:18;;;12519:30;-1:-1:-1;;;12565:18:1;;;12558:50;12625:18;;9426:43:0;12305:344:1;9426:43:0;-1:-1:-1;;;;;9498:22:0;;;;;;:14;:22;;;;;;;;9497:23;:55;;;;-1:-1:-1;;;;;;9525:27:0;;;;;;:19;:27;;;;;;;;9524:28;9497:55;:90;;;;-1:-1:-1;;;;;;9557:30:0;;;;;;:19;:30;;;;;;;;9556:31;9497:90;:111;;;;;9604:4;-1:-1:-1;;;;;9591:17:0;:9;-1:-1:-1;;;;;9591:17:0;;;9497:111;9493:230;;;9668:15;;-1:-1:-1;;;;;9634:20:0;;;;;;:9;:20;;;;;;:29;;9657:6;;9634:29;:::i;:::-;9633:50;;9625:86;;;;-1:-1:-1;;;9625:86:0;;12856:2:1;9625:86:0;;;12838:21:1;12895:2;12875:18;;;12868:30;12934:26;12914:18;;;12907:54;12978:18;;9625:86:0;12654:348:1;9625:86:0;9799:12;;9789:6;:22;;9788:51;;;-1:-1:-1;;;;;;9816:23:0;;;;;;:15;:23;;;;;;;;9788:51;:81;;;-1:-1:-1;;;;;;9843:26:0;;;;;;:15;:26;;;;;;;;9788:81;9780:115;;;;-1:-1:-1;;;9780:115:0;;13209:2:1;9780:115:0;;;13191:21:1;13248:2;13228:18;;;13221:30;-1:-1:-1;;;13267:18:1;;;13260:51;13328:18;;9780:115:0;13007:345:1;9780:115:0;9911:16;:14;:16::i;:::-;9908:35;;;9930:10;:8;:10::i;:::-;9975:53;;;;;;;;;;;-1:-1:-1;;;9975:53:0;;;;;;;;-1:-1:-1;;;;;9975:17:0;;-1:-1:-1;9975:17:0;;;:9;:17;;;;;;;;:53;;9997:6;;9975:21;:53::i;:::-;-1:-1:-1;;;;;9955:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10067:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10090:22:0;;;;;;:11;:22;;;;;;;;10067:45;10066:93;;10125:34;10133:6;10141;10149:9;10125:7;:34::i;:::-;10066:93;;;10116:6;10066:93;-1:-1:-1;;;;;10195:20:0;;;;;;:9;:20;;;;;;10041:118;;-1:-1:-1;10195:40:0;;10041:118;10195:24;:40::i;:::-;-1:-1:-1;;;;;10172:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10255:43;;;;;;;;;;10283:14;578:25:1;;566:2;551:18;;432:177;10255:43:0;;;;;;;;-1:-1:-1;10316:4:0;;9088:1240;-1:-1:-1;;;;9088:1240:0:o;14322:558::-;14413:4;14373:36;14405:3;14373:27;14386:13;;14373:8;;:12;;:27;;;;:::i;:::-;:31;;:36::i;:::-;:44;;14365:88;;;;-1:-1:-1;;;14365:88:0;;13559:2:1;14365:88:0;;;13541:21:1;13598:2;13578:18;;;13571:30;13637:33;13617:18;;;13610:61;13688:18;;14365:88:0;13357:355:1;14365:88:0;14513:4;14472:37;14505:3;14472:28;14485:14;;14472:8;;:12;;:28;;;;:::i;:37::-;:45;;14464:90;;;;-1:-1:-1;;;14464:90:0;;13919:2:1;14464:90:0;;;13901:21:1;;;13938:18;;;13931:30;13997:34;13977:18;;;13970:62;14049:18;;14464:90:0;13717:356:1;14464:90:0;14618:4;14573:41;14610:3;14573:32;14586:18;;14573:8;;:12;;:32;;;;:::i;:41::-;:49;;14565:98;;;;-1:-1:-1;;;14565:98:0;;14280:2:1;14565:98:0;;;14262:21:1;14319:2;14299:18;;;14292:30;14358:34;14338:18;;;14331:62;-1:-1:-1;;;14409:18:1;;;14402:34;14453:19;;14565:98:0;14078:400:1;14565:98:0;14681:191;14698:36;14730:3;14698:27;14711:13;;14698:8;;:12;;:27;;;;:::i;:36::-;14756:37;14789:3;14756:28;14769:14;;14756:8;;:12;;:28;;;;:::i;:37::-;14815:41;14852:3;14815:32;14828:18;;14815:8;;:12;;:32;;;;:::i;:41::-;14681:191;;;14703:4:1;14691:17;;;14673:36;;14745:17;;;14740:2;14725:18;;14718:45;14799:17;;14779:18;;;14772:45;14681:191:0;;;;;;14661:2:1;14681:191:0;;;14322:558::o;10340:330::-;10470:53;;;;;;;;;;;-1:-1:-1;;;10470:53:0;;;;;;;;-1:-1:-1;;;;;10470:17:0;;10433:4;10470:17;;;:9;:17;;;;;;;:53;;10492:6;;10470:21;:53::i;:::-;-1:-1:-1;;;;;10450:17:0;;;;;;;:9;:17;;;;;;:73;;;;10557:20;;;;;;;:32;;10582:6;10557:24;:32::i;:::-;-1:-1:-1;;;;;10534:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10605:35;;;;;;;;;;10633:6;578:25:1;;566:2;551:18;;432:177;10605:35:0;;;;;;;;-1:-1:-1;10658:4:0;10340:330;;;;;:::o;11409:197::-;11458:4;11482:10;-1:-1:-1;;;;;11496:4:0;11482:18;;;;;:38;;-1:-1:-1;11514:6:0;;;;11513:7;11482:38;:62;;;;-1:-1:-1;11533:11:0;;;;11482:62;:116;;;;-1:-1:-1;;11585:13:0;;11575:4;11557:24;;;;:9;:24;;;;;;:41;;;11409:197::o;12580:1734::-;6208:6;:13;;-1:-1:-1;;6208:13:0;6217:4;6208:13;;;12653:8:::1;::::0;6208:6;12732:15:::1;12653:8:::0;12746:1:::1;12732:15;:::i;:::-;12717:12;;12701:13;;:28;;;;:::i;:::-;12700:48;;;;:::i;:::-;12674:74;;12759:20;12798:15;12782:13;;:31;;;;:::i;:::-;12850:16;::::0;;12864:1:::1;12850:16:::0;;;;;::::1;::::0;;12759:54;;-1:-1:-1;12826:21:0::1;::::0;12850:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12850:16:0::1;12826:40;;12895:4;12877;12882:1;12877:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12877:23:0::1;;;-1:-1:-1::0;;;;;12877:23:0::1;;;::::0;::::1;12921:4;12911;12916:1;12911:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12911:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;12938:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;12938:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13010:12;;12938:6:::1;::::0;13053:4;;13080::::1;::::0;13100:15:::1;::::0;12938:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13225:12:0::1;::::0;13161:21:::1;::::0;-1:-1:-1;13225:16:0::1;::::0;-1:-1:-1;13240:1:0::1;::::0;13225:16:::1;:::i;:::-;13210:32;::::0;:11;:32:::1;:::i;:::-;13196:46:::0;-1:-1:-1;13263:28:0::1;13326:15;13196:46:::0;13340:1:::1;13326:15;:::i;:::-;13309:12;::::0;13295:26:::1;::::0;:11;:26:::1;:::i;:::-;13294:48;;;;:::i;:::-;13263:79;;13353:28;13415:11;13399:12;;13385:11;:26;;;;:::i;:::-;13384:42;;;;:::i;:::-;13353:73;;13437:30;13503:11;13485:14;;13471:11;:28;;;;:::i;:::-;13470:44;;;;:::i;:::-;13437:77;;13525:25;13581:11;13568:9;;13554:11;:23;;;;:::i;:::-;13553:39;;;;:::i;:::-;13525:67;;13603:22;13653:11;13643:6;;13629:11;:20;;;;:::i;:::-;13628:36;;;;:::i;:::-;13685:20;::::0;13677:60:::1;::::0;13603:61;;-1:-1:-1;;;;;;13685:20:0::1;::::0;13677:60;::::1;;;::::0;13716:20;;13685::::1;13677:60:::0;13685:20;13677:60;13716:20;13685;13677:60;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13756:22:0::1;::::0;13748:64:::1;::::0;-1:-1:-1;;;;;13756:22:0;;::::1;::::0;13748:64;::::1;;;::::0;13789:22;;13756::::1;13748:64:::0;13756:22;13748:64;13789:22;13756;13748:64;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13831:17:0::1;::::0;13823:54:::1;::::0;-1:-1:-1;;;;;13831:17:0;;::::1;::::0;13823:54;::::1;;;::::0;13859:17;;13831::::1;13823:54:::0;13831:17;13823:54;13859:17;13831;13823:54;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13896:14:0::1;::::0;13888:48:::1;::::0;-1:-1:-1;;;;;13896:14:0;;::::1;::::0;13888:48;::::1;;;::::0;13921:14;;13896::::1;13888:48:::0;13896:14;13888:48;13921:14;13896;13888:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13952:19:0;;13949:358:::1;;13987:6;::::0;:238:::1;::::0;-1:-1:-1;;;13987:238:0;;14065:4:::1;13987:238;::::0;::::1;16418:34:1::0;;;16468:18;;;16461:34;;;13987:6:0::1;16511:18:1::0;;;16504:34;;;16554:18;;;16547:34;16597:19;;;16590:44;14195:15:0::1;16650:19:1::0;;;16643:35;-1:-1:-1;;;;;13987:6:0;;::::1;::::0;:22:::1;::::0;14017:20;;16352:19:1;;13987:238:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14245:50:0::1;::::0;;17174:25:1;;;17230:2;17215:18;;17208:34;;;14245:50:0::1;::::0;-1:-1:-1;17147:18:1;14245:50:0::1;;;;;;;13949:358;-1:-1:-1::0;;6226:6:0;:14;;-1:-1:-1;;6226:14:0;;;-1:-1:-1;;;;;;;;12580:1734:0:o;10678:723::-;10764:7;10787:11;;;:28;;-1:-1:-1;10802:8:0;;:13;10787:28;10784:72;;;-1:-1:-1;10838:6:0;10831:13;;10784:72;10889:18;;-1:-1:-1;;;;;10936:4:0;10923:17;;;;;;10920:154;;-1:-1:-1;10970:14:0;;10920:154;;;11015:4;-1:-1:-1;;;;;11005:14:0;:6;-1:-1:-1;;;;;11005:14:0;;11002:72;;-1:-1:-1;11049:13:0;;11002:72;11086:17;11106:62;11147:20;5594:3;;11147:20;:::i;:::-;11106:36;11131:10;11106:20;11117:8;;11106:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;11086:82;-1:-1:-1;11184:13:0;;11181:172;;11258:4;11240:24;;;;:9;:24;;;;;;:39;;11269:9;11240:28;:39::i;:::-;11231:4;11213:24;;;;:9;:24;;;;;;;:66;;;;11299:42;;-1:-1:-1;;;;;11299:42:0;;;;;;;11331:9;578:25:1;;566:2;551:18;;432:177;11299:42:0;;;;;;;;11181:172;11372:21;:6;11383:9;11372:10;:21::i;:::-;11365:28;10678:723;-1:-1:-1;;;;;;10678:723:0:o;209:181::-;267:7;;299:5;303:1;299;:5;:::i;:::-;287:17;;328:1;323;:6;;315:46;;;;-1:-1:-1;;;315:46:0;;17455:2:1;315:46:0;;;17437:21:1;17494:2;17474:18;;;17467:30;17533:29;17513:18;;;17506:57;17580:18;;315:46:0;17253:351:1;736:250:0;794:7;818:1;823;818:6;814:47;;-1:-1:-1;848:1:0;841:8;;814:47;873:9;885:5;889:1;885;:5;:::i;:::-;873:17;-1:-1:-1;918:1:0;909:5;913:1;873:17;909:5;:::i;:::-;:10;901:56;;;;-1:-1:-1;;;901:56:0;;17811:2:1;901:56:0;;;17793:21:1;17850:2;17830:18;;;17823:30;17889:34;17869:18;;;17862:62;-1:-1:-1;;;17940:18:1;;;17933:31;17981:19;;901:56:0;17609:397:1;992:132:0;1050:7;1077:39;1081:1;1084;1077:39;;;;;;;;;;;;;;;;;:3;:39::i;396:136::-;454:7;481:43;485:1;488;481:43;;;;;;;;;;;;;;;;;:3;:43::i;1130:189::-;1216:7;1251:12;1244:5;1236:28;;;;-1:-1:-1;;;1236:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1275:9:0;1287:5;1291:1;1287;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:248::-;241:6;249;302:2;290:9;281:7;277:23;273:32;270:52;;;318:1;315;308:12;270:52;341:26;357:9;341:26;:::i;:::-;331:36;;386:35;417:2;406:9;402:18;386:35;:::i;:::-;376:45;;179:248;;;;;:::o;614:597::-;726:4;755:2;784;773:9;766:21;816:6;810:13;859:6;854:2;843:9;839:18;832:34;884:1;894:140;908:6;905:1;902:13;894:140;;;1003:14;;;999:23;;993:30;969:17;;;988:2;965:26;958:66;923:10;;894:140;;;1052:6;1049:1;1046:13;1043:91;;;1122:1;1117:2;1108:6;1097:9;1093:22;1089:31;1082:42;1043:91;-1:-1:-1;1195:2:1;1174:15;-1:-1:-1;;1170:29:1;1155:45;;;;1202:2;1151:54;;614:597;-1:-1:-1;;;614:597:1:o;1216:180::-;1275:6;1328:2;1316:9;1307:7;1303:23;1299:32;1296:52;;;1344:1;1341;1334:12;1296:52;-1:-1:-1;1367:23:1;;1216:180;-1:-1:-1;1216:180:1:o;1401:131::-;-1:-1:-1;;;;;1476:31:1;;1466:42;;1456:70;;1522:1;1519;1512:12;1456:70;1401:131;:::o;1537:315::-;1605:6;1613;1666:2;1654:9;1645:7;1641:23;1637:32;1634:52;;;1682:1;1679;1672:12;1634:52;1721:9;1708:23;1740:31;1765:5;1740:31;:::i;:::-;1790:5;1842:2;1827:18;;;;1814:32;;-1:-1:-1;;;1537:315:1:o;2049:456::-;2126:6;2134;2142;2195:2;2183:9;2174:7;2170:23;2166:32;2163:52;;;2211:1;2208;2201:12;2163:52;2250:9;2237:23;2269:31;2294:5;2269:31;:::i;:::-;2319:5;-1:-1:-1;2376:2:1;2361:18;;2348:32;2389:33;2348:32;2389:33;:::i;:::-;2049:456;;2441:7;;-1:-1:-1;;;2495:2:1;2480:18;;;;2467:32;;2049:456::o;2510:247::-;2569:6;2622:2;2610:9;2601:7;2597:23;2593:32;2590:52;;;2638:1;2635;2628:12;2590:52;2677:9;2664:23;2696:31;2721:5;2696:31;:::i;3159:316::-;3236:6;3244;3252;3305:2;3293:9;3284:7;3280:23;3276:32;3273:52;;;3321:1;3318;3311:12;3273:52;-1:-1:-1;;3344:23:1;;;3414:2;3399:18;;3386:32;;-1:-1:-1;3465:2:1;3450:18;;;3437:32;;3159:316;-1:-1:-1;3159:316:1:o;3480:315::-;3545:6;3553;3606:2;3594:9;3585:7;3581:23;3577:32;3574:52;;;3622:1;3619;3612:12;3574:52;3661:9;3648:23;3680:31;3705:5;3680:31;:::i;3800:388::-;3868:6;3876;3929:2;3917:9;3908:7;3904:23;3900:32;3897:52;;;3945:1;3942;3935:12;3897:52;3984:9;3971:23;4003:31;4028:5;4003:31;:::i;:::-;4053:5;-1:-1:-1;4110:2:1;4095:18;;4082:32;4123:33;4082:32;4123:33;:::i;:::-;4175:7;4165:17;;;3800:388;;;;;:::o;4193:248::-;4258:6;4266;4319:2;4307:9;4298:7;4294:23;4290:32;4287:52;;;4335:1;4332;4325:12;4287:52;4358:26;4374:9;4358:26;:::i;4446:385::-;4532:6;4540;4548;4556;4609:3;4597:9;4588:7;4584:23;4580:33;4577:53;;;4626:1;4623;4616:12;4577:53;-1:-1:-1;;4649:23:1;;;4719:2;4704:18;;4691:32;;-1:-1:-1;4770:2:1;4755:18;;4742:32;;4821:2;4806:18;4793:32;;-1:-1:-1;4446:385:1;-1:-1:-1;4446:385:1:o;5322:329::-;5524:2;5506:21;;;5563:1;5543:18;;;5536:29;-1:-1:-1;;;5596:2:1;5581:18;;5574:36;5642:2;5627:18;;5322:329::o;6470:127::-;6531:10;6526:3;6522:20;6519:1;6512:31;6562:4;6559:1;6552:15;6586:4;6583:1;6576:15;6602:422;6691:1;6734:5;6691:1;6748:270;6769:7;6759:8;6756:21;6748:270;;;6828:4;6824:1;6820:6;6816:17;6810:4;6807:27;6804:53;;;6837:18;;:::i;:::-;6887:7;6877:8;6873:22;6870:55;;;6907:16;;;;6870:55;6986:22;;;;6946:15;;;;6748:270;;;6752:3;6602:422;;;;;:::o;7029:806::-;7078:5;7108:8;7098:80;;-1:-1:-1;7149:1:1;7163:5;;7098:80;7197:4;7187:76;;-1:-1:-1;7234:1:1;7248:5;;7187:76;7279:4;7297:1;7292:59;;;;7365:1;7360:130;;;;7272:218;;7292:59;7322:1;7313:10;;7336:5;;;7360:130;7397:3;7387:8;7384:17;7381:43;;;7404:18;;:::i;:::-;-1:-1:-1;;7460:1:1;7446:16;;7475:5;;7272:218;;7574:2;7564:8;7561:16;7555:3;7549:4;7546:13;7542:36;7536:2;7526:8;7523:16;7518:2;7512:4;7509:12;7505:35;7502:77;7499:159;;;-1:-1:-1;7611:19:1;;;7643:5;;7499:159;7690:34;7715:8;7709:4;7690:34;:::i;:::-;7760:6;7756:1;7752:6;7748:19;7739:7;7736:32;7733:58;;;7771:18;;:::i;:::-;7809:20;;7029:806;-1:-1:-1;;;7029:806:1:o;7840:140::-;7898:5;7927:47;7968:4;7958:8;7954:19;7948:4;7927:47;:::i;7985:168::-;8025:7;8091:1;8087;8083:6;8079:14;8076:1;8073:21;8068:1;8061:9;8054:17;8050:45;8047:71;;;8098:18;;:::i;:::-;-1:-1:-1;8138:9:1;;7985:168::o;8158:217::-;8198:1;8224;8214:132;;8268:10;8263:3;8259:20;8256:1;8249:31;8303:4;8300:1;8293:15;8331:4;8328:1;8321:15;8214:132;-1:-1:-1;8360:9:1;;8158:217::o;8716:125::-;8756:4;8784:1;8781;8778:8;8775:34;;;8789:18;;:::i;:::-;-1:-1:-1;8826:9:1;;8716:125::o;11253:128::-;11293:3;11324:1;11320:6;11317:1;11314:13;11311:39;;;11330:18;;:::i;:::-;-1:-1:-1;11366:9:1;;11253:128::o;14960:127::-;15021:10;15016:3;15012:20;15009:1;15002:31;15052:4;15049:1;15042:15;15076:4;15073:1;15066:15;15092:980;15354:4;15402:3;15391:9;15387:19;15433:6;15422:9;15415:25;15459:2;15497:6;15492:2;15481:9;15477:18;15470:34;15540:3;15535:2;15524:9;15520:18;15513:31;15564:6;15599;15593:13;15630:6;15622;15615:22;15668:3;15657:9;15653:19;15646:26;;15707:2;15699:6;15695:15;15681:29;;15728:1;15738:195;15752:6;15749:1;15746:13;15738:195;;;15817:13;;-1:-1:-1;;;;;15813:39:1;15801:52;;15908:15;;;;15873:12;;;;15849:1;15767:9;15738:195;;;-1:-1:-1;;;;;;;15989:32:1;;;;15984:2;15969:18;;15962:60;-1:-1:-1;;;16053:3:1;16038:19;16031:35;15950:3;15092:980;-1:-1:-1;;;15092:980:1:o;16689:306::-;16777:6;16785;16793;16846:2;16834:9;16825:7;16821:23;16817:32;16814:52;;;16862:1;16859;16852:12;16814:52;16891:9;16885:16;16875:26;;16941:2;16930:9;16926:18;16920:25;16910:35;;16985:2;16974:9;16970:18;16964:25;16954:35;;16689:306;;;;;:::o

Swarm Source

ipfs://12f06fd6265d2328391071a43318e2b3927b482dfa3ad3fa59f5a8ce28c37de7

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.