ETH Price: $2,824.67 (+7.39%)
Gas: 14.2 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve187470242023-12-09 6:56:11334 days ago1702104971IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0006459926.62021342
Approve153435142022-08-15 2:47:49815 days ago1660531669IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0009143919.64291754
Approve152713972022-08-03 19:46:59826 days ago1659556019IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0006271613.4726579
Approve152432792022-07-30 10:35:20831 days ago1659177320IN
0xfCBf0fDC...0D17Ee326
0 ETH0.000202474.3495836
Approve152251512022-07-27 14:46:08833 days ago1658933168IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0009780921.01127301
Approve152049752022-07-24 11:10:41837 days ago1658661041IN
0xfCBf0fDC...0D17Ee326
0 ETH0.000216894.65923774
Approve151960482022-07-23 1:44:52838 days ago1658540692IN
0xfCBf0fDC...0D17Ee326
0 ETH0.000361767.7713938
Approve151949422022-07-22 21:39:35838 days ago1658525975IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0006828914.66984507
Approve151942172022-07-22 19:06:30838 days ago1658516790IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0005358911.51197989
Approve151896452022-07-22 2:12:02839 days ago1658455922IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0005178611.12466718
Approve151886732022-07-21 22:28:47839 days ago1658442527IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0007313515.71075642
Approve151886682022-07-21 22:26:40839 days ago1658442400IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0005151811.06718725
Approve151846742022-07-21 7:50:21840 days ago1658389821IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0006255813.43865839
Approve151846412022-07-21 7:42:01840 days ago1658389321IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0003803214.27691477
Approve151846412022-07-21 7:42:01840 days ago1658389321IN
0xfCBf0fDC...0D17Ee326
0 ETH0.000447929.62479302
Approve151790292022-07-20 10:47:48841 days ago1658314068IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0010106321.71037912
Transfer151783862022-07-20 8:20:32841 days ago1658305232IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0010898722.18668144
Approve151770632022-07-20 3:12:09841 days ago1658286729IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0006140413.19074892
Approve Max151768482022-07-20 2:26:49841 days ago1658284009IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0009528120.70521663
Transfer151768392022-07-20 2:23:35841 days ago1658283815IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0007344915.7988841
Transfer151768332022-07-20 2:22:59841 days ago1658283779IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0008446115.74754092
Approve151767582022-07-20 2:07:32841 days ago1658282852IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0007247115.5681476
Approve151758862022-07-19 22:51:27841 days ago1658271087IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0009762620.97186584
Approve151758832022-07-19 22:51:13841 days ago1658271073IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0011454124.60557838
Approve151755132022-07-19 21:28:18841 days ago1658266098IN
0xfCBf0fDC...0D17Ee326
0 ETH0.0015522533.34528094
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
151742082022-07-19 16:48:20841 days ago1658249300
0xfCBf0fDC...0D17Ee326
0.07317425 ETH
151742082022-07-19 16:48:20841 days ago1658249300
0xfCBf0fDC...0D17Ee326
0.07317425 ETH
151733232022-07-19 13:25:15841 days ago1658237115
0xfCBf0fDC...0D17Ee326
0.0618638 ETH
151733232022-07-19 13:25:15841 days ago1658237115
0xfCBf0fDC...0D17Ee326
0.0618638 ETH
151707812022-07-19 3:55:30842 days ago1658202930
0xfCBf0fDC...0D17Ee326
0.05662766 ETH
151707812022-07-19 3:55:30842 days ago1658202930
0xfCBf0fDC...0D17Ee326
0.05662766 ETH
151702032022-07-19 1:52:35842 days ago1658195555
0xfCBf0fDC...0D17Ee326
0.06595287 ETH
151702032022-07-19 1:52:35842 days ago1658195555
0xfCBf0fDC...0D17Ee326
0.06595287 ETH
151700002022-07-19 1:06:34842 days ago1658192794
0xfCBf0fDC...0D17Ee326
0.07497608 ETH
151700002022-07-19 1:06:34842 days ago1658192794
0xfCBf0fDC...0D17Ee326
0.07497608 ETH
151696992022-07-19 0:00:26842 days ago1658188826
0xfCBf0fDC...0D17Ee326
0.10331599 ETH
151696992022-07-19 0:00:26842 days ago1658188826
0xfCBf0fDC...0D17Ee326
0.10331599 ETH
151696962022-07-19 0:00:14842 days ago1658188814
0xfCBf0fDC...0D17Ee326
0.10331599 ETH
151696962022-07-19 0:00:14842 days ago1658188814
0xfCBf0fDC...0D17Ee326
0.10331599 ETH
151694232022-07-18 23:00:46842 days ago1658185246
0xfCBf0fDC...0D17Ee326
0.14310753 ETH
151694232022-07-18 23:00:46842 days ago1658185246
0xfCBf0fDC...0D17Ee326
0.14310753 ETH
151691882022-07-18 22:05:55842 days ago1658181955
0xfCBf0fDC...0D17Ee326
0.1430322 ETH
151691882022-07-18 22:05:55842 days ago1658181955
0xfCBf0fDC...0D17Ee326
0.1430322 ETH
151691012022-07-18 21:44:35842 days ago1658180675
0xfCBf0fDC...0D17Ee326
0.13146389 ETH
151691012022-07-18 21:44:35842 days ago1658180675
0xfCBf0fDC...0D17Ee326
0.13146389 ETH
151690332022-07-18 21:28:55842 days ago1658179735
0xfCBf0fDC...0D17Ee326
0.11257813 ETH
151690332022-07-18 21:28:55842 days ago1658179735
0xfCBf0fDC...0D17Ee326
0.11257813 ETH
151689792022-07-18 21:17:50842 days ago1658179070
0xfCBf0fDC...0D17Ee326
0.1077162 ETH
151689792022-07-18 21:17:50842 days ago1658179070
0xfCBf0fDC...0D17Ee326
0.1077162 ETH
151689092022-07-18 21:01:36842 days ago1658178096
0xfCBf0fDC...0D17Ee326
0.11648511 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CATOKI

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

🌐 https://Catoki.app/
💬 https://t.me/CatokiERC
🐤 https://twitter.com/CatokiERC

*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
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 ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract CATOKI is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "CATOKI";
    string constant _symbol = "CAT";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1 * 10**6 * (10 ** _decimals); // 1 Million

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

    address private marketingFeeReceiver = 0x8E47aAF3936370024297aFf77726552970B94bD5;

    IDEXRouter public router;
    address public pair;

    struct user {
        uint256 firstBuy;
        uint256 lastTradeTime;
    }

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
    mapping(address => bool) public isBot;
    mapping(address => user) public tradeData;

    uint256 liquidityFee = 0;
    uint256 marketingFee = 7;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    bool inSwap;
    bool public swapEnabled = true;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    uint256 public maxWalletAmount = (_totalSupply * 200) / 10000; //2% of Total Supply  
    uint256 public maxSellTransactionAmount = (_totalSupply * 1000) / 100000; //1% of Total Supply
    uint256 public swapThreshold = (_totalSupply * 500) / 100000; //0.5% of Total Supply
    uint256 public sellCooldownSeconds = 1;
    uint256 public sellPercent = 5; //0.05%

    bool private sellLimited = true;
    bool private p2pLimited = true;

    uint256 public startTime;

    modifier checkLimit(address sender, address recipient, uint256 amount) {
        if(!isTxLimitExempt[sender] && recipient == pair) {
            require(sold[sender][getCurrentDay()] + amount <= getUserSellLimit(sender), "Cannot sell or transfer more than limit.");
        }
        _;
    }
    mapping(address => mapping(uint256 => uint256)) public sold;

    constructor () Ownable(msg.sender) {
    
            routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

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

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isFeeExempt[0x8E47aAF3936370024297aFf77726552970B94bD5] = true;
        
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0x8E47aAF3936370024297aFf77726552970B94bD5] = true;
        isTxLimitExempt[DEAD] = true;

        startTime = block.timestamp;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

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

    function getCurrentDay() public view returns (uint256) {
        return minZero(block.timestamp, startTime).div(sellCooldownSeconds);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return
            (_totalSupply - _balances[DEAD]);
    }

    function getUserSellLimitMultiplier(address sender) internal view returns (uint256) {
        uint multiplier;

        if(tradeData[sender].lastTradeTime == 0) {
            multiplier = ((block.timestamp - tradeData[sender].firstBuy) / sellCooldownSeconds).mul(1000);
        } else {
            multiplier = ((block.timestamp - tradeData[sender].lastTradeTime) / sellCooldownSeconds).mul(1000);
        }

        return multiplier < 1000 ? 1000 : multiplier;
    }

    function getUserSellLimit(address sender) public view returns (uint256) {
        uint256 calc = getUserSellLimitMultiplier(sender).div(1000);
        uint256 calc2 = calc.mul(sellPercent);

        return getCirculatingSupply().mul(calc2).div(10000);
    }

    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 _transferFrom(address sender, address recipient, uint256 amount) internal checkLimit(sender, recipient, amount) returns (bool) {
        require(!isBot[sender], "Bot Address");

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

        if(recipient != pair && sender != pair && recipient != DEAD && p2pLimited){
            require(isFeeExempt[recipient] || isFeeExempt[sender] || isTxLimitExempt[recipient] || isTxLimitExempt[sender], "P2P not allowed");
        }

        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= maxWalletAmount, "Transfer amount exceeds the bag size.");
        }

         if(!isTxLimitExempt[recipient] && sender == pair) {
            tradeData[recipient].firstBuy = block.timestamp;
        }

        if(!isTxLimitExempt[sender] && recipient == pair) {
            tradeData[sender].lastTradeTime = block.timestamp;
            sold[sender][getCurrentDay()] = sold[sender][getCurrentDay()].add(amount);
        }
        
        if(shouldSwapBack()){ swapBack(); } 

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

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);

        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

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

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external onlyOwner {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function clearStuckTokens(address _tokenAddr, address _to, uint256 _amount) external onlyOwner {
        require(ERC20(_tokenAddr).transfer(_to, _amount), "Transfer failed");
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function isBots(address botAddress, bool status) external onlyOwner {      
        isBot[botAddress] = status;
    }

    function addBots(address[] calldata botAddress, bool status) external onlyOwner {
        for (uint256 i = 0; i < botAddress.length; i++) {
             isBot[botAddress[i]] = status;
        }      
    }

     function setFees(uint256 _LiquidityFee, uint256 _MarketingFee) external onlyOwner {
        marketingFee = _MarketingFee;
        liquidityFee = _LiquidityFee;
        totalFee = liquidityFee + marketingFee;

        require(totalFee <= 25, "Must keep fees at 25% or less");
    }
  
    function setContractLimits(bool sellLimited_, bool p2pLimited_) external onlyOwner {
        sellLimited = sellLimited_;
        p2pLimited = p2pLimited_;
    }
    
    function viewContractLimits() external view returns (bool isSellLimited, bool isP2PLimited){
        return(sellLimited,p2pLimited);
    }

    function setADMSettings(uint256 sellCooldownSeconds_, uint256 maxSellTransactionAmount_, uint256 sellPercent_) external onlyOwner {
        sellCooldownSeconds = sellCooldownSeconds_;
        maxSellTransactionAmount = maxSellTransactionAmount_;
        sellPercent = sellPercent_;
    }

    function viewADMSettings() external view returns (uint sellCooldownSecs, uint maxSellTransactionAmt, uint256 sellPercentAmt){
        return(sellCooldownSeconds,maxSellTransactionAmount,sellPercent);
    }

    function minZero(uint a, uint b) private pure returns(uint) {
        if (a > b) {
           return a - b; 
        } else {
           return 0;    
        }    
    } 

    event AutoLiquify(uint256 amountETH, uint256 amountBEE);

}

Contract Security Audit

Contract ABI

[{"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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBEE","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"botAddress","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentDay","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":"sender","type":"address"}],"name":"getUserSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"botAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isBots","outputs":[],"stateMutability":"nonpayable","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":[],"name":"maxSellTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellCooldownSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellCooldownSeconds_","type":"uint256"},{"internalType":"uint256","name":"maxSellTransactionAmount_","type":"uint256"},{"internalType":"uint256","name":"sellPercent_","type":"uint256"}],"name":"setADMSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"sellLimited_","type":"bool"},{"internalType":"bool","name":"p2pLimited_","type":"bool"}],"name":"setContractLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_LiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_MarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"sold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tradeData","outputs":[{"internalType":"uint256","name":"firstBuy","type":"uint256"},{"internalType":"uint256","name":"lastTradeTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewADMSettings","outputs":[{"internalType":"uint256","name":"sellCooldownSecs","type":"uint256"},{"internalType":"uint256","name":"maxSellTransactionAmt","type":"uint256"},{"internalType":"uint256","name":"sellPercentAmt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewContractLimits","outputs":[{"internalType":"bool","name":"isSellLimited","type":"bool"},{"internalType":"bool","name":"isP2PLimited","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b03191661dead179055620000266009600a620004ca565b6200003590620f42406200058b565b600355600680546001600160a01b031916738e47aaf3936370024297aff77726552970b94bd51790556000600d8190556007600e819055620000779162000443565b600f5560646010556011805461ff00191661010017905560035461271090620000a29060c86200058b565b620000ae91906200045e565b601255620186a06003546103e8620000c791906200058b565b620000d391906200045e565b601355620186a06003546101f4620000ec91906200058b565b620000f891906200045e565b601455600160155560056016556017805461ffff19166101011790553480156200012157600080fd5b50600080546001600160a01b03199081163317909155600180548216737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556007805490921681179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200019b57600080fd5b505afa158015620001b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d6919062000411565b6001600160a01b031663c9c65396600760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023357600080fd5b505afa15801562000248573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026e919062000411565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002b657600080fd5b505af1158015620002cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f1919062000411565b600880546001600160a01b0319166001600160a01b0392831617905530600090815260056020908152604080832060075485168452825280832060001990558254841680845260098352818420805460ff1990811660019081179092557f8c5f1879530f7a68163ee9536c31dfed56d5ce9c2fc2a54f33c58681e65198658054821683179055600a855283862080548216831790557f8ba084c4220fd5b89834775eacfe0a3894a66548d743b1502be2f90da89737cb80548216831790556002549096168552828520805490961617909455426018556003548484526004835281842081905590519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005c3565b6000602082840312156200042457600080fd5b81516001600160a01b03811681146200043c57600080fd5b9392505050565b60008219821115620004595762000459620005ad565b500190565b6000826200047c57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620004c2578160001904821115620004a657620004a6620005ad565b80851615620004b457918102915b93841c939080029062000486565b509250929050565b60006200043c60ff841683600082620004e65750600162000585565b81620004f55750600062000585565b81600181146200050e5760028114620005195762000539565b600191505062000585565b60ff8411156200052d576200052d620005ad565b50506001821b62000585565b5060208310610133831016604e8410600b84101617156200055e575081810a62000585565b6200056a838362000481565b8060001904821115620005815762000581620005ad565b0290505b92915050565b6000816000190483118215151615620005a857620005a8620005ad565b500290565b634e487b7160e01b600052601160045260246000fd5b61203780620005d36000396000f3fe60806040526004361061023f5760003560e01c8063715018a61161012e578063aa4bde28116100ab578063dd62ed3e1161006f578063dd62ed3e14610735578063e346d64f1461077b578063ec993f5e146107ae578063f1d5f517146107ce578063f887ea40146107ee57600080fd5b8063aa4bde2814610680578063ade927e714610696578063b2fe8a7a146106df578063d05b5a00146106ff578063d36d04971461071f57600080fd5b80639d34a30d116100f25780639d34a30d146105cf578063a0916b82146105ef578063a6af260f1461060f578063a8aa1b3114610640578063a9059cbb1461066057600080fd5b8063715018a61461051657806378e979251461052b578063893d20e8146105415780638b42507f1461057357806395d89b41146105a357600080fd5b8063313ce567116101bc5780633f4218e0116101805780633f4218e014610439578063571ac8b0146104695780635b0833cc146104895780636ddd1713146104c157806370a08231146104e057600080fd5b8063313ce567146103a35780633535cea9146103bf578063364333f4146103df5780633bbac579146103f45780633e6968b61461042457600080fd5b80630eff6427116102035780630eff64271461031457806318160ddd1461032a57806323b872dd1461033f5780632b112e491461035f5780632f54bf6e1461037457600080fd5b806302259e9e1461024b5780630445b6671461027457806306fdde031461028a578063095ea7b3146102c25780630b78f9c0146102f257600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026160135481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b5061026160145481565b34801561029657600080fd5b506040805180820190915260068152654341544f4b4960d01b60208201525b60405161026b9190611e41565b3480156102ce57600080fd5b506102e26102dd366004611cbf565b61080e565b604051901515815260200161026b565b3480156102fe57600080fd5b5061031261030d366004611dc5565b61087b565b005b34801561032057600080fd5b5061026160155481565b34801561033657600080fd5b50600354610261565b34801561034b57600080fd5b506102e261035a366004611c50565b61091b565b34801561036b57600080fd5b506102616109db565b34801561038057600080fd5b506102e261038f366004611bdd565b6000546001600160a01b0391821691161490565b3480156103af57600080fd5b506040516009815260200161026b565b3480156103cb57600080fd5b506102616103da366004611bdd565b610a08565b3480156103eb57600080fd5b50610312610a53565b34801561040057600080fd5b506102e261040f366004611bdd565b600b6020526000908152604090205460ff1681565b34801561043057600080fd5b50610261610ab9565b34801561044557600080fd5b506102e2610454366004611bdd565b60096020526000908152604090205460ff1681565b34801561047557600080fd5b506102e2610484366004611bdd565b610acd565b34801561049557600080fd5b506102616104a4366004611cbf565b601960209081526000928352604080842090915290825290205481565b3480156104cd57600080fd5b506011546102e290610100900460ff1681565b3480156104ec57600080fd5b506102616104fb366004611bdd565b6001600160a01b031660009081526004602052604090205490565b34801561052257600080fd5b50610312610adb565b34801561053757600080fd5b5061026160185481565b34801561054d57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026b565b34801561057f57600080fd5b506102e261058e366004611bdd565b600a6020526000908152604090205460ff1681565b3480156105af57600080fd5b5060408051808201909152600381526210d05560ea1b60208201526102b5565b3480156105db57600080fd5b506103126105ea366004611c50565b610b4a565b3480156105fb57600080fd5b5061031261060a366004611ceb565b610c39565b34801561061b57600080fd5b506015546013546016546040805193845260208401929092529082015260600161026b565b34801561064c57600080fd5b5060085461055b906001600160a01b031681565b34801561066c57600080fd5b506102e261067b366004611cbf565b610cda565b34801561068c57600080fd5b5061026160125481565b3480156106a257600080fd5b506106ca6106b1366004611bdd565b600c602052600090815260409020805460019091015482565b6040805192835260208301919091520161026b565b3480156106eb57600080fd5b506103126106fa366004611d8e565b610cee565b34801561070b57600080fd5b5061031261071a366004611c91565b610d3c565b34801561072b57600080fd5b5061026160165481565b34801561074157600080fd5b50610261610750366004611c17565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561078757600080fd5b5060175460ff8082169161010090041660408051921515835290151560208301520161026b565b3480156107ba57600080fd5b506103126107c9366004611de7565b610d91565b3480156107da57600080fd5b506103126107e9366004611dac565b610dc9565b3480156107fa57600080fd5b5060075461055b906001600160a01b031681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108699086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108ae5760405162461bcd60e51b81526004016108a590611e96565b60405180910390fd5b600e819055600d8290556108c28183611f27565b600f819055601910156109175760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108a5565b5050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146109c8576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526005825283812033825290915291909120546109a3918490610e14565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6109d3848484610e4e565b949350505050565b6002546001600160a01b0316600090815260046020526040812054600354610a039190611f80565b905090565b600080610a206103e8610a1a856113f0565b9061149e565b90506000610a39601654836114e090919063ffffffff16565b90506109d3612710610a1a83610a4d6109db565b906114e0565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016108a590611e96565b6006546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610ab6573d6000803e3d6000fd5b50565b6000610a03601554610a1a4260185461155f565b60006108758260001961080e565b6000546001600160a01b03163314610b055760405162461bcd60e51b81526004016108a590611e96565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610b745760405162461bcd60e51b81526004016108a590611e96565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b158015610bbe57600080fd5b505af1158015610bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf69190611d71565b610c345760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016108a5565b505050565b6000546001600160a01b03163314610c635760405162461bcd60e51b81526004016108a590611e96565b60005b82811015610cd45781600b6000868685818110610c8557610c85611fc8565b9050602002016020810190610c9a9190611bdd565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610ccc81611f97565b915050610c66565b50505050565b6000610ce7338484610e4e565b9392505050565b6000546001600160a01b03163314610d185760405162461bcd60e51b81526004016108a590611e96565b6017805461ffff191692151561ff0019169290921761010091151591909102179055565b6000546001600160a01b03163314610d665760405162461bcd60e51b81526004016108a590611e96565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dbb5760405162461bcd60e51b81526004016108a590611e96565b601592909255601355601655565b6000546001600160a01b03163314610df35760405162461bcd60e51b81526004016108a590611e96565b6103e881600354610e049190611f61565b610e0e9190611f3f565b60125550565b60008184841115610e385760405162461bcd60e51b81526004016108a59190611e41565b506000610e458486611f80565b95945050505050565b6001600160a01b0383166000908152600a602052604081205484908490849060ff16158015610e8a57506008546001600160a01b038381169116145b15610f3257610e9883610a08565b6001600160a01b03841660009081526019602052604081208391610eba610ab9565b815260200190815260200160002054610ed39190611f27565b1115610f325760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073656c6c206f72207472616e73666572206d6f72652074686160448201526737103634b6b4ba1760c11b60648201526084016108a5565b6001600160a01b0387166000908152600b602052604090205460ff1615610f895760405162461bcd60e51b815260206004820152600b60248201526a426f74204164647265737360a81b60448201526064016108a5565b60115460ff1615610fa657610f9f878787611582565b93506113e6565b6008546001600160a01b03878116911614801590610fd257506008546001600160a01b03888116911614155b8015610fec57506002546001600160a01b03878116911614155b8015610fff5750601754610100900460ff165b156110c7576001600160a01b03861660009081526009602052604090205460ff168061104357506001600160a01b03871660009081526009602052604090205460ff165b8061106657506001600160a01b0386166000908152600a602052604090205460ff165b8061108957506001600160a01b0387166000908152600a602052604090205460ff165b6110c75760405162461bcd60e51b815260206004820152600f60248201526e140c94081b9bdd08185b1b1bddd959608a1b60448201526064016108a5565b6008546001600160a01b038781169116148015906110f357506002546001600160a01b03878116911614155b1561119e576001600160a01b0386166000908152600a602052604090205460ff168061114457506012546001600160a01b038716600090815260046020526040902054611141908790611f27565b11155b61119e5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016108a5565b6001600160a01b0386166000908152600a602052604090205460ff161580156111d457506008546001600160a01b038881169116145b156111f5576001600160a01b0386166000908152600c602052604090204290555b6001600160a01b0387166000908152600a602052604090205460ff1615801561122b57506008546001600160a01b038781169116145b156112b8576001600160a01b0387166000908152600c60209081526040808320426001909101556019909152812061128591879190611268610ab9565b81526020019081526020016000205461166890919063ffffffff16565b6001600160a01b0388166000908152601960205260408120906112a6610ab9565b81526020810191909152604001600020555b6112c06116c7565b156112cd576112cd61171b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a1660009081526004909152919091205461131f918790610e14565b6001600160a01b038816600090815260046020908152604080832093909355600990529081205460ff1615611354578561135e565b61135e8887611acf565b6001600160a01b0388166000908152600460205260409020549091506113849082611668565b6001600160a01b0380891660008181526004602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113d89085815260200190565b60405180910390a360019450505b5050509392505050565b6001600160a01b0381166000908152600c60205260408120600101548190611451576015546001600160a01b0384166000908152600c602052604090205461144a916103e8916114409042611f80565b610a4d9190611f3f565b9050611485565b6015546001600160a01b0384166000908152600c6020526040902060010154611482916103e8916114409042611f80565b90505b6103e881106114945780610ce7565b6103e89392505050565b6000610ce783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b6d565b6000826114ef57506000610875565b60006114fb8385611f61565b9050826115088583611f3f565b14610ce75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108a5565b60008183111561157a576115738284611f80565b9050610875565b506000610875565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546115d3918490610e14565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546116029083611668565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116569086815260200190565b60405180910390a35060019392505050565b6000806116758385611f27565b905083811015610ce75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108a5565b6008546000906001600160a01b031633148015906116e8575060115460ff16155b80156116fb5750601154610100900460ff165b8015610a0357505060145430600090815260046020526040902054101590565b6011805460ff19166001179055601454600f54600d5460009161174891600291610a1a91829087906114e0565b905060006117568383611b9b565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061179057611790611fc8565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156117e457600080fd5b505afa1580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190611bfa565b8160018151811061182f5761182f611fc8565b6001600160a01b03928316602091820292909201015260075460405163791ac94760e01b81524792919091169063791ac94790611879908690600090879030904290600401611eb6565b600060405180830381600087803b15801561189357600080fd5b505af11580156118a7573d6000803e3d6000fd5b5050505060006118c08247611b9b90919063ffffffff16565b905060006118e66118dd6002600d5461149e90919063ffffffff16565b600f5490611b9b565b905060006119086002610a1a84610a1a600d54886114e090919063ffffffff16565b9050600061192583610a1a600e54876114e090919063ffffffff16565b6006546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461197c576040519150601f19603f3d011682016040523d82523d6000602084013e611981565b606091505b50509050806119d25760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016108a5565b8815611ab95760075460065460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b158015611a4357600080fd5b505af1158015611a57573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a7c9190611e13565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080611aed601054610a1a600f54866114e090919063ffffffff16565b30600090815260046020526040902054909150611b0a9082611668565b30600081815260046020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b5b9085815260200190565b60405180910390a36109d38382611b9b565b60008183611b8e5760405162461bcd60e51b81526004016108a59190611e41565b506000610e458486611f3f565b6000610ce783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e14565b600060208284031215611bef57600080fd5b8135610ce781611fde565b600060208284031215611c0c57600080fd5b8151610ce781611fde565b60008060408385031215611c2a57600080fd5b8235611c3581611fde565b91506020830135611c4581611fde565b809150509250929050565b600080600060608486031215611c6557600080fd5b8335611c7081611fde565b92506020840135611c8081611fde565b929592945050506040919091013590565b60008060408385031215611ca457600080fd5b8235611caf81611fde565b91506020830135611c4581611ff3565b60008060408385031215611cd257600080fd5b8235611cdd81611fde565b946020939093013593505050565b600080600060408486031215611d0057600080fd5b833567ffffffffffffffff80821115611d1857600080fd5b818601915086601f830112611d2c57600080fd5b813581811115611d3b57600080fd5b8760208260051b8501011115611d5057600080fd5b60209283019550935050840135611d6681611ff3565b809150509250925092565b600060208284031215611d8357600080fd5b8151610ce781611ff3565b60008060408385031215611da157600080fd5b8235611caf81611ff3565b600060208284031215611dbe57600080fd5b5035919050565b60008060408385031215611dd857600080fd5b50508035926020909101359150565b600080600060608486031215611dfc57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611e2857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611e6e57858101830151858201604001528201611e52565b81811115611e80576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f065784516001600160a01b031683529383019391830191600101611ee1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f3a57611f3a611fb2565b500190565b600082611f5c57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f7b57611f7b611fb2565b500290565b600082821015611f9257611f92611fb2565b500390565b6000600019821415611fab57611fab611fb2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610ab657600080fd5b8015158114610ab657600080fdfea264697066735822122097b40b66f500d3868fca6aae3d010d92c3e918ca4c3f407a163328f8ea57c14564736f6c63430008050033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c8063715018a61161012e578063aa4bde28116100ab578063dd62ed3e1161006f578063dd62ed3e14610735578063e346d64f1461077b578063ec993f5e146107ae578063f1d5f517146107ce578063f887ea40146107ee57600080fd5b8063aa4bde2814610680578063ade927e714610696578063b2fe8a7a146106df578063d05b5a00146106ff578063d36d04971461071f57600080fd5b80639d34a30d116100f25780639d34a30d146105cf578063a0916b82146105ef578063a6af260f1461060f578063a8aa1b3114610640578063a9059cbb1461066057600080fd5b8063715018a61461051657806378e979251461052b578063893d20e8146105415780638b42507f1461057357806395d89b41146105a357600080fd5b8063313ce567116101bc5780633f4218e0116101805780633f4218e014610439578063571ac8b0146104695780635b0833cc146104895780636ddd1713146104c157806370a08231146104e057600080fd5b8063313ce567146103a35780633535cea9146103bf578063364333f4146103df5780633bbac579146103f45780633e6968b61461042457600080fd5b80630eff6427116102035780630eff64271461031457806318160ddd1461032a57806323b872dd1461033f5780632b112e491461035f5780632f54bf6e1461037457600080fd5b806302259e9e1461024b5780630445b6671461027457806306fdde031461028a578063095ea7b3146102c25780630b78f9c0146102f257600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026160135481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b5061026160145481565b34801561029657600080fd5b506040805180820190915260068152654341544f4b4960d01b60208201525b60405161026b9190611e41565b3480156102ce57600080fd5b506102e26102dd366004611cbf565b61080e565b604051901515815260200161026b565b3480156102fe57600080fd5b5061031261030d366004611dc5565b61087b565b005b34801561032057600080fd5b5061026160155481565b34801561033657600080fd5b50600354610261565b34801561034b57600080fd5b506102e261035a366004611c50565b61091b565b34801561036b57600080fd5b506102616109db565b34801561038057600080fd5b506102e261038f366004611bdd565b6000546001600160a01b0391821691161490565b3480156103af57600080fd5b506040516009815260200161026b565b3480156103cb57600080fd5b506102616103da366004611bdd565b610a08565b3480156103eb57600080fd5b50610312610a53565b34801561040057600080fd5b506102e261040f366004611bdd565b600b6020526000908152604090205460ff1681565b34801561043057600080fd5b50610261610ab9565b34801561044557600080fd5b506102e2610454366004611bdd565b60096020526000908152604090205460ff1681565b34801561047557600080fd5b506102e2610484366004611bdd565b610acd565b34801561049557600080fd5b506102616104a4366004611cbf565b601960209081526000928352604080842090915290825290205481565b3480156104cd57600080fd5b506011546102e290610100900460ff1681565b3480156104ec57600080fd5b506102616104fb366004611bdd565b6001600160a01b031660009081526004602052604090205490565b34801561052257600080fd5b50610312610adb565b34801561053757600080fd5b5061026160185481565b34801561054d57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026b565b34801561057f57600080fd5b506102e261058e366004611bdd565b600a6020526000908152604090205460ff1681565b3480156105af57600080fd5b5060408051808201909152600381526210d05560ea1b60208201526102b5565b3480156105db57600080fd5b506103126105ea366004611c50565b610b4a565b3480156105fb57600080fd5b5061031261060a366004611ceb565b610c39565b34801561061b57600080fd5b506015546013546016546040805193845260208401929092529082015260600161026b565b34801561064c57600080fd5b5060085461055b906001600160a01b031681565b34801561066c57600080fd5b506102e261067b366004611cbf565b610cda565b34801561068c57600080fd5b5061026160125481565b3480156106a257600080fd5b506106ca6106b1366004611bdd565b600c602052600090815260409020805460019091015482565b6040805192835260208301919091520161026b565b3480156106eb57600080fd5b506103126106fa366004611d8e565b610cee565b34801561070b57600080fd5b5061031261071a366004611c91565b610d3c565b34801561072b57600080fd5b5061026160165481565b34801561074157600080fd5b50610261610750366004611c17565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561078757600080fd5b5060175460ff8082169161010090041660408051921515835290151560208301520161026b565b3480156107ba57600080fd5b506103126107c9366004611de7565b610d91565b3480156107da57600080fd5b506103126107e9366004611dac565b610dc9565b3480156107fa57600080fd5b5060075461055b906001600160a01b031681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108699086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108ae5760405162461bcd60e51b81526004016108a590611e96565b60405180910390fd5b600e819055600d8290556108c28183611f27565b600f819055601910156109175760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108a5565b5050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146109c8576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526005825283812033825290915291909120546109a3918490610e14565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6109d3848484610e4e565b949350505050565b6002546001600160a01b0316600090815260046020526040812054600354610a039190611f80565b905090565b600080610a206103e8610a1a856113f0565b9061149e565b90506000610a39601654836114e090919063ffffffff16565b90506109d3612710610a1a83610a4d6109db565b906114e0565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016108a590611e96565b6006546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610ab6573d6000803e3d6000fd5b50565b6000610a03601554610a1a4260185461155f565b60006108758260001961080e565b6000546001600160a01b03163314610b055760405162461bcd60e51b81526004016108a590611e96565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610b745760405162461bcd60e51b81526004016108a590611e96565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b158015610bbe57600080fd5b505af1158015610bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf69190611d71565b610c345760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016108a5565b505050565b6000546001600160a01b03163314610c635760405162461bcd60e51b81526004016108a590611e96565b60005b82811015610cd45781600b6000868685818110610c8557610c85611fc8565b9050602002016020810190610c9a9190611bdd565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610ccc81611f97565b915050610c66565b50505050565b6000610ce7338484610e4e565b9392505050565b6000546001600160a01b03163314610d185760405162461bcd60e51b81526004016108a590611e96565b6017805461ffff191692151561ff0019169290921761010091151591909102179055565b6000546001600160a01b03163314610d665760405162461bcd60e51b81526004016108a590611e96565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dbb5760405162461bcd60e51b81526004016108a590611e96565b601592909255601355601655565b6000546001600160a01b03163314610df35760405162461bcd60e51b81526004016108a590611e96565b6103e881600354610e049190611f61565b610e0e9190611f3f565b60125550565b60008184841115610e385760405162461bcd60e51b81526004016108a59190611e41565b506000610e458486611f80565b95945050505050565b6001600160a01b0383166000908152600a602052604081205484908490849060ff16158015610e8a57506008546001600160a01b038381169116145b15610f3257610e9883610a08565b6001600160a01b03841660009081526019602052604081208391610eba610ab9565b815260200190815260200160002054610ed39190611f27565b1115610f325760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073656c6c206f72207472616e73666572206d6f72652074686160448201526737103634b6b4ba1760c11b60648201526084016108a5565b6001600160a01b0387166000908152600b602052604090205460ff1615610f895760405162461bcd60e51b815260206004820152600b60248201526a426f74204164647265737360a81b60448201526064016108a5565b60115460ff1615610fa657610f9f878787611582565b93506113e6565b6008546001600160a01b03878116911614801590610fd257506008546001600160a01b03888116911614155b8015610fec57506002546001600160a01b03878116911614155b8015610fff5750601754610100900460ff165b156110c7576001600160a01b03861660009081526009602052604090205460ff168061104357506001600160a01b03871660009081526009602052604090205460ff165b8061106657506001600160a01b0386166000908152600a602052604090205460ff165b8061108957506001600160a01b0387166000908152600a602052604090205460ff165b6110c75760405162461bcd60e51b815260206004820152600f60248201526e140c94081b9bdd08185b1b1bddd959608a1b60448201526064016108a5565b6008546001600160a01b038781169116148015906110f357506002546001600160a01b03878116911614155b1561119e576001600160a01b0386166000908152600a602052604090205460ff168061114457506012546001600160a01b038716600090815260046020526040902054611141908790611f27565b11155b61119e5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016108a5565b6001600160a01b0386166000908152600a602052604090205460ff161580156111d457506008546001600160a01b038881169116145b156111f5576001600160a01b0386166000908152600c602052604090204290555b6001600160a01b0387166000908152600a602052604090205460ff1615801561122b57506008546001600160a01b038781169116145b156112b8576001600160a01b0387166000908152600c60209081526040808320426001909101556019909152812061128591879190611268610ab9565b81526020019081526020016000205461166890919063ffffffff16565b6001600160a01b0388166000908152601960205260408120906112a6610ab9565b81526020810191909152604001600020555b6112c06116c7565b156112cd576112cd61171b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a1660009081526004909152919091205461131f918790610e14565b6001600160a01b038816600090815260046020908152604080832093909355600990529081205460ff1615611354578561135e565b61135e8887611acf565b6001600160a01b0388166000908152600460205260409020549091506113849082611668565b6001600160a01b0380891660008181526004602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113d89085815260200190565b60405180910390a360019450505b5050509392505050565b6001600160a01b0381166000908152600c60205260408120600101548190611451576015546001600160a01b0384166000908152600c602052604090205461144a916103e8916114409042611f80565b610a4d9190611f3f565b9050611485565b6015546001600160a01b0384166000908152600c6020526040902060010154611482916103e8916114409042611f80565b90505b6103e881106114945780610ce7565b6103e89392505050565b6000610ce783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b6d565b6000826114ef57506000610875565b60006114fb8385611f61565b9050826115088583611f3f565b14610ce75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108a5565b60008183111561157a576115738284611f80565b9050610875565b506000610875565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546115d3918490610e14565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546116029083611668565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116569086815260200190565b60405180910390a35060019392505050565b6000806116758385611f27565b905083811015610ce75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108a5565b6008546000906001600160a01b031633148015906116e8575060115460ff16155b80156116fb5750601154610100900460ff165b8015610a0357505060145430600090815260046020526040902054101590565b6011805460ff19166001179055601454600f54600d5460009161174891600291610a1a91829087906114e0565b905060006117568383611b9b565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061179057611790611fc8565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156117e457600080fd5b505afa1580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190611bfa565b8160018151811061182f5761182f611fc8565b6001600160a01b03928316602091820292909201015260075460405163791ac94760e01b81524792919091169063791ac94790611879908690600090879030904290600401611eb6565b600060405180830381600087803b15801561189357600080fd5b505af11580156118a7573d6000803e3d6000fd5b5050505060006118c08247611b9b90919063ffffffff16565b905060006118e66118dd6002600d5461149e90919063ffffffff16565b600f5490611b9b565b905060006119086002610a1a84610a1a600d54886114e090919063ffffffff16565b9050600061192583610a1a600e54876114e090919063ffffffff16565b6006546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461197c576040519150601f19603f3d011682016040523d82523d6000602084013e611981565b606091505b50509050806119d25760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016108a5565b8815611ab95760075460065460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b158015611a4357600080fd5b505af1158015611a57573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a7c9190611e13565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080611aed601054610a1a600f54866114e090919063ffffffff16565b30600090815260046020526040902054909150611b0a9082611668565b30600081815260046020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b5b9085815260200190565b60405180910390a36109d38382611b9b565b60008183611b8e5760405162461bcd60e51b81526004016108a59190611e41565b506000610e458486611f3f565b6000610ce783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e14565b600060208284031215611bef57600080fd5b8135610ce781611fde565b600060208284031215611c0c57600080fd5b8151610ce781611fde565b60008060408385031215611c2a57600080fd5b8235611c3581611fde565b91506020830135611c4581611fde565b809150509250929050565b600080600060608486031215611c6557600080fd5b8335611c7081611fde565b92506020840135611c8081611fde565b929592945050506040919091013590565b60008060408385031215611ca457600080fd5b8235611caf81611fde565b91506020830135611c4581611ff3565b60008060408385031215611cd257600080fd5b8235611cdd81611fde565b946020939093013593505050565b600080600060408486031215611d0057600080fd5b833567ffffffffffffffff80821115611d1857600080fd5b818601915086601f830112611d2c57600080fd5b813581811115611d3b57600080fd5b8760208260051b8501011115611d5057600080fd5b60209283019550935050840135611d6681611ff3565b809150509250925092565b600060208284031215611d8357600080fd5b8151610ce781611ff3565b60008060408385031215611da157600080fd5b8235611caf81611ff3565b600060208284031215611dbe57600080fd5b5035919050565b60008060408385031215611dd857600080fd5b50508035926020909101359150565b600080600060608486031215611dfc57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611e2857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611e6e57858101830151858201604001528201611e52565b81811115611e80576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f065784516001600160a01b031683529383019391830191600101611ee1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f3a57611f3a611fb2565b500190565b600082611f5c57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f7b57611f7b611fb2565b500290565b600082821015611f9257611f92611fb2565b500390565b6000600019821415611fab57611fab611fb2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610ab657600080fd5b8015158114610ab657600080fdfea264697066735822122097b40b66f500d3868fca6aae3d010d92c3e918ca4c3f407a163328f8ea57c14564736f6c63430008050033

Deployed Bytecode Sourcemap

4186:12127:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5451:72;;;;;;;;;;;;;;;;;;;10939:25:1;;;10927:2;10912:18;5451:72:0;;;;;;;;5551:60;;;;;;;;;;;;;;;;7314:80;;;;;;;;;;-1:-1:-1;7386:5:0;;;;;;;;;;;;-1:-1:-1;;;7386:5:0;;;;7314:80;;;;;;;:::i;7736:216::-;;;;;;;;;;-1:-1:-1;7736:216:0;;;;;:::i;:::-;;:::i;:::-;;;6013:14:1;;6006:22;5988:41;;5976:2;5961:18;7736:216:0;5943:92:1;14934:286:0;;;;;;;;;;-1:-1:-1;14934:286:0;;;;;:::i;:::-;;:::i;:::-;;5641:38;;;;;;;;;;;;;;;;7044:88;;;;;;;;;;-1:-1:-1;7117:12:0;;7044:88;;9301:370;;;;;;;;;;-1:-1:-1;9301:370:0;;;;;:::i;:::-;;:::i;8239:133::-;;;;;;;;;;;;;:::i;2424:103::-;;;;;;;;;;-1:-1:-1;2424:103:0;;;;;:::i;:::-;2479:4;2514:5;-1:-1:-1;;;;;2503:16:0;;;2514:5;;2503:16;;2424:103;7138:80;;;;;;;;;;-1:-1:-1;7138:80:0;;4457:1;12679:36:1;;12667:2;12652:18;7138:80:0;12634:87:1;8867:262:0;;;;;;;;;;-1:-1:-1;8867:262:0;;;;;:::i;:::-;;:::i;14114:128::-;;;;;;;;;;;;;:::i;4994:37::-;;;;;;;;;;-1:-1:-1;4994:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8090:141;;;;;;;;;;;;;:::i;4890:43::-;;;;;;;;;;-1:-1:-1;4890:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7960:122;;;;;;;;;;-1:-1:-1;7960:122:0;;;;;:::i;:::-;;:::i;6146:59::-;;;;;;;;;;-1:-1:-1;6146:59:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5258:30;;;;;;;;;;-1:-1:-1;5258:30:0;;;;;;;;;;;7484:105;;;;;;;;;;-1:-1:-1;7484:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7568:18:0;7550:7;7568:18;;;:9;:18;;;;;;;7484:105;2533:131;;;;;;;;;;;;;:::i;5810:24::-;;;;;;;;;;;;;;;;7400:78;;;;;;;;;;-1:-1:-1;7452:7:0;7470:5;-1:-1:-1;;;;;7470:5:0;7400:78;;;-1:-1:-1;;;;;4913:32:1;;;4895:51;;4883:2;4868:18;7400:78:0;4850:102:1;4940:47:0;;;;;;;;;;-1:-1:-1;4940:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7224:84;;;;;;;;;;-1:-1:-1;7298:7:0;;;;;;;;;;;;-1:-1:-1;;;7298:7:0;;;;7224:84;;14250:182;;;;;;;;;;-1:-1:-1;14250:182:0;;;;;:::i;:::-;;:::i;14716:209::-;;;;;;;;;;-1:-1:-1;14716:209:0;;;;;:::i;:::-;;:::i;15852:207::-;;;;;;;;;;-1:-1:-1;15994:19:0;;16014:24;;16039:11;;15852:207;;;12415:25:1;;;12471:2;12456:18;;12449:34;;;;12499:18;;;12492:34;12403:2;12388:18;15852:207:0;12370:162:1;4775:19:0;;;;;;;;;;-1:-1:-1;4775:19:0;;;;-1:-1:-1;;;;;4775:19:0;;;9137:156;;;;;;;;;;-1:-1:-1;9137:156:0;;;;;:::i;:::-;;:::i;5360:61::-;;;;;;;;;;;;;;;;5038:41;;;;;;;;;;-1:-1:-1;5038:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;12134:25:1;;;12190:2;12175:18;;12168:34;;;;12107:18;5038:41:0;12089:119:1;15230:163:0;;;;;;;;;;-1:-1:-1;15230:163:0;;;;;:::i;:::-;;:::i;14589:119::-;;;;;;;;;;-1:-1:-1;14589:119:0;;;;;:::i;:::-;;:::i;5686:30::-;;;;;;;;;;;;;;;;7595:133;;;;;;;;;;-1:-1:-1;7595:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7697:19:0;;;7679:7;7697:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7595:133;15405:140;;;;;;;;;;-1:-1:-1;15514:11:0;;;;;;;;15526:10;;;15405:140;;;6227:14:1;;6220:22;6202:41;;6286:14;;6279:22;6274:2;6259:18;;6252:50;6175:18;15405:140:0;6157:151:1;15553:291:0;;;;;;;;;;-1:-1:-1;15553:291:0;;;;;:::i;:::-;;:::i;14440:141::-;;;;;;;;;;-1:-1:-1;14440:141:0;;;;;:::i;:::-;;:::i;4744:24::-;;;;;;;;;;-1:-1:-1;4744:24:0;;;;-1:-1:-1;;;;;4744:24:0;;;7736:216;7840:10;7811:4;7828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7828:32:0;;;;;;;;;;:41;;;7885:37;7811:4;;7828:32;;7885:37;;;;7863:6;10939:25:1;;10927:2;10912:18;;10894:76;7885:37:0;;;;;;;;-1:-1:-1;7940:4:0;7736:216;;;;;:::o;14934:286::-;2479:4;2514:5;-1:-1:-1;;;;;2514:5:0;2385:10;2503:16;2369:38;;;;-1:-1:-1;;;2369:38:0;;;;;;;:::i;:::-;;;;;;;;;15027:12:::1;:28:::0;;;15066:12:::1;:28:::0;;;15116:27:::1;15042:13:::0;15081;15116:27:::1;:::i;:::-;15105:8;:38:::0;;;15176:2:::1;-1:-1:-1::0;15164:14:0::1;15156:56;;;::::0;-1:-1:-1;;;15156:56:0;;10228:2:1;15156:56:0::1;::::0;::::1;10210:21:1::0;10267:2;10247:18;;;10240:30;10306:31;10286:18;;;10279:59;10355:18;;15156:56:0::1;10200:179:1::0;15156:56:0::1;14934:286:::0;;:::o;9301:370::-;-1:-1:-1;;;;;9421:19:0;;9401:4;9421:19;;;:11;:19;;;;;;;;9441:10;9421:31;;;;;;;;-1:-1:-1;;9421:52:0;9418:186;;9523:69;;;;;;;;;;;-1:-1:-1;;;9523:69:0;;;;;;;;-1:-1:-1;;;;;9523:19:0;;-1:-1:-1;9523:19:0;;;:11;:19;;;;;9543:10;9523:31;;;;;;;;;;:69;;9559:6;;9523:35;:69::i;:::-;-1:-1:-1;;;;;9489:19:0;;;;;;:11;:19;;;;;;;;9509:10;9489:31;;;;;;;:103;9418:186;9623:40;9637:6;9645:9;9656:6;9623:13;:40::i;:::-;9616:47;9301:370;-1:-1:-1;;;;9301:370:0:o;8239:133::-;8358:4;;-1:-1:-1;;;;;8358:4:0;8292:7;8348:15;;;:9;:15;;;;;;8333:12;;:30;;8348:15;8333:30;:::i;:::-;8312:52;;8239:133;:::o;8867:262::-;8930:7;8950:12;8965:44;9004:4;8965:34;8992:6;8965:26;:34::i;:::-;:38;;:44::i;:::-;8950:59;;9020:13;9036:21;9045:11;;9036:4;:8;;:21;;;;:::i;:::-;9020:37;;9077:44;9115:5;9077:33;9104:5;9077:22;:20;:22::i;:::-;:26;;:33::i;14114:128::-;2479:4;2514:5;-1:-1:-1;;;;;2514:5:0;2385:10;2503:16;2369:38;;;;-1:-1:-1;;;2369:38:0;;;;;;;:::i;:::-;14181:20:::1;::::0;14173:61:::1;::::0;-1:-1:-1;;;;;14181:20:0;;::::1;::::0;14212:21:::1;14173:61:::0;::::1;;;::::0;14181:20:::1;14173:61:::0;14181:20;14173:61;14212:21;14181:20;14173:61;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14114:128::o:0;8090:141::-;8136:7;8163:60;8203:19;;8163:35;8171:15;8188:9;;8163:7;:35::i;7960:122::-;8015:4;8039:35;8047:7;-1:-1:-1;;8039:7:0;:35::i;2533:131::-;2479:4;2514:5;-1:-1:-1;;;;;2514:5:0;2385:10;2503:16;2369:38;;;;-1:-1:-1;;;2369:38:0;;;;;;;:::i;:::-;2606:1:::1;2590:18:::0;;-1:-1:-1;;;;;;2590:18:0::1;::::0;;2624:32:::1;::::0;4895:51:1;;;2624:32:0::1;::::0;4883:2:1;4868:18;2624:32:0::1;;;;;;;2533:131::o:0;14250:182::-;2479:4;2514:5;-1:-1:-1;;;;;2514:5:0;2385:10;2503:16;2369:38;;;;-1:-1:-1;;;2369:38:0;;;;;;;:::i;:::-;14364:40:::1;::::0;-1:-1:-1;;;14364:40:0;;-1:-1:-1;;;;;5149:32:1;;;14364:40:0::1;::::0;::::1;5131:51:1::0;5198:18;;;5191:34;;;14364:26:0;::::1;::::0;::::1;::::0;5104:18:1;;14364:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14356:68;;;::::0;-1:-1:-1;;;14356:68:0;;7749:2:1;14356:68:0::1;::::0;::::1;7731:21:1::0;7788:2;7768:18;;;7761:30;-1:-1:-1;;;7807:18:1;;;7800:45;7862:18;;14356:68:0::1;7721:165:1::0;14356:68:0::1;14250:182:::0;;;:::o;14716:209::-;2479:4;2514:5;-1:-1:-1;;;;;2514:5:0;2385:10;2503:16;2369:38;;;;-1:-1:-1;;;2369:38:0;;;;;;;:::i;:::-;14812:9:::1;14807:105;14827:21:::0;;::::1;14807:105;;;14894:6;14871:5;:20;14877:10;;14888:1;14877:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14871:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14871:20:0;:29;;-1:-1:-1;;14871:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14850:3;::::1;::::0;::::1;:::i;:::-;;;;14807:105;;;;14716:209:::0;;;:::o;9137:156::-;9217:4;9241:44;9255:10;9267:9;9278:6;9241:13;:44::i;:::-;9234:51;9137:156;-1:-1:-1;;;9137:156:0:o;15230:163::-;2479:4;2514:5;-1:-1:-1;;;;;2514:5:0;2385:10;2503:16;2369:38;;;;-1:-1:-1;;;2369:38:0;;;;;;;:::i;:::-;15324:11:::1;:26:::0;;-1:-1:-1;;15361:24:0;15324:26;::::1;;-1:-1:-1::0;;15361:24:0;;;;;15324:26:::1;15361:24:::0;::::1;;::::0;;;::::1;;::::0;;15230:163::o;14589:119::-;2479:4;2514:5;-1:-1:-1;;;;;2514:5:0;2385:10;2503:16;2369:38;;;;-1:-1:-1;;;2369:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14674:17:0;;;::::1;;::::0;;;:5:::1;:17;::::0;;;;:26;;-1:-1:-1;;14674:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14589:119::o;15553:291::-;2479:4;2514:5;-1:-1:-1;;;;;2514:5:0;2385:10;2503:16;2369:38;;;;-1:-1:-1;;;2369:38:0;;;;;;;:::i;:::-;15694:19:::1;:42:::0;;;;15747:24:::1;:52:::0;15810:11:::1;:26:::0;15553:291::o;14440:141::-;2479:4;2514:5;-1:-1:-1;;;;;2514:5:0;2385:10;2503:16;2369:38;;;;-1:-1:-1;;;2369:38:0;;;;;;;:::i;:::-;14569:4:::1;14551:13;14536:12;;:28;;;;:::i;:::-;14535:38;;;;:::i;:::-;14517:15;:56:::0;-1:-1:-1;14440:141:0:o;513:190::-;599:7;635:12;627:6;;;;619:29;;;;-1:-1:-1;;;619:29:0;;;;;;;;:::i;:::-;-1:-1:-1;659:9:0;671:5;675:1;671;:5;:::i;:::-;659:17;513:190;-1:-1:-1;;;;;513:190:0:o;9679:1487::-;-1:-1:-1;;;;;5929:23:0;;9809:4;5929:23;;;:15;:23;;;;;;9773:6;;9781:9;;9792:6;;5929:23;;5928:24;:45;;;;-1:-1:-1;5969:4:0;;-1:-1:-1;;;;;5956:17:0;;;5969:4;;5956:17;5928:45;5925:196;;;6040:24;6057:6;6040:16;:24::i;:::-;-1:-1:-1;;;;;5998:12:0;;;;;;:4;:12;;;;;6030:6;;6011:15;:13;:15::i;:::-;5998:29;;;;;;;;;;;;:38;;;;:::i;:::-;:66;;5990:119;;;;-1:-1:-1;;;5990:119:0;;10586:2:1;5990:119:0;;;10568:21:1;10625:2;10605:18;;;10598:30;10664:34;10644:18;;;10637:62;-1:-1:-1;;;10715:18:1;;;10708:38;10763:19;;5990:119:0;10558:230:1;5990:119:0;-1:-1:-1;;;;;9835:13:0;::::1;;::::0;;;:5:::1;:13;::::0;;;;;::::1;;9834:14;9826:38;;;::::0;-1:-1:-1;;;9826:38:0;;9888:2:1;9826:38:0::1;::::0;::::1;9870:21:1::0;9927:2;9907:18;;;9900:30;-1:-1:-1;;;9946:18:1;;;9939:41;9997:18;;9826:38:0::1;9860:161:1::0;9826:38:0::1;9880:6;::::0;::::1;;9877:63;;;9896:41;9911:6;9919:9;9930:6;9896:14;:41::i;:::-;9889:48;;;;9877:63;9968:4;::::0;-1:-1:-1;;;;;9955:17:0;;::::1;9968:4:::0;::::1;9955:17;::::0;::::1;::::0;:35:::1;;-1:-1:-1::0;9986:4:0::1;::::0;-1:-1:-1;;;;;9976:14:0;;::::1;9986:4:::0;::::1;9976:14;;9955:35;:56;;;;-1:-1:-1::0;10007:4:0::1;::::0;-1:-1:-1;;;;;9994:17:0;;::::1;10007:4:::0;::::1;9994:17;;9955:56;:70;;;;-1:-1:-1::0;10015:10:0::1;::::0;::::1;::::0;::::1;;;9955:70;9952:231;;;-1:-1:-1::0;;;;;10049:22:0;::::1;;::::0;;;:11:::1;:22;::::0;;;;;::::1;;::::0;:45:::1;;-1:-1:-1::0;;;;;;10075:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;::::1;;10049:45;:75;;;-1:-1:-1::0;;;;;;10098:26:0;::::1;;::::0;;;:15:::1;:26;::::0;;;;;::::1;;10049:75;:102;;;-1:-1:-1::0;;;;;;10128:23:0;::::1;;::::0;;;:15:::1;:23;::::0;;;;;::::1;;10049:102;10041:130;;;::::0;-1:-1:-1;;;10041:130:0;;9544:2:1;10041:130:0::1;::::0;::::1;9526:21:1::0;9583:2;9563:18;;;9556:30;-1:-1:-1;;;9602:18:1;;;9595:45;9657:18;;10041:130:0::1;9516:165:1::0;10041:130:0::1;10212:4;::::0;-1:-1:-1;;;;;10199:17:0;;::::1;10212:4:::0;::::1;10199:17;::::0;::::1;::::0;:38:::1;;-1:-1:-1::0;10233:4:0::1;::::0;-1:-1:-1;;;;;10220:17:0;;::::1;10233:4:::0;::::1;10220:17;;10199:38;10195:199;;;-1:-1:-1::0;;;;;10262:26:0;::::1;;::::0;;;:15:::1;:26;::::0;;;;;::::1;;::::0;:78:::1;;-1:-1:-1::0;10325:15:0::1;::::0;-1:-1:-1;;;;;10292:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;:29:::1;::::0;10315:6;;10292:29:::1;:::i;:::-;:48;;10262:78;10254:128;;;::::0;-1:-1:-1;;;10254:128:0;;7343:2:1;10254:128:0::1;::::0;::::1;7325:21:1::0;7382:2;7362:18;;;7355:30;7421:34;7401:18;;;7394:62;-1:-1:-1;;;7472:18:1;;;7465:35;7517:19;;10254:128:0::1;7315:227:1::0;10254:128:0::1;-1:-1:-1::0;;;;;10411:26:0;::::1;;::::0;;;:15:::1;:26;::::0;;;;;::::1;;10410:27;:45:::0;::::1;;;-1:-1:-1::0;10451:4:0::1;::::0;-1:-1:-1;;;;;10441:14:0;;::::1;10451:4:::0;::::1;10441:14;10410:45;10407:124;;;-1:-1:-1::0;;;;;10472:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;10504:15:::1;10472:47:::0;;10407:124:::1;-1:-1:-1::0;;;;;10547:23:0;::::1;;::::0;;;:15:::1;:23;::::0;;;;;::::1;;10546:24;:45:::0;::::1;;;-1:-1:-1::0;10587:4:0::1;::::0;-1:-1:-1;;;;;10574:17:0;;::::1;10587:4:::0;::::1;10574:17;10546:45;10543:214;;;-1:-1:-1::0;;;;;10608:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;10642:15:::1;10608:31;::::0;;::::1;:49:::0;10704:4:::1;:12:::0;;;;;:41:::1;::::0;10738:6;;10704:12;10717:15:::1;:13;:15::i;:::-;10704:29;;;;;;;;;;;;:33;;:41;;;;:::i;:::-;-1:-1:-1::0;;;;;10672:12:0;::::1;;::::0;;;:4:::1;:12;::::0;;;;;10685:15:::1;:13;:15::i;:::-;10672:29:::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10672:29:0;:73;10543:214:::1;10780:16;:14;:16::i;:::-;10777:35;;;10799:10;:8;:10::i;:::-;10845:53;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;10845:53:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;10845:17:0;::::1;-1:-1:-1::0;10845:17:0;;;:9:::1;:17:::0;;;;;;;;:53:::1;::::0;10867:6;;10845:21:::1;:53::i;:::-;-1:-1:-1::0;;;;;10825:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;:73;;;;11603:11;:19;;;;;;;;11602:20;10936:56:::1;;10986:6;10936:56;;;10960:23;10968:6;10976;10960:7;:23::i;:::-;-1:-1:-1::0;;;;;11026:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;10911:81;;-1:-1:-1;11026:40:0::1;::::0;10911:81;11026:24:::1;:40::i;:::-;-1:-1:-1::0;;;;;11003:20:0;;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:63;;;;11084:43;;;;::::1;::::0;::::1;::::0;::::1;::::0;11112:14;10939:25:1;;10927:2;10912:18;;10894:76;11084:43:0::1;;;;;;;;11145:4;11138:11;;;6131:1;9679:1487:::0;;;;;;;;:::o;8380:479::-;-1:-1:-1;;;;;8506:17:0;;8455:7;8506:17;;;:9;:17;;;;;:31;;;8455:7;;8503:292;;8622:19;;-1:-1:-1;;;;;8592:17:0;;;;;;:9;:17;;;;;:26;8572:80;;8647:4;;8574:44;;:15;:44;:::i;:::-;8573:68;;;;:::i;8572:80::-;8559:93;;8503:292;;;8753:19;;-1:-1:-1;;;;;8718:17:0;;;;;;:9;:17;;;;;:31;;;8698:85;;8778:4;;8700:49;;:15;:49;:::i;8698:85::-;8685:98;;8503:292;8827:4;8814:10;:17;:37;;8841:10;8814:37;;;8834:4;8807:44;8380:479;-1:-1:-1;;;8380:479:0:o;961:132::-;1019:7;1046:39;1050:1;1053;1046:39;;;;;;;;;;;;;;;;;:3;:39::i;709:246::-;767:7;791:6;787:47;;-1:-1:-1;821:1:0;814:8;;787:47;844:9;856:5;860:1;856;:5;:::i;:::-;844:17;-1:-1:-1;889:1:0;880:5;884:1;844:17;880:5;:::i;:::-;:10;872:56;;;;-1:-1:-1;;;872:56:0;;8808:2:1;872:56:0;;;8790:21:1;8847:2;8827:18;;;8820:30;8886:34;8866:18;;;8859:62;-1:-1:-1;;;8937:18:1;;;8930:31;8978:19;;872:56:0;8780:223:1;16067:176:0;16121:4;16146:1;16142;:5;16138:94;;;16170:5;16174:1;16170;:5;:::i;:::-;16163:12;;;;16138:94;-1:-1:-1;16215:1:0;16208:8;;11178:330;11308:53;;;;;;;;;;;-1:-1:-1;;;11308:53:0;;;;;;;;-1:-1:-1;;;;;11308:17:0;;11271:4;11308:17;;;:9;:17;;;;;;;:53;;11330:6;;11308:21;:53::i;:::-;-1:-1:-1;;;;;11288:17:0;;;;;;;:9;:17;;;;;;:73;;;;11395:20;;;;;;;:32;;11420:6;11395:24;:32::i;:::-;-1:-1:-1;;;;;11372:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11443:35;;;;;;;;;;11471:6;10939:25:1;;10927:2;10912:18;;10894:76;11443:35:0;;;;;;;;-1:-1:-1;11496:4:0;11178:330;;;;;:::o;186:179::-;244:7;;276:5;280:1;276;:5;:::i;:::-;264:17;;305:1;300;:6;;292:46;;;;-1:-1:-1;;;292:46:0;;8093:2:1;292:46:0;;;8075:21:1;8132:2;8112:18;;;8105:30;8171:29;8151:18;;;8144:57;8218:18;;292:46:0;8065:177:1;11975:197:0;12062:4;;12024;;-1:-1:-1;;;;;12062:4:0;12048:10;:18;;;;:38;;-1:-1:-1;12080:6:0;;;;12079:7;12048:38;:62;;;;-1:-1:-1;12099:11:0;;;;;;;12048:62;:116;;;;-1:-1:-1;;12151:13:0;;12141:4;12123:24;;;;:9;:24;;;;;;:41;;;11975:197::o;12180:1548::-;5317:6;:13;;-1:-1:-1;;5317:13:0;5326:4;5317:13;;;12260::::1;::::0;12353:8:::1;::::0;12335:12:::1;::::0;5317:6;;12310:59:::1;::::0;12367:1:::1;::::0;12310:52:::1;::::0;;;12260:13;;12310:24:::1;:38::i;:59::-;12284:85:::0;-1:-1:-1;12380:20:0::1;12403:41;:20:::0;12284:85;12403:24:::1;:41::i;:::-;12481:16;::::0;;12495:1:::1;12481:16:::0;;;;;::::1;::::0;;12380:64;;-1:-1:-1;12457:21:0::1;::::0;12481:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12481:16:0::1;12457:40;;12526:4;12508;12513:1;12508:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12508:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12552:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;12552:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12508:7;;12552:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12542:4;12547:1;12542:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12542:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12636:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;12636:188:0;;12602:21:::1;::::0;12636:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12708:12;;12578:21:::1;::::0;12751:4;;12778::::1;::::0;12798:15:::1;::::0;12636:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12835:17;12855:40;12881:13;12855:21;:25;;:40;;;;:::i;:::-;12835:60;;12906:19;12928:33;12941:19;12958:1;12941:12;;:16;;:19;;;;:::i;:::-;12928:8;::::0;;:12:::1;:33::i;:::-;12906:55;;12972:26;13001:51;13050:1;13001:44;13033:11;13001:27;13015:12;;13001:9;:13;;:27;;;;:::i;:51::-;12972:80;;13063:26;13092:44;13124:11;13092:27;13106:12;;13092:9;:13;;:27;;;;:::i;:44::-;13208:20;::::0;13200:77:::1;::::0;13063:73;;-1:-1:-1;13150:21:0::1;::::0;-1:-1:-1;;;;;13208:20:0;;::::1;::::0;13267:5:::1;::::0;13063:73;;13150:21;13200:77;13150:21;13200:77;13063:73;13208:20;13267:5;13200:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13149:128;;;13296:16;13288:59;;;::::0;-1:-1:-1;;;13288:59:0;;8449:2:1;13288:59:0::1;::::0;::::1;8431:21:1::0;8488:2;8468:18;;;8461:30;8527:32;8507:18;;;8500:60;8577:18;;13288:59:0::1;8421:180:1::0;13288:59:0::1;13363:19:::0;;13360:361:::1;;13398:6;::::0;13572:20:::1;::::0;13398:243:::1;::::0;-1:-1:-1;;;13398:243:0;;13474:4:::1;13398:243;::::0;::::1;5577:34:1::0;5627:18;;;5620:34;;;13398:6:0::1;5670:18:1::0;;;5663:34;;;5713:18;;;5706:34;-1:-1:-1;;;;;13572:20:0;;::::1;5756:19:1::0;;;5749:44;13611:15:0::1;5809:19:1::0;;;5802:35;13398:6:0;::::1;::::0;:22:::1;::::0;13428:18;;5511:19:1;;13398:243:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13661:48:0::1;::::0;;12134:25:1;;;12190:2;12175:18;;12168:34;;;13661:48:0::1;::::0;-1:-1:-1;12107:18:1;13661:48:0::1;;;;;;;13360:361;-1:-1:-1::0;;5335:6:0;:14;;-1:-1:-1;;5335:14:0;;;-1:-1:-1;;;;;;;;12180:1548:0:o;11638:329::-;11705:7;11725:17;11745:40;11770:14;;11745:20;11756:8;;11745:6;:10;;:20;;;;:::i;:40::-;11841:4;11823:24;;;;:9;:24;;;;;;11725:60;;-1:-1:-1;11823:39:0;;11725:60;11823:28;:39::i;:::-;11814:4;11796:24;;;;:9;:24;;;;;;;:66;;;;11878:42;;-1:-1:-1;;;;;11878:42:0;;;;;;;11910:9;10939:25:1;;10927:2;10912:18;;10894:76;11878:42:0;;;;;;;;11938:21;:6;11949:9;11938:10;:21::i;1099:189::-;1185:7;1220:12;1213:5;1205:28;;;;-1:-1:-1;;;1205:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1244:9:0;1256:5;1260:1;1256;:5;:::i;371:136::-;429:7;456:43;460:1;463;456:43;;;;;;;;;;;;;;;;;:3;:43::i;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:2;;;667:1;664;657:12;619:2;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;609:301;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:2;;;1077:1;1074;1067:12;1029:2;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;1019:352;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;1019:352::o;1376:382::-;1441:6;1449;1502:2;1490:9;1481:7;1477:23;1473:32;1470:2;;;1518:1;1515;1508:12;1470:2;1557:9;1544:23;1576:31;1601:5;1576:31;:::i;:::-;1626:5;-1:-1:-1;1683:2:1;1668:18;;1655:32;1696:30;1655:32;1696:30;:::i;1763:315::-;1831:6;1839;1892:2;1880:9;1871:7;1867:23;1863:32;1860:2;;;1908:1;1905;1898:12;1860:2;1947:9;1934:23;1966:31;1991:5;1966:31;:::i;:::-;2016:5;2068:2;2053:18;;;;2040:32;;-1:-1:-1;;;1850:228:1:o;2083:750::-;2175:6;2183;2191;2244:2;2232:9;2223:7;2219:23;2215:32;2212:2;;;2260:1;2257;2250:12;2212:2;2300:9;2287:23;2329:18;2370:2;2362:6;2359:14;2356:2;;;2386:1;2383;2376:12;2356:2;2424:6;2413:9;2409:22;2399:32;;2469:7;2462:4;2458:2;2454:13;2450:27;2440:2;;2491:1;2488;2481:12;2440:2;2531;2518:16;2557:2;2549:6;2546:14;2543:2;;;2573:1;2570;2563:12;2543:2;2628:7;2621:4;2611:6;2608:1;2604:14;2600:2;2596:23;2592:34;2589:47;2586:2;;;2649:1;2646;2639:12;2586:2;2680:4;2672:13;;;;-1:-1:-1;2704:6:1;-1:-1:-1;;2745:20:1;;2732:34;2775:28;2732:34;2775:28;:::i;:::-;2822:5;2812:15;;;2202:631;;;;;:::o;2838:245::-;2905:6;2958:2;2946:9;2937:7;2933:23;2929:32;2926:2;;;2974:1;2971;2964:12;2926:2;3006:9;3000:16;3025:28;3047:5;3025:28;:::i;3088:376::-;3150:6;3158;3211:2;3199:9;3190:7;3186:23;3182:32;3179:2;;;3227:1;3224;3217:12;3179:2;3266:9;3253:23;3285:28;3307:5;3285:28;:::i;3469:180::-;3528:6;3581:2;3569:9;3560:7;3556:23;3552:32;3549:2;;;3597:1;3594;3587:12;3549:2;-1:-1:-1;3620:23:1;;3539:110;-1:-1:-1;3539:110:1:o;3654:248::-;3722:6;3730;3783:2;3771:9;3762:7;3758:23;3754:32;3751:2;;;3799:1;3796;3789:12;3751:2;-1:-1:-1;;3822:23:1;;;3892:2;3877:18;;;3864:32;;-1:-1:-1;3741:161:1:o;3907:316::-;3984:6;3992;4000;4053:2;4041:9;4032:7;4028:23;4024:32;4021:2;;;4069:1;4066;4059:12;4021:2;-1:-1:-1;;4092:23:1;;;4162:2;4147:18;;4134:32;;-1:-1:-1;4213:2:1;4198:18;;;4185:32;;4011:212;-1:-1:-1;4011:212:1:o;4228:306::-;4316:6;4324;4332;4385:2;4373:9;4364:7;4360:23;4356:32;4353:2;;;4401:1;4398;4391:12;4353:2;4430:9;4424:16;4414:26;;4480:2;4469:9;4465:18;4459:25;4449:35;;4524:2;4513:9;4509:18;4503:25;4493:35;;4343:191;;;;;:::o;6539:597::-;6651:4;6680:2;6709;6698:9;6691:21;6741:6;6735:13;6784:6;6779:2;6768:9;6764:18;6757:34;6809:1;6819:140;6833:6;6830:1;6827:13;6819:140;;;6928:14;;;6924:23;;6918:30;6894:17;;;6913:2;6890:26;6883:66;6848:10;;6819:140;;;6977:6;6974:1;6971:13;6968:2;;;7047:1;7042:2;7033:6;7022:9;7018:22;7014:31;7007:42;6968:2;-1:-1:-1;7120:2:1;7099:15;-1:-1:-1;;7095:29:1;7080:45;;;;7127:2;7076:54;;6660:476;-1:-1:-1;;;6660:476:1:o;9008:329::-;9210:2;9192:21;;;9249:1;9229:18;;;9222:29;-1:-1:-1;;;9282:2:1;9267:18;;9260:36;9328:2;9313:18;;9182:155::o;10975:980::-;11237:4;11285:3;11274:9;11270:19;11316:6;11305:9;11298:25;11342:2;11380:6;11375:2;11364:9;11360:18;11353:34;11423:3;11418:2;11407:9;11403:18;11396:31;11447:6;11482;11476:13;11513:6;11505;11498:22;11551:3;11540:9;11536:19;11529:26;;11590:2;11582:6;11578:15;11564:29;;11611:1;11621:195;11635:6;11632:1;11629:13;11621:195;;;11700:13;;-1:-1:-1;;;;;11696:39:1;11684:52;;11791:15;;;;11756:12;;;;11732:1;11650:9;11621:195;;;-1:-1:-1;;;;;;;11872:32:1;;;;11867:2;11852:18;;11845:60;-1:-1:-1;;;11936:3:1;11921:19;11914:35;11833:3;11246:709;-1:-1:-1;;;11246:709:1:o;12726:128::-;12766:3;12797:1;12793:6;12790:1;12787:13;12784:2;;;12803:18;;:::i;:::-;-1:-1:-1;12839:9:1;;12774:80::o;12859:217::-;12899:1;12925;12915:2;;12969:10;12964:3;12960:20;12957:1;12950:31;13004:4;13001:1;12994:15;13032:4;13029:1;13022:15;12915:2;-1:-1:-1;13061:9:1;;12905:171::o;13081:168::-;13121:7;13187:1;13183;13179:6;13175:14;13172:1;13169:21;13164:1;13157:9;13150:17;13146:45;13143:2;;;13194:18;;:::i;:::-;-1:-1:-1;13234:9:1;;13133:116::o;13254:125::-;13294:4;13322:1;13319;13316:8;13313:2;;;13327:18;;:::i;:::-;-1:-1:-1;13364:9:1;;13303:76::o;13384:135::-;13423:3;-1:-1:-1;;13444:17:1;;13441:2;;;13464:18;;:::i;:::-;-1:-1:-1;13511:1:1;13500:13;;13431:88::o;13524:127::-;13585:10;13580:3;13576:20;13573:1;13566:31;13616:4;13613:1;13606:15;13640:4;13637:1;13630:15;13656:127;13717:10;13712:3;13708:20;13705:1;13698:31;13748:4;13745:1;13738:15;13772:4;13769:1;13762:15;13920:131;-1:-1:-1;;;;;13995:31:1;;13985:42;;13975:2;;14041:1;14038;14031:12;14056:118;14142:5;14135:13;14128:21;14121:5;14118:32;14108:2;;14164:1;14161;14154:12

Swarm Source

ipfs://97b40b66f500d3868fca6aae3d010d92c3e918ca4c3f407a163328f8ea57c145

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.