ETH Price: $2,309.77 (-4.57%)
Gas: 1.53 Gwei

Token

Shiba Uncle (SHICL)
 

Overview

Max Total Supply

1,000,000,000 SHICL

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
966,547.691865443899486498 SHICL

Value
$0.00
0xD731A5e3c3F779Bc35DA2F76FA7146Ef0D7D759C
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ShibaUncle

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-21
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/** 
 * INTRODUCING THE NEWEST MEMBER OF THE SHIBA FAMILY - $SHICL, SHIBA UNCLE!
 * $SHICL IS THE COOL UNCLE WHO IS ALL ABOUT HAVING A GOOD TIME AND
 * ALWAYS COMES BEARING GIFTS FOR THE FAMILY!
 *
 * HE DOES THIS IN TWO WAYS: 
 * 1) AUTOMATIC $SHIL BUYBACKS & REFLECTIONS TO ALL HOLDERS
 * 2) MANUAL $SHIL BUYBACKS & LP BURNS!
 * 
 * TO SUPPORT THIS SPENDING, $SHICL FEATURES A TAX ON BUYS & SELLS. 
 * THIS TAX IS HARDCODED TO BE CAPPED AT 6%, AND WILL BE REDUCED OVER TIME AS VOLUME INCREASES
 *
 * https://t.me/shibascooluncle 
 * https://twitter.com/shibuncle LET'S HAVE SOME FUN WITH THE COOL SHIBA UNCLE $SHICL!!!
 */

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

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

    event OwnershipTransferred(address owner);
}

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

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

interface ICoolUncle {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function gibSHIL(address shareholder) external;
}


contract CoolUncle is ICoolUncle {

    using SafeMath for uint256;
    address _token;

    address public SHIL;

    IDEXRouter router;

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

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;
    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 30 minutes;
    uint256 public minDistribution = 0 * (10 ** 9);

    uint256 public currentIndex;
    bool initialized;

    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor () {
        _token = msg.sender;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        SHIL = 0x20c3fa331A385b63EE39137e99d0cF2db142fCe1;
    }
    
    receive() external payable {
        deposit();
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {

        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() public payable override {

        uint256 balanceBefore = IERC20(SHIL).balanceOf(address(this));

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

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

        uint256 amount = IERC20(SHIL).balanceOf(address(this)).sub(balanceBefore);
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }
    
    function process(uint256 gas) external override {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while(gasUsed < gas && iterations < shareholderCount) {

            if(currentIndex >= shareholderCount){ currentIndex = 0; }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) public view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            IERC20(SHIL).transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function gibSHIL(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

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

contract ShibaUncle is IERC20, Auth {
    using SafeMath for uint256;

    address public SHIL = 0x20c3fa331A385b63EE39137e99d0cF2db142fCe1; //$SHIL CA

    string private constant _name = "Shiba Uncle";
    string private constant _symbol = "SHICL";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);

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

    address private WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    bool public antiBot = true;

    mapping (address => bool) private bots; 
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isDividendExempt;

    uint256 public launchedAt;
    address public lpWallet = DEAD;

    uint256 public buyFee = 10;
    uint256 public sellFee = 20;

    uint256 public toReflections = 40;
    uint256 public toLiquidity = 20;
    uint256 public toMarketing = 40;

    uint256 public allocationSum = 100;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public uncleWallet = payable(0xC77D171B200dc357BF55BBb27C19f2e9fA985243);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;
    
    CoolUncle public coolUncle;
    uint256 public coolUncleGas = 0;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    uint256 public maxTx = _totalSupply.div(100);
    uint256 public maxWallet = _totalSupply.div(50);
    uint256 public swapThreshold = _totalSupply.div(400);

    constructor (
        address _owner        
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        coolUncle = new CoolUncle();
        
        isFeeExempt[_owner] = true;
        isFeeExempt[uncleWallet] = true;            

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;    

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[uncleWallet] = true;  


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

    receive() external payable { }


    function setBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    //once enabled, cannot be reversed
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }      

    function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {

        buyFee = newBuyFee;
        sellFee = newSellFee;

        require(buyFee <= 6, "too high");
        require(sellFee <= 6, "too high");
    } 
    
    function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner {
        toReflections = newRewardFee;
        toLiquidity = newLpFee;
        toMarketing = newMarketingFee;
    }

    function changeTxLimit(uint256 newLimit) external onlyOwner {
        maxTx = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

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

    function setUncleWallet(address payable newUncleWallet) external onlyOwner {
        uncleWallet = payable(newUncleWallet);
    }

    function setOwnerWallet(address newOwnerWallet) internal {
        tokenOwner = newOwnerWallet;
    }     
    function renounceOwnership() external onlyOwner {
        setOwnerWallet(DEAD);
    }

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner {
        coolUncle.setDistributionCriteria(newMinPeriod, newMinDistribution);        
    }

    function delBot(address notbot) external onlyOwner {
        bots[notbot] = false;
    }

    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            coolUncle.setShare(holder, 0);
        }else{
            coolUncle.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

    function changeCoolUncleGas(uint256 newGas) external onlyOwner {
        coolUncleGas = newGas;
    }           

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

    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 transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(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 _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive
        require(!bots[sender] && !bots[recipient]);

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

        require(amount <= maxTx || isTxLimitExempt[sender], "tx");

        if(!isTxLimitExempt[recipient] && antiBot)
        {
            require(_balances[recipient].add(amount) <= maxWallet, "wallet");
        }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try coolUncle.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try coolUncle.setShare(recipient, _balances[recipient]) {} catch {} 
        }

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

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }  
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeApplicable = pair == recipient ? sellFee : buyFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {

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

        approve(address(this), tokenAmount);

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpWallet,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)]; 
        uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2);     
        uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity);

        swapTokensForEth(amountToSwap);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForSHIL = totalEthBalance.mul(toReflections).div(100);
        uint256 ethForUncle = totalEthBalance.mul(toMarketing).div(100);
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
      
        if (totalEthBalance > 0){
            payable(uncleWallet).transfer(ethForUncle);
        }
        
        try coolUncle.deposit{value: ethForSHIL}() {} catch {}
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0){          
            payable(uncleWallet).transfer(contractETHBalance);
        }
    }

    function manualProcessGas(uint256 manualGas) external onlyOwner {
        coolUncle.process(manualGas);
    }

    function checkPendingReflections(address shareholder) external view returns (uint256) {
        return coolUncle.getUnpaidEarnings(shareholder);
    }

    function getSHIL() external {
        coolUncle.gibSHIL(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"SHIL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","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":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeCoolUncleGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"checkPendingReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolUncle","outputs":[{"internalType":"contract CoolUncle","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolUncleGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"getSHIL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","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":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newUncleWallet","type":"address"}],"name":"setUncleWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","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":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uncleWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319167320c3fa331a385b63ee39137e99d0cf2db142fce1179055620000386012600a62000642565b6200004890633b9aca0062000653565b6002819055600780546001600160a01b031990811661dead908117909255600880546001600160a81b031916600160a01b179055600e80549091169091179055600a600f556014601081905560286011819055601282905560135560649081905560198054600162ffff0160a01b031916750100c77d171b200dc357bf55bbb27c19f2e9fa9852431790556000601b55620000f391906200140662000489602090811b91909117901c565b601c556200011360326002546200048960201b620014061790919060201c565b601d55620001346101906002546200048960201b620014061790919060201c565b601e553480156200014457600080fd5b5060405162003cec38038062003cec833981016040819052620001679162000675565b600080546001600160a01b03199081166001600160a01b0384161790915560158054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000206919062000675565b600680546001600160a01b0319166001600160a01b039283161790556015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028b919062000675565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000303919062000675565b601680546001600160a01b0319166001600160a01b039283161790553060009081526004602090815260408083206015549094168352929052819020600019905551620003509062000521565b604051809103906000f0801580156200036d573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b039283161790558181166000818152600a60209081526040808320805460ff199081166001908117909255601980548816865283862080548316841790556016805489168752600c865284872080548416851790553087528487208054841685179055600780548a1688528588208054851686179055888852600b87528588208054851686179055905489168752848720805484168517905554881686528386208054831684179055549096168452818420805490961617909455600254838352600382528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000722565b6000620004d383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004dc60201b60201c565b90505b92915050565b60008183620005095760405162461bcd60e51b8152600401620005009190620006a7565b60405180910390fd5b506000620005188486620006ff565b95945050505050565b61109d8062002c4f83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005865781600019048211156200056a576200056a6200052f565b808516156200057857918102915b93841c93908002906200054a565b509250929050565b6000826200059f57506001620004d6565b81620005ae57506000620004d6565b8160018114620005c75760028114620005d257620005f2565b6001915050620004d6565b60ff841115620005e657620005e66200052f565b50506001821b620004d6565b5060208310610133831016604e8410600b841016171562000617575081810a620004d6565b62000623838362000545565b80600019048211156200063a576200063a6200052f565b029392505050565b6000620004d360ff8416836200058e565b60008160001904831182151516156200067057620006706200052f565b500290565b6000602082840312156200068857600080fd5b81516001600160a01b0381168114620006a057600080fd5b9392505050565b600060208083528351808285015260005b81811015620006d657858101830151858201604001528201620006b8565b81811115620006e9576000604083870101525b50601f01601f1916929092016040019392505050565b6000826200071d57634e487b7160e01b600052601260045260246000fd5b500490565b61251d80620007326000396000f3fe6080604052600436106103855760003560e01c806377359aa7116101d1578063bf56b37111610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610a7f578063f8b45b0514610a9f578063fabe628314610ab5578063ffb54a9914610ad557600080fd5b8063dd62ed3e146109d9578063e671337914610a1f578063f2fde38b14610a3f578063f708a64f14610a5f57600080fd5b8063c8d1293d116100dc578063c8d1293d14610978578063c9567bf91461098e578063caa5581b146109a3578063d920334e146109b957600080fd5b8063bf56b37114610922578063bf62c01814610938578063c45a01551461095857600080fd5b80638b42507f1161016f578063a8911a8f11610149578063a8911a8f146108a2578063a8aa1b31146108c2578063a9059cbb146108e2578063b515566a1461090257600080fd5b80638b42507f1461082457806395d89b4114610854578063a3a2e89e1461088257600080fd5b80637dfcbe34116101ab5780637dfcbe34146107b057806381934031146107d157806389291a8f146107f1578063893d20e81461080657600080fd5b806377359aa71461075a5780637ca619951461077a5780637db1342c1461079057600080fd5b80633a48a23d116102b6578063571ac8b011610254578063715018a611610223578063715018a6146107045780637437681e1461071957806375c4b88a1461072f57806375df13051461074457600080fd5b8063571ac8b0146106795780636303516c1461069957806366eb3785146106b957806370a08231146106ce57600080fd5b80634355855a116102905780634355855a146105fc578063454343771461062c57806347062402146106425780634a74bb021461065857600080fd5b80633a48a23d1461058c5780633dab5269146105ac5780633f4218e0146105cc57600080fd5b80632b112e49116103235780632dbea2e1116102fd5780632dbea2e1146105015780632f54bf6e1461052157806330ca34ee14610550578063313ce5671461057057600080fd5b80632b112e49146104b65780632b14ca56146104cb5780632d48e896146104e157600080fd5b80630d1466e11161035f5780630d1466e11461042757806318160ddd1461045f57806323b872dd14610474578063273123b71461049457600080fd5b80630445b6671461039157806306fdde03146103ba578063095ea7b3146103f757600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a7601e5481565b6040519081526020015b60405180910390f35b3480156103c657600080fd5b5060408051808201909152600b81526a536869626120556e636c6560a81b60208201525b6040516103b1919061205d565b34801561040357600080fd5b506104176104123660046120d7565b610af6565b60405190151581526020016103b1565b34801561043357600080fd5b50601954610447906001600160a01b031681565b6040516001600160a01b0390911681526020016103b1565b34801561046b57600080fd5b506002546103a7565b34801561048057600080fd5b5061041761048f366004612103565b610b63565b3480156104a057600080fd5b506104b46104af366004612144565b610c25565b005b3480156104c257600080fd5b506103a7610c79565b3480156104d757600080fd5b506103a760105481565b3480156104ed57600080fd5b506104b46104fc366004612161565b610ccb565b34801561050d57600080fd5b506104b461051c366004612183565b610d5f565b34801561052d57600080fd5b5061041761053c366004612144565b6000546001600160a01b0391821691161490565b34801561055c57600080fd5b506104b461056b366004612161565b610d97565b34801561057c57600080fd5b50604051601281526020016103b1565b34801561059857600080fd5b50601a54610447906001600160a01b031681565b3480156105b857600080fd5b506104b46105c73660046121bf565b610e49565b3480156105d857600080fd5b506104176105e7366004612144565b600a6020526000908152604090205460ff1681565b34801561060857600080fd5b50610417610617366004612144565b600c6020526000908152604090205460ff1681565b34801561063857600080fd5b506103a760145481565b34801561064e57600080fd5b506103a7600f5481565b34801561066457600080fd5b5060195461041790600160a81b900460ff1681565b34801561068557600080fd5b50610417610694366004612144565b610e95565b3480156106a557600080fd5b50600e54610447906001600160a01b031681565b3480156106c557600080fd5b506104b4610ea3565b3480156106da57600080fd5b506103a76106e9366004612144565b6001600160a01b031660009081526003602052604090205490565b34801561071057600080fd5b506104b4610ed7565b34801561072557600080fd5b506103a7601c5481565b34801561073b57600080fd5b506104b4610f25565b34801561075057600080fd5b506103a760135481565b34801561076657600080fd5b506103a7610775366004612144565b610f84565b34801561078657600080fd5b506103a7601b5481565b34801561079c57600080fd5b506104b46107ab3660046121db565b610ff3565b3480156107bc57600080fd5b5060085461041790600160a01b900460ff1681565b3480156107dd57600080fd5b506104b46107ec3660046121db565b611022565b3480156107fd57600080fd5b506104b46110b0565b34801561081257600080fd5b506000546001600160a01b0316610447565b34801561083057600080fd5b5061041761083f366004612144565b600b6020526000908152604090205460ff1681565b34801561086057600080fd5b5060408051808201909152600581526414d21250d360da1b60208201526103ea565b34801561088e57600080fd5b506104b461089d3660046121f4565b61111e565b3480156108ae57600080fd5b506104b46108bd3660046121db565b611173565b3480156108ce57600080fd5b50601654610447906001600160a01b031681565b3480156108ee57600080fd5b506104176108fd3660046120d7565b6111a2565b34801561090e57600080fd5b506104b461091d36600461223f565b6111af565b34801561092e57600080fd5b506103a7600d5481565b34801561094457600080fd5b506104b4610953366004612144565b611241565b34801561096457600080fd5b50601754610447906001600160a01b031681565b34801561098457600080fd5b506103a760125481565b34801561099a57600080fd5b506104b461128d565b3480156109af57600080fd5b506103a760115481565b3480156109c557600080fd5b506104b46109d43660046121db565b6112d0565b3480156109e557600080fd5b506103a76109f4366004612304565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a2b57600080fd5b50600154610447906001600160a01b031681565b348015610a4b57600080fd5b506104b4610a5a366004612144565b6112ff565b348015610a6b57600080fd5b506104b4610a7a3660046121f4565b61137d565b348015610a8b57600080fd5b50601554610447906001600160a01b031681565b348015610aab57600080fd5b506103a7601d5481565b348015610ac157600080fd5b506104b4610ad03660046121f4565b6113b1565b348015610ae157600080fd5b5060195461041790600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b519086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610c10576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610beb918490611448565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610c1b848484611482565b90505b9392505050565b6000546001600160a01b03163314610c585760405162461bcd60e51b8152600401610c4f9061233d565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610cc6906007546001600160a01b0316600090815260036020526040902054610cc09060025490611938565b90611938565b905090565b6000546001600160a01b03163314610cf55760405162461bcd60e51b8152600401610c4f9061233d565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610d4357600080fd5b505af1158015610d57573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610d895760405162461bcd60e51b8152600401610c4f9061233d565b601192909255601255601355565b6000546001600160a01b03163314610dc15760405162461bcd60e51b8152600401610c4f9061233d565b600f82905560108190556006821115610e075760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610c4f565b60066010541115610e455760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610c4f565b5050565b6000546001600160a01b03163314610e735760405162461bcd60e51b8152600401610c4f9061233d565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000610b5d82600019610af6565b6000546001600160a01b03163314610ecd5760405162461bcd60e51b8152600401610c4f9061233d565b610ed561197a565b565b6000546001600160a01b03163314610f015760405162461bcd60e51b8152600401610c4f9061233d565b600754601880546001600160a01b0319166001600160a01b03909216919091179055565b601a54604051631149527960e01b81523360048201526001600160a01b0390911690631149527990602401600060405180830381600087803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b50505050565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610fcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d919061235d565b6000546001600160a01b0316331461101d5760405162461bcd60e51b8152600401610c4f9061233d565b601d55565b6000546001600160a01b0316331461104c5760405162461bcd60e51b8152600401610c4f9061233d565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c47990602401600060405180830381600087803b15801561109557600080fd5b505af11580156110a9573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146110da5760405162461bcd60e51b8152600401610c4f9061233d565b47801561111b576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e45573d6000803e3d6000fd5b50565b6000546001600160a01b031633146111485760405162461bcd60e51b8152600401610c4f9061233d565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461119d5760405162461bcd60e51b8152600401610c4f9061233d565b601b55565b6000610c1e338484611482565b6000546001600160a01b031633146111d95760405162461bcd60e51b8152600401610c4f9061233d565b60005b8151811015610e45576001600960008484815181106111fd576111fd612376565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611239816123a2565b9150506111dc565b6000546001600160a01b0316331461126b5760405162461bcd60e51b8152600401610c4f9061233d565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112b75760405162461bcd60e51b8152600401610c4f9061233d565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146112fa5760405162461bcd60e51b8152600401610c4f9061233d565b601c55565b6000546001600160a01b031633146113295760405162461bcd60e51b8152600401610c4f9061233d565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146113a75760405162461bcd60e51b8152600401610c4f9061233d565b610e458282611b08565b6000546001600160a01b031633146113db5760405162461bcd60e51b8152600401610c4f9061233d565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610c1e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611be7565b6000818484111561146c5760405162461bcd60e51b8152600401610c4f919061205d565b50600061147984866123bb565b95945050505050565b600080546001600160a01b038581169116148015906114af57506000546001600160a01b03848116911614155b1561150d57601954600160b01b900460ff1661150d5760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610c4f565b6001600160a01b03841660009081526009602052604090205460ff1615801561154f57506001600160a01b03831660009081526009602052604090205460ff16155b61155857600080fd5b601954600160a01b900460ff161561157c57611575848484611c15565b9050610c1e565b601c54821115806115a557506001600160a01b0384166000908152600b602052604090205460ff165b6115d65760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610c4f565b6001600160a01b0383166000908152600b602052604090205460ff161580156116085750600854600160a01b900460ff165b1561166a57601d546001600160a01b0384166000908152600360205260409020546116339084611cfb565b111561166a5760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610c4f565b6016546001600160a01b0316331480159061168f5750601954600160a01b900460ff16155b80156116a45750601954600160a81b900460ff165b80156116c15750601e543060009081526003602052604090205410155b156116ce576116ce61197a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260039091529190912054611720918490611448565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561177057506001600160a01b0384166000908152600a602052604090205460ff16155b61177a5782611785565b611785858585611d5a565b6001600160a01b0385166000908152600360205260409020549091506117ab9082611cfb565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff1661184f57601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561183c57600080fd5b505af192505050801561184d575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166118e057601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156118cd57600080fd5b505af19250505080156118de575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161192591815260200190565b60405180910390a3506001949350505050565b6000610c1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611448565b6019805460ff60a01b1916600160a01b179055306000908152600360205260408120546012549091906119c0906002906119ba9060649082908790611e1d565b90611406565b905060006119ce8383611938565b90506119d981611e9f565b600047905060006119fa60646119ba60115485611e1d90919063ffffffff16565b90506000611a1860646119ba60135486611e1d90919063ffffffff16565b90506000611a3b60026119ba60646119ba60125489611e1d90919063ffffffff16565b90508315611a7f576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611a7d573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611acf57600080fd5b505af193505050508015611ae1575060015b508515611af257611af28682611fc8565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611b2f57506016546001600160a01b03838116911614155b611b3857600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611b9e57601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610d29565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610d29565b60008183611c085760405162461bcd60e51b8152600401610c4f919061205d565b50600061147984866123d2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611c66918490611448565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611c959083611cfb565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ce99086815260200190565b60405180910390a35060019392505050565b600080611d0883856123f4565b905083811015610c1e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c4f565b60165460009081906001600160a01b03858116911614611d7c57600f54611d80565b6010545b90506000611d9360646119ba8685611e1d565b30600090815260036020526040902054909150611db09082611cfb565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e019085815260200190565b60405180910390a3611e138482611938565b9695505050505050565b600082600003611e2f57506000610b5d565b6000611e3b838561240c565b905082611e4885836123d2565b14610c1e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c4f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ed457611ed4612376565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f51919061242b565b81600181518110611f6457611f64612376565b60200260200101906001600160a01b031690816001600160a01b031681525050611f8e3083610af6565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d29908590600090869030904290600401612448565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612038573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110a991906124b9565b600060208083528351808285015260005b8181101561208a5785810183015185820160400152820161206e565b8181111561209c576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461111b57600080fd5b80356120d2816120b2565b919050565b600080604083850312156120ea57600080fd5b82356120f5816120b2565b946020939093013593505050565b60008060006060848603121561211857600080fd5b8335612123816120b2565b92506020840135612133816120b2565b929592945050506040919091013590565b60006020828403121561215657600080fd5b8135610c1e816120b2565b6000806040838503121561217457600080fd5b50508035926020909101359150565b60008060006060848603121561219857600080fd5b505081359360208301359350604090920135919050565b803580151581146120d257600080fd5b600080604083850312156121d257600080fd5b6120f5836121af565b6000602082840312156121ed57600080fd5b5035919050565b6000806040838503121561220757600080fd5b8235612212816120b2565b9150612220602084016121af565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561225257600080fd5b823567ffffffffffffffff8082111561226a57600080fd5b818501915085601f83011261227e57600080fd5b81358181111561229057612290612229565b8060051b604051601f19603f830116810181811085821117156122b5576122b5612229565b6040529182528482019250838101850191888311156122d357600080fd5b938501935b828510156122f8576122e9856120c7565b845293850193928501926122d8565b98975050505050505050565b6000806040838503121561231757600080fd5b8235612322816120b2565b91506020830135612332816120b2565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b60006020828403121561236f57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016123b4576123b461238c565b5060010190565b6000828210156123cd576123cd61238c565b500390565b6000826123ef57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124075761240761238c565b500190565b60008160001904831182151516156124265761242661238c565b500290565b60006020828403121561243d57600080fd5b8151610c1e816120b2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124985784516001600160a01b031683529383019391830191600101612473565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124ce57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f88aa961a66b2cea051503243ca1ec7d35fa67d4a9669dba965d529fd8188ffa64736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50600080546001600160a01b03199081163317909155600280548216737a250d5630b4cf539739df2c5dacb4c659f2488d179055600180549091167320c3fa331a385b63ee39137e99d0cf2db142fce117905561100d806100906000396000f3fe6080604052600436106101025760003560e01c80638c21cd5211610095578063e2d2e21911610064578063e2d2e219146102a6578063e6713379146102bc578063efca2eed146102f4578063ffb2c4791461030a578063ffd49c841461032a57600080fd5b80638c21cd5214610201578063997664d714610231578063ce7c2ac214610247578063d0e30db01461029e57600080fd5b806328fd3198116100d157806328fd3198146101955780632d48e896146101b55780633a98ef39146101d55780634fab0ae8146101eb57600080fd5b8063114952791461011657806311ce023d1461013657806314b6ca961461015f57806326987b601461017f57600080fd5b366101115761010f610340565b005b600080fd5b34801561012257600080fd5b5061010f610131366004610d71565b6105b8565b34801561014257600080fd5b5061014c600b5481565b6040519081526020015b60405180910390f35b34801561016b57600080fd5b5061010f61017a366004610d8e565b6105db565b34801561018b57600080fd5b5061014c600e5481565b3480156101a157600080fd5b5061014c6101b0366004610d71565b610753565b3480156101c157600080fd5b5061010f6101d0366004610dba565b6107de565b3480156101e157600080fd5b5061014c60075481565b3480156101f757600080fd5b5061014c600d5481565b34801561020d57600080fd5b5061022161021c366004610d71565b610800565b6040519015158152602001610156565b34801561023d57600080fd5b5061014c60085481565b34801561025357600080fd5b50610283610262366004610d71565b60066020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610156565b61010f610340565b3480156102b257600080fd5b5061014c600a5481565b3480156102c857600080fd5b506001546102dc906001600160a01b031681565b6040516001600160a01b039091168152602001610156565b34801561030057600080fd5b5061014c60095481565b34801561031657600080fd5b5061010f610325366004610ddc565b610846565b34801561033657600080fd5b5061014c600c5481565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ad9190610df5565b60408051600280825260608201835292935060009290916020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561041c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104409190610e0e565b8160008151811061045357610453610e2b565b6001600160a01b039283166020918202929092010152600180548351921691839190811061048357610483610e2b565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de959034906104c990600090869030904290600401610e41565b6000604051808303818588803b1580156104e257600080fd5b505af11580156104f6573d6000803e3d6000fd5b50506001546040516370a0823160e01b81523060048201526000945061057693508692506001600160a01b03909116906370a0823190602401602060405180830381865afa15801561054c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105709190610df5565b90610933565b600854909150610586908261097c565b600855600754600b546105b0916105a7916105a190856109e0565b90610a62565b600a549061097c565b600a55505050565b6000546001600160a01b031633146105cf57600080fd5b6105d881610aa4565b50565b6000546001600160a01b031633146105f257600080fd5b6001600160a01b038216600090815260066020526040902054156106195761061982610aa4565b60008111801561063f57506001600160a01b038216600090815260066020526040902054155b156106a557600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b03191690911790556106d8565b801580156106ca57506001600160a01b03821660009081526006602052604090205415155b156106d8576106d882610bc2565b6001600160a01b03821660009081526006602052604090205460075461070991839161070391610933565b9061097c565b6007556001600160a01b038216600090815260066020526040902081905561073081610cd7565b6001600160a01b0390921660009081526006602052604090206001019190915550565b6001600160a01b038116600090815260066020526040812054810361077a57506000919050565b6001600160a01b03821660009081526006602052604081205461079c90610cd7565b6001600160a01b0384166000908152600660205260409020600101549091508082116107cc575060009392505050565b6107d68282610933565b949350505050565b6000546001600160a01b031633146107f557600080fd5b600c91909155600d55565b600c546001600160a01b0382166000908152600560205260408120549091429161082a9190610ec1565b1080156108405750600d5461083e83610753565b115b92915050565b6003546000819003610856575050565b60008060005a90505b848210801561086d57508383105b1561092c5783600e5410610881576000600e555b6108b36003600e548154811061089957610899610e2b565b6000918252602090912001546001600160a01b0316610800565b156108ea576108ea6003600e54815481106108d0576108d0610e2b565b6000918252602090912001546001600160a01b0316610aa4565b6108ff6108f85a8390610933565b839061097c565b91505a600e8054919250600061091483610ed9565b9190505550828061092490610ed9565b93505061085f565b5050505050565b600061097583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cf4565b9392505050565b6000806109898385610ec1565b9050838110156109755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000826000036109f257506000610840565b60006109fe8385610ef2565b905082610a0b8583610f11565b146109755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d7565b600061097583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d2e565b6001600160a01b0381166000908152600660205260408120549003610ac65750565b6000610ad182610753565b90508015610bbe57600954610ae6908261097c565b60095560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b609190610f33565b506001600160a01b03821660009081526005602090815260408083204290556006909152902060020154610b94908261097c565b6001600160a01b038316600090815260066020526040902060028101919091555461073090610cd7565b5050565b60038054610bd290600190610f55565b81548110610be257610be2610e2b565b60009182526020808320909101546001600160a01b0384811684526004909252604090922054600380549290931692918110610c2057610c20610e2b565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260049182905260408120546003805491939291610c6c90600190610f55565b81548110610c7c57610c7c610e2b565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610cb257610cb2610f6c565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610840600b546105a1600a54856109e090919063ffffffff16565b60008184841115610d185760405162461bcd60e51b81526004016109d79190610f82565b506000610d258486610f55565b95945050505050565b60008183610d4f5760405162461bcd60e51b81526004016109d79190610f82565b506000610d258486610f11565b6001600160a01b03811681146105d857600080fd5b600060208284031215610d8357600080fd5b813561097581610d5c565b60008060408385031215610da157600080fd5b8235610dac81610d5c565b946020939093013593505050565b60008060408385031215610dcd57600080fd5b50508035926020909101359150565b600060208284031215610dee57600080fd5b5035919050565b600060208284031215610e0757600080fd5b5051919050565b600060208284031215610e2057600080fd5b815161097581610d5c565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610e8b5784516001600160a01b031683529383019391830191600101610e66565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ed457610ed4610eab565b500190565b600060018201610eeb57610eeb610eab565b5060010190565b6000816000190483118215151615610f0c57610f0c610eab565b500290565b600082610f2e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610f4557600080fd5b8151801515811461097557600080fd5b600082821015610f6757610f67610eab565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208083528351808285015260005b81811015610faf57858101830151858201604001528201610f93565b81811115610fc1576000604083870101525b50601f01601f191692909201604001939250505056fea26469706673582212206a7ef859bd4f7f22b4320752ebb9527289abd2400396aae2e02ee0d40dd0cc9d64736f6c634300080d00330000000000000000000000007f5a7166c1878b1c05d587536f40faed5a3b1efe

Deployed Bytecode

0x6080604052600436106103855760003560e01c806377359aa7116101d1578063bf56b37111610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610a7f578063f8b45b0514610a9f578063fabe628314610ab5578063ffb54a9914610ad557600080fd5b8063dd62ed3e146109d9578063e671337914610a1f578063f2fde38b14610a3f578063f708a64f14610a5f57600080fd5b8063c8d1293d116100dc578063c8d1293d14610978578063c9567bf91461098e578063caa5581b146109a3578063d920334e146109b957600080fd5b8063bf56b37114610922578063bf62c01814610938578063c45a01551461095857600080fd5b80638b42507f1161016f578063a8911a8f11610149578063a8911a8f146108a2578063a8aa1b31146108c2578063a9059cbb146108e2578063b515566a1461090257600080fd5b80638b42507f1461082457806395d89b4114610854578063a3a2e89e1461088257600080fd5b80637dfcbe34116101ab5780637dfcbe34146107b057806381934031146107d157806389291a8f146107f1578063893d20e81461080657600080fd5b806377359aa71461075a5780637ca619951461077a5780637db1342c1461079057600080fd5b80633a48a23d116102b6578063571ac8b011610254578063715018a611610223578063715018a6146107045780637437681e1461071957806375c4b88a1461072f57806375df13051461074457600080fd5b8063571ac8b0146106795780636303516c1461069957806366eb3785146106b957806370a08231146106ce57600080fd5b80634355855a116102905780634355855a146105fc578063454343771461062c57806347062402146106425780634a74bb021461065857600080fd5b80633a48a23d1461058c5780633dab5269146105ac5780633f4218e0146105cc57600080fd5b80632b112e49116103235780632dbea2e1116102fd5780632dbea2e1146105015780632f54bf6e1461052157806330ca34ee14610550578063313ce5671461057057600080fd5b80632b112e49146104b65780632b14ca56146104cb5780632d48e896146104e157600080fd5b80630d1466e11161035f5780630d1466e11461042757806318160ddd1461045f57806323b872dd14610474578063273123b71461049457600080fd5b80630445b6671461039157806306fdde03146103ba578063095ea7b3146103f757600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a7601e5481565b6040519081526020015b60405180910390f35b3480156103c657600080fd5b5060408051808201909152600b81526a536869626120556e636c6560a81b60208201525b6040516103b1919061205d565b34801561040357600080fd5b506104176104123660046120d7565b610af6565b60405190151581526020016103b1565b34801561043357600080fd5b50601954610447906001600160a01b031681565b6040516001600160a01b0390911681526020016103b1565b34801561046b57600080fd5b506002546103a7565b34801561048057600080fd5b5061041761048f366004612103565b610b63565b3480156104a057600080fd5b506104b46104af366004612144565b610c25565b005b3480156104c257600080fd5b506103a7610c79565b3480156104d757600080fd5b506103a760105481565b3480156104ed57600080fd5b506104b46104fc366004612161565b610ccb565b34801561050d57600080fd5b506104b461051c366004612183565b610d5f565b34801561052d57600080fd5b5061041761053c366004612144565b6000546001600160a01b0391821691161490565b34801561055c57600080fd5b506104b461056b366004612161565b610d97565b34801561057c57600080fd5b50604051601281526020016103b1565b34801561059857600080fd5b50601a54610447906001600160a01b031681565b3480156105b857600080fd5b506104b46105c73660046121bf565b610e49565b3480156105d857600080fd5b506104176105e7366004612144565b600a6020526000908152604090205460ff1681565b34801561060857600080fd5b50610417610617366004612144565b600c6020526000908152604090205460ff1681565b34801561063857600080fd5b506103a760145481565b34801561064e57600080fd5b506103a7600f5481565b34801561066457600080fd5b5060195461041790600160a81b900460ff1681565b34801561068557600080fd5b50610417610694366004612144565b610e95565b3480156106a557600080fd5b50600e54610447906001600160a01b031681565b3480156106c557600080fd5b506104b4610ea3565b3480156106da57600080fd5b506103a76106e9366004612144565b6001600160a01b031660009081526003602052604090205490565b34801561071057600080fd5b506104b4610ed7565b34801561072557600080fd5b506103a7601c5481565b34801561073b57600080fd5b506104b4610f25565b34801561075057600080fd5b506103a760135481565b34801561076657600080fd5b506103a7610775366004612144565b610f84565b34801561078657600080fd5b506103a7601b5481565b34801561079c57600080fd5b506104b46107ab3660046121db565b610ff3565b3480156107bc57600080fd5b5060085461041790600160a01b900460ff1681565b3480156107dd57600080fd5b506104b46107ec3660046121db565b611022565b3480156107fd57600080fd5b506104b46110b0565b34801561081257600080fd5b506000546001600160a01b0316610447565b34801561083057600080fd5b5061041761083f366004612144565b600b6020526000908152604090205460ff1681565b34801561086057600080fd5b5060408051808201909152600581526414d21250d360da1b60208201526103ea565b34801561088e57600080fd5b506104b461089d3660046121f4565b61111e565b3480156108ae57600080fd5b506104b46108bd3660046121db565b611173565b3480156108ce57600080fd5b50601654610447906001600160a01b031681565b3480156108ee57600080fd5b506104176108fd3660046120d7565b6111a2565b34801561090e57600080fd5b506104b461091d36600461223f565b6111af565b34801561092e57600080fd5b506103a7600d5481565b34801561094457600080fd5b506104b4610953366004612144565b611241565b34801561096457600080fd5b50601754610447906001600160a01b031681565b34801561098457600080fd5b506103a760125481565b34801561099a57600080fd5b506104b461128d565b3480156109af57600080fd5b506103a760115481565b3480156109c557600080fd5b506104b46109d43660046121db565b6112d0565b3480156109e557600080fd5b506103a76109f4366004612304565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a2b57600080fd5b50600154610447906001600160a01b031681565b348015610a4b57600080fd5b506104b4610a5a366004612144565b6112ff565b348015610a6b57600080fd5b506104b4610a7a3660046121f4565b61137d565b348015610a8b57600080fd5b50601554610447906001600160a01b031681565b348015610aab57600080fd5b506103a7601d5481565b348015610ac157600080fd5b506104b4610ad03660046121f4565b6113b1565b348015610ae157600080fd5b5060195461041790600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b519086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610c10576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610beb918490611448565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610c1b848484611482565b90505b9392505050565b6000546001600160a01b03163314610c585760405162461bcd60e51b8152600401610c4f9061233d565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610cc6906007546001600160a01b0316600090815260036020526040902054610cc09060025490611938565b90611938565b905090565b6000546001600160a01b03163314610cf55760405162461bcd60e51b8152600401610c4f9061233d565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610d4357600080fd5b505af1158015610d57573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610d895760405162461bcd60e51b8152600401610c4f9061233d565b601192909255601255601355565b6000546001600160a01b03163314610dc15760405162461bcd60e51b8152600401610c4f9061233d565b600f82905560108190556006821115610e075760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610c4f565b60066010541115610e455760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610c4f565b5050565b6000546001600160a01b03163314610e735760405162461bcd60e51b8152600401610c4f9061233d565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000610b5d82600019610af6565b6000546001600160a01b03163314610ecd5760405162461bcd60e51b8152600401610c4f9061233d565b610ed561197a565b565b6000546001600160a01b03163314610f015760405162461bcd60e51b8152600401610c4f9061233d565b600754601880546001600160a01b0319166001600160a01b03909216919091179055565b601a54604051631149527960e01b81523360048201526001600160a01b0390911690631149527990602401600060405180830381600087803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b50505050565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610fcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d919061235d565b6000546001600160a01b0316331461101d5760405162461bcd60e51b8152600401610c4f9061233d565b601d55565b6000546001600160a01b0316331461104c5760405162461bcd60e51b8152600401610c4f9061233d565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c47990602401600060405180830381600087803b15801561109557600080fd5b505af11580156110a9573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146110da5760405162461bcd60e51b8152600401610c4f9061233d565b47801561111b576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e45573d6000803e3d6000fd5b50565b6000546001600160a01b031633146111485760405162461bcd60e51b8152600401610c4f9061233d565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461119d5760405162461bcd60e51b8152600401610c4f9061233d565b601b55565b6000610c1e338484611482565b6000546001600160a01b031633146111d95760405162461bcd60e51b8152600401610c4f9061233d565b60005b8151811015610e45576001600960008484815181106111fd576111fd612376565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611239816123a2565b9150506111dc565b6000546001600160a01b0316331461126b5760405162461bcd60e51b8152600401610c4f9061233d565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112b75760405162461bcd60e51b8152600401610c4f9061233d565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146112fa5760405162461bcd60e51b8152600401610c4f9061233d565b601c55565b6000546001600160a01b031633146113295760405162461bcd60e51b8152600401610c4f9061233d565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146113a75760405162461bcd60e51b8152600401610c4f9061233d565b610e458282611b08565b6000546001600160a01b031633146113db5760405162461bcd60e51b8152600401610c4f9061233d565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610c1e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611be7565b6000818484111561146c5760405162461bcd60e51b8152600401610c4f919061205d565b50600061147984866123bb565b95945050505050565b600080546001600160a01b038581169116148015906114af57506000546001600160a01b03848116911614155b1561150d57601954600160b01b900460ff1661150d5760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610c4f565b6001600160a01b03841660009081526009602052604090205460ff1615801561154f57506001600160a01b03831660009081526009602052604090205460ff16155b61155857600080fd5b601954600160a01b900460ff161561157c57611575848484611c15565b9050610c1e565b601c54821115806115a557506001600160a01b0384166000908152600b602052604090205460ff165b6115d65760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610c4f565b6001600160a01b0383166000908152600b602052604090205460ff161580156116085750600854600160a01b900460ff165b1561166a57601d546001600160a01b0384166000908152600360205260409020546116339084611cfb565b111561166a5760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610c4f565b6016546001600160a01b0316331480159061168f5750601954600160a01b900460ff16155b80156116a45750601954600160a81b900460ff165b80156116c15750601e543060009081526003602052604090205410155b156116ce576116ce61197a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260039091529190912054611720918490611448565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561177057506001600160a01b0384166000908152600a602052604090205460ff16155b61177a5782611785565b611785858585611d5a565b6001600160a01b0385166000908152600360205260409020549091506117ab9082611cfb565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff1661184f57601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561183c57600080fd5b505af192505050801561184d575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166118e057601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156118cd57600080fd5b505af19250505080156118de575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161192591815260200190565b60405180910390a3506001949350505050565b6000610c1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611448565b6019805460ff60a01b1916600160a01b179055306000908152600360205260408120546012549091906119c0906002906119ba9060649082908790611e1d565b90611406565b905060006119ce8383611938565b90506119d981611e9f565b600047905060006119fa60646119ba60115485611e1d90919063ffffffff16565b90506000611a1860646119ba60135486611e1d90919063ffffffff16565b90506000611a3b60026119ba60646119ba60125489611e1d90919063ffffffff16565b90508315611a7f576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611a7d573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611acf57600080fd5b505af193505050508015611ae1575060015b508515611af257611af28682611fc8565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611b2f57506016546001600160a01b03838116911614155b611b3857600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611b9e57601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610d29565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610d29565b60008183611c085760405162461bcd60e51b8152600401610c4f919061205d565b50600061147984866123d2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611c66918490611448565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611c959083611cfb565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ce99086815260200190565b60405180910390a35060019392505050565b600080611d0883856123f4565b905083811015610c1e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c4f565b60165460009081906001600160a01b03858116911614611d7c57600f54611d80565b6010545b90506000611d9360646119ba8685611e1d565b30600090815260036020526040902054909150611db09082611cfb565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e019085815260200190565b60405180910390a3611e138482611938565b9695505050505050565b600082600003611e2f57506000610b5d565b6000611e3b838561240c565b905082611e4885836123d2565b14610c1e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c4f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ed457611ed4612376565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f51919061242b565b81600181518110611f6457611f64612376565b60200260200101906001600160a01b031690816001600160a01b031681525050611f8e3083610af6565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d29908590600090869030904290600401612448565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612038573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110a991906124b9565b600060208083528351808285015260005b8181101561208a5785810183015185820160400152820161206e565b8181111561209c576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461111b57600080fd5b80356120d2816120b2565b919050565b600080604083850312156120ea57600080fd5b82356120f5816120b2565b946020939093013593505050565b60008060006060848603121561211857600080fd5b8335612123816120b2565b92506020840135612133816120b2565b929592945050506040919091013590565b60006020828403121561215657600080fd5b8135610c1e816120b2565b6000806040838503121561217457600080fd5b50508035926020909101359150565b60008060006060848603121561219857600080fd5b505081359360208301359350604090920135919050565b803580151581146120d257600080fd5b600080604083850312156121d257600080fd5b6120f5836121af565b6000602082840312156121ed57600080fd5b5035919050565b6000806040838503121561220757600080fd5b8235612212816120b2565b9150612220602084016121af565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561225257600080fd5b823567ffffffffffffffff8082111561226a57600080fd5b818501915085601f83011261227e57600080fd5b81358181111561229057612290612229565b8060051b604051601f19603f830116810181811085821117156122b5576122b5612229565b6040529182528482019250838101850191888311156122d357600080fd5b938501935b828510156122f8576122e9856120c7565b845293850193928501926122d8565b98975050505050505050565b6000806040838503121561231757600080fd5b8235612322816120b2565b91506020830135612332816120b2565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b60006020828403121561236f57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016123b4576123b461238c565b5060010190565b6000828210156123cd576123cd61238c565b500390565b6000826123ef57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124075761240761238c565b500190565b60008160001904831182151516156124265761242661238c565b500290565b60006020828403121561243d57600080fd5b8151610c1e816120b2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124985784516001600160a01b031683529383019391830191600101612473565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124ce57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f88aa961a66b2cea051503243ca1ec7d35fa67d4a9669dba965d529fd8188ffa64736f6c634300080d0033

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

0000000000000000000000007f5a7166c1878b1c05d587536f40faed5a3b1efe

-----Decoded View---------------
Arg [0] : _owner (address): 0x7F5A7166c1878B1c05D587536f40fAEd5A3B1Efe

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007f5a7166c1878b1c05d587536f40faed5a3b1efe


Deployed Bytecode Sourcemap

11183:12025:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13071:52;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13071:52:0;;;;;;;;17318:80;;;;;;;;;;-1:-1:-1;17390:5:0;;;;;;;;;;;;-1:-1:-1;;;17390:5:0;;;;17318:80;;;;;;;:::i;17744:216::-;;;;;;;;;;-1:-1:-1;17744:216:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;17744:216:0;1393:187:1;12567:80:0;;;;;;;;;;-1:-1:-1;12567:80:0;;;;-1:-1:-1;;;;;12567:80:0;;;;;;-1:-1:-1;;;;;1749:32:1;;;1731:51;;1719:2;1704:18;12567:80:0;1585:203:1;17048:88:0;;;;;;;;;;-1:-1:-1;17121:12:0;;17048:88;;18258:366;;;;;;;;;;-1:-1:-1;18258:366:0;;;;;:::i;:::-;;:::i;16197:90::-;;;;;;;;;;-1:-1:-1;16197:90:0;;;;;:::i;:::-;;:::i;:::-;;16898:142;;;;;;;;;;;;;:::i;12251:27::-;;;;;;;;;;;;;;;;15993:196;;;;;;;;;;-1:-1:-1;15993:196:0;;;;;:::i;:::-;;:::i;14704:233::-;;;;;;;;;;-1:-1:-1;14704:233:0;;;;;:::i;:::-;;:::i;3390:103::-;;;;;;;;;;-1:-1:-1;3390:103:0;;;;;:::i;:::-;3445:4;3480:5;-1:-1:-1;;;;;3469:16:0;;;3480:5;;3469:16;;3390:103;14449:242;;;;;;;;;;-1:-1:-1;14449:242:0;;;;;:::i;:::-;;:::i;17142:80::-;;;;;;;;;;-1:-1:-1;17142:80:0;;11480:2;3222:36:1;;3210:2;3195:18;17142:80:0;3080:184:1;12775:26:0;;;;;;;;;;-1:-1:-1;12775:26:0;;;;-1:-1:-1;;;;;12775:26:0;;;15786:199;;;;;;;;;;-1:-1:-1;15786:199:0;;;;;:::i;:::-;;:::i;11983:44::-;;;;;;;;;;-1:-1:-1;11983:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12089:49;;;;;;;;;;-1:-1:-1;12089:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12405:34;;;;;;;;;;;;;;;;12218:26;;;;;;;;;;;;;;;;12684:40;;;;;;;;;;-1:-1:-1;12684:40:0;;;;-1:-1:-1;;;12684:40:0;;;;;;17968:122;;;;;;;;;;-1:-1:-1;17968:122:0;;;;;:::i;:::-;;:::i;12179:30::-;;;;;;;;;;-1:-1:-1;12179:30:0;;;;-1:-1:-1;;;;;12179:30:0;;;22525:74;;;;;;;;;;;;;:::i;17488:105::-;;;;;;;;;;-1:-1:-1;17488:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;17572:18:0;17554:7;17572:18;;;:9;:18;;;;;;;17488:105;15691:87;;;;;;;;;;;;;:::i;12966:44::-;;;;;;;;;;;;;;;;23129:76;;;;;;;;;;;;;:::i;12365:31::-;;;;;;;;;;;;;;;;22969:152;;;;;;;;;;-1:-1:-1;22969:152:0;;;;;:::i;:::-;;:::i;12808:31::-;;;;;;;;;;;;;;;;15048:104;;;;;;;;;;-1:-1:-1;15048:104:0;;;;;:::i;:::-;;:::i;11902:26::-;;;;;;;;;;-1:-1:-1;11902:26:0;;;;-1:-1:-1;;;11902:26:0;;;;;;22850:111;;;;;;;;;;-1:-1:-1;22850:111:0;;;;;:::i;:::-;;:::i;22607:235::-;;;;;;;;;;;;;:::i;17404:78::-;;;;;;;;;;-1:-1:-1;17456:7:0;17474:5;-1:-1:-1;;;;;17474:5:0;17404:78;;12034:48;;;;;;;;;;-1:-1:-1;12034:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17228:84;;;;;;;;;;-1:-1:-1;17302:7:0;;;;;;;;;;;;-1:-1:-1;;;17302:7:0;;;;17228:84;;15164:122;;;;;;;;;;-1:-1:-1;15164:122:0;;;;;:::i;:::-;;:::i;16776:103::-;;;;;;;;;;-1:-1:-1;16776:103:0;;;;;:::i;:::-;;:::i;12479:19::-;;;;;;;;;;-1:-1:-1;12479:19:0;;;;-1:-1:-1;;;;;12479:19:0;;;18098:152;;;;;;;;;;-1:-1:-1;18098:152:0;;;;;:::i;:::-;;:::i;14102:166::-;;;;;;;;;;-1:-1:-1;14102:166:0;;;;;:::i;:::-;;:::i;12147:25::-;;;;;;;;;;;;;;;;15438:131;;;;;;;;;;-1:-1:-1;15438:131:0;;;;;:::i;:::-;;:::i;12505:22::-;;;;;;;;;;-1:-1:-1;12505:22:0;;;;-1:-1:-1;;;;;12505:22:0;;;12327:31;;;;;;;;;;;;;;;;14320:115;;;;;;;;;;;;;:::i;12287:33::-;;;;;;;;;;;;;;;;14945:95;;;;;;;;;;-1:-1:-1;14945:95:0;;;;;:::i;:::-;;:::i;17599:133::-;;;;;;;;;;-1:-1:-1;17599:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;17701:19:0;;;17683:7;17701:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17599:133;11261:64;;;;;;;;;;-1:-1:-1;11261:64:0;;;;-1:-1:-1;;;;;11261:64:0;;;3501:136;;;;;;;;;;-1:-1:-1;3501:136:0;;;;;:::i;:::-;;:::i;16636:132::-;;;;;;;;;;-1:-1:-1;16636:132:0;;;;;:::i;:::-;;:::i;12448:24::-;;;;;;;;;;-1:-1:-1;12448:24:0;;;;-1:-1:-1;;;;;12448:24:0;;;13017:47;;;;;;;;;;;;;;;;15294:136;;;;;;;;;;-1:-1:-1;15294:136:0;;;;;:::i;:::-;;:::i;12731:31::-;;;;;;;;;;-1:-1:-1;12731:31:0;;;;-1:-1:-1;;;12731:31:0;;;;;;17744:216;17848:10;17819:4;17836:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;17836:32:0;;;;;;;;;;:41;;;17893:37;17819:4;;17836:32;;17893:37;;;;17871:6;160:25:1;;148:2;133:18;;14:177;17893:37:0;;;;;;;;-1:-1:-1;17948:4:0;17744:216;;;;;:::o;18258:366::-;-1:-1:-1;;;;;18378:19:0;;18358:4;18378:19;;;:11;:19;;;;;;;;18398:10;18378:31;;;;;;;;-1:-1:-1;;18378:52:0;18375:186;;18480:69;;;;;;;;;;;-1:-1:-1;;;18480:69:0;;;;;;;;-1:-1:-1;;;;;18480:19:0;;-1:-1:-1;18480:19:0;;;:11;:19;;;;;18500:10;18480:31;;;;;;;;;;:69;;18516:6;;18480:35;:69::i;:::-;-1:-1:-1;;;;;18446:19:0;;;;;;:11;:19;;;;;;;;18466:10;18446:31;;;;;;;:103;18375:186;18580:36;18590:6;18598:9;18609:6;18580:9;:36::i;:::-;18573:43;;18258:366;;;;;;:::o;16197:90::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;16259:12:0::1;16274:5;16259:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16259:20:0::1;::::0;;16197:90::o;16898:142::-;17026:4;;-1:-1:-1;;;;;17026:4:0;16951:7;17572:18;;;:9;:18;;;;;;16978:54;;17005:4;;-1:-1:-1;;;;;17005:4:0;17554:7;17572:18;;;:9;:18;;;;;;16978:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;16971:61;;16898:142;:::o;15993:196::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;16106:9:::1;::::0;:67:::1;::::0;-1:-1:-1;;;16106:67:0;;::::1;::::0;::::1;7071:25:1::0;;;7112:18;;;7105:34;;;-1:-1:-1;;;;;16106:9:0;;::::1;::::0;:33:::1;::::0;7044:18:1;;16106:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15993:196:::0;;:::o;14704:233::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;14828:13:::1;:28:::0;;;;14867:11:::1;:22:::0;14900:11:::1;:29:::0;14704:233::o;14449:242::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;14545:6:::1;:18:::0;;;14574:7:::1;:20:::0;;;14625:1:::1;14615:11:::0;::::1;;14607:32;;;::::0;-1:-1:-1;;;14607:32:0;;7352:2:1;14607:32:0::1;::::0;::::1;7334:21:1::0;7391:1;7371:18;;;7364:29;-1:-1:-1;;;7409:18:1;;;7402:38;7457:18;;14607:32:0::1;7150:331:1::0;14607:32:0::1;14669:1;14658:7;;:12;;14650:33;;;::::0;-1:-1:-1;;;14650:33:0;;7352:2:1;14650:33:0::1;::::0;::::1;7334:21:1::0;7391:1;7371:18;;;7364:29;-1:-1:-1;;;7409:18:1;;;7402:38;7457:18;;14650:33:0::1;7150:331:1::0;14650:33:0::1;14449:242:::0;;:::o;15786:199::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;15895:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;15895:39:0::1;-1:-1:-1::0;;;;15895:39:0;;::::1;::::0;;;::::1;::::0;;;15945:13:::1;:32:::0;15786:199::o;17968:122::-;18023:4;18047:35;18055:7;-1:-1:-1;;18047:7:0;:35::i;22525:74::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;22581:10:::1;:8;:10::i;:::-;22525:74::o:0;15691:87::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;15765:4:::1;::::0;15645:10;:27;;-1:-1:-1;;;;;;15645:27:0;-1:-1:-1;;;;;15765:4:0;;::::1;15645:27:::0;;;;;;22525:74::o;23129:76::-;23168:9;;:29;;-1:-1:-1;;;23168:29:0;;23186:10;23168:29;;;1731:51:1;-1:-1:-1;;;;;23168:9:0;;;;:17;;1704:18:1;;23168:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23129:76::o;22969:152::-;23073:9;;:40;;-1:-1:-1;;;23073:40:0;;-1:-1:-1;;;;;1749:32:1;;;23073:40:0;;;1731:51:1;23046:7:0;;23073:9;;:27;;1704:18:1;;23073:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15048:104::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;15123:9:::1;:21:::0;15048:104::o;22850:111::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;22925:9:::1;::::0;:28:::1;::::0;-1:-1:-1;;;;;;22925:28:0;;::::1;::::0;::::1;160:25:1::0;;;-1:-1:-1;;;;;22925:9:0;;::::1;::::0;:17:::1;::::0;133:18:1;;22925:28:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22850:111:::0;:::o;22607:235::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;22691:21:::1;22726:22:::0;;22723:112:::1;;22782:11;::::0;22774:49:::1;::::0;-1:-1:-1;;;;;22782:11:0;;::::1;::::0;22774:49;::::1;;;::::0;22804:18;;22782:11:::1;22774:49:::0;22782:11;22774:49;22804:18;22782:11;22774:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;22723:112;22651:191;22607:235::o:0;15164:122::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15250:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15250:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15164:122::o;16776:103::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;16850:12:::1;:21:::0;16776:103::o;18098:152::-;18178:4;18202:40;18212:10;18224:9;18235:6;18202:9;:40::i;14102:166::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;14178:6:::1;14173:88;14194:5;:12;14190:1;:16;14173:88;;;14245:4;14228;:14;14233:5;14239:1;14233:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14228:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14228:14:0;:21;;-1:-1:-1;;14228:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14208:3;::::1;::::0;::::1;:::i;:::-;;;;14173:88;;15438:131:::0;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;15524:11:::1;:37:::0;;-1:-1:-1;;;;;;15524:37:0::1;-1:-1:-1::0;;;;;15524:37:0;;;::::1;::::0;;;::::1;::::0;;15438:131::o;14320:115::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;14386:12:::1;14373:10;:25:::0;14409:11:::1;:18:::0;;-1:-1:-1;;;;14409:18:0::1;-1:-1:-1::0;;;14409:18:0::1;::::0;;14320:115::o;14945:95::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;15016:5:::1;:16:::0;14945:95::o;3501:136::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;3577:5:::1;:11:::0;;-1:-1:-1;;;;;;3577:11:0::1;-1:-1:-1::0;;;;;3577:11:0;::::1;::::0;;::::1;::::0;;;3604:25:::1;::::0;1731:51:1;;;3604:25:0::1;::::0;1719:2:1;1704:18;3604:25:0::1;;;;;;;3501:136:::0;:::o;16636:132::-;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;16724:36:::1;16745:6;16753;16724:20;:36::i;15294:136::-:0;3445:4;3480:5;-1:-1:-1;;;;;3480:5:0;3297:10;3469:16;3281:38;;;;-1:-1:-1;;;3281:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15390:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;15390:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15294:136::o;1589:132::-;1647:7;1674:39;1678:1;1681;1674:39;;;;;;;;;;;;;;;;;:3;:39::i;1135:192::-;1221:7;1257:12;1249:6;;;;1241:29;;;;-1:-1:-1;;;1241:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1281:9:0;1293:5;1297:1;1293;:5;:::i;:::-;1281:17;1135:192;-1:-1:-1;;;;;1135:192:0:o;18632:1416::-;18720:4;18750:5;;-1:-1:-1;;;;;18741:14:0;;;18750:5;;18741:14;;;;:35;;-1:-1:-1;18771:5:0;;-1:-1:-1;;;;;18759:17:0;;;18771:5;;18759:17;;18741:35;18737:88;;;18786:11;;-1:-1:-1;;;18786:11:0;;;;18778:47;;;;-1:-1:-1;;;18778:47:0;;8627:2:1;18778:47:0;;;8609:21:1;8666:2;8646:18;;;8639:30;8705:25;8685:18;;;8678:53;8748:18;;18778:47:0;8425:347:1;18778:47:0;-1:-1:-1;;;;;18887:12:0;;;;;;:4;:12;;;;;;;;18886:13;:33;;;;-1:-1:-1;;;;;;18904:15:0;;;;;;:4;:15;;;;;;;;18903:16;18886:33;18878:42;;;;;;18936:16;;-1:-1:-1;;;18936:16:0;;;;18933:73;;;18962:41;18977:6;18985:9;18996:6;18962:14;:41::i;:::-;18955:48;;;;18933:73;19036:5;;19026:6;:15;;:42;;;-1:-1:-1;;;;;;19045:23:0;;;;;;:15;:23;;;;;;;;19026:42;19018:57;;;;-1:-1:-1;;;19018:57:0;;8979:2:1;19018:57:0;;;8961:21:1;9018:1;8998:18;;;8991:29;-1:-1:-1;;;9036:18:1;;;9029:32;9078:18;;19018:57:0;8777:325:1;19018:57:0;-1:-1:-1;;;;;19092:26:0;;;;;;:15;:26;;;;;;;;19091:27;:38;;;;-1:-1:-1;19122:7:0;;-1:-1:-1;;;19122:7:0;;;;19091:38;19088:143;;;19199:9;;-1:-1:-1;;;;;19163:20:0;;;;;;:9;:20;;;;;;:32;;19188:6;19163:24;:32::i;:::-;:45;;19155:64;;;;-1:-1:-1;;;19155:64:0;;9309:2:1;19155:64:0;;;9291:21:1;9348:1;9328:18;;;9321:29;-1:-1:-1;;;9366:18:1;;;9359:36;9412:18;;19155:64:0;9107:329:1;19155:64:0;19260:4;;-1:-1:-1;;;;;19260:4:0;19246:10;:18;;;;:39;;-1:-1:-1;19269:16:0;;-1:-1:-1;;;19269:16:0;;;;19268:17;19246:39;:64;;;;-1:-1:-1;19289:21:0;;-1:-1:-1;;;19289:21:0;;;;19246:64;:109;;;;-1:-1:-1;19342:13:0;;19332:4;19314:24;;;;:9;:24;;;;;;:41;;19246:109;19243:128;;;19358:10;:8;:10::i;:::-;19403:53;;;;;;;;;;;-1:-1:-1;;;19403:53:0;;;;;;;;-1:-1:-1;;;;;19403:17:0;;-1:-1:-1;19403:17:0;;;:9;:17;;;;;;;;:53;;19425:6;;19403:21;:53::i;:::-;-1:-1:-1;;;;;19383:17:0;;;;;;:9;:17;;;;;;;;:73;;;;19500:11;:19;;;;;;;;19499:20;:47;;;;-1:-1:-1;;;;;;19524:22:0;;;;;;:11;:22;;;;;;;;19523:23;19499:47;:93;;19586:6;19499:93;;;19549:34;19557:6;19565:9;19576:6;19549:7;:34::i;:::-;-1:-1:-1;;;;;19626:20:0;;;;;;:9;:20;;;;;;19477:115;;-1:-1:-1;19626:37:0;;19477:115;19626:24;:37::i;:::-;-1:-1:-1;;;;;19603:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;19709:24;;;;;:16;:24;;;;;;;19705:117;;19754:9;;-1:-1:-1;;;;;19781:17:0;;;19754:9;19781:17;;;:9;:17;;;;;;;;19754:45;;-1:-1:-1;;;19754:45:0;;;;;9615:51:1;;;;9682:18;;;9675:34;19754:9:0;;;:18;;9588::1;;19754:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19750:61;;-1:-1:-1;;;;;19838:27:0;;;;;;:16;:27;;;;;;;;19834:127;;19886:9;;-1:-1:-1;;;;;19916:20:0;;;19886:9;19916:20;;;:9;:20;;;;;;;;19886:51;;-1:-1:-1;;;19886:51:0;;;;;9615::1;;;;9682:18;;;9675:34;19886:9:0;;;:18;;9588::1;;19886:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19882:67;;19995:9;-1:-1:-1;;;;;19978:40:0;19987:6;-1:-1:-1;;;;;19978:40:0;;20006:11;19978:40;;;;160:25:1;;148:2;133:18;;14:177;19978:40:0;;;;;;;;-1:-1:-1;20036:4:0;;18632:1416;-1:-1:-1;;;;18632:1416:0:o;993:136::-;1051:7;1078:43;1082:1;1085;1078:43;;;;;;;;;;;;;;;;;:3;:43::i;21598:919::-;12880:16;:23;;-1:-1:-1;;;;12880:23:0;-1:-1:-1;;;12880:23:0;;;21697:4:::1;12880:23:::0;21679:24;;;:9:::1;:24;::::0;;;;;21761:11:::1;::::0;21679:24;;12880:23;21744:45:::1;::::0;21787:1:::1;::::0;21744:38:::1;::::0;21778:3:::1;::::0;21744:38;;21679:24;;21744:16:::1;:29::i;:::-;:33:::0;::::1;:38::i;:45::-;21715:74:::0;-1:-1:-1;21805:20:0::1;21828:36;:12:::0;21715:74;21828:16:::1;:36::i;:::-;21805:59;;21877:30;21894:12;21877:16;:30::i;:::-;21920:23;21946:21;21920:47;;21978:18;21999:43;22038:3;21999:34;22019:13;;21999:15;:19;;:34;;;;:::i;:43::-;21978:64;;22053:19;22075:41;22112:3;22075:32;22095:11;;22075:15;:19;;:32;;;;:::i;:41::-;22053:63;;22127:23;22153:48;22199:1;22153:41;22190:3;22153:32;22173:11;;22153:15;:19;;:32;;;;:::i;:48::-;22127:74:::0;-1:-1:-1;22224:19:0;;22220:93:::1;;22267:11;::::0;22259:42:::1;::::0;-1:-1:-1;;;;;22267:11:0;;::::1;::::0;22259:42;::::1;;;::::0;22289:11;;22267::::1;22259:42:::0;22267:11;22259:42;22289:11;22267;22259:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22220:93;22337:9;;;;;;;;;-1:-1:-1::0;;;;;22337:9:0::1;-1:-1:-1::0;;;;;22337:17:0::1;;22362:10;22337:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22333:54:::0;22411:22;;22407:103:::1;;22449:49;22462:18;22482:15;22449:12;:49::i;:::-;-1:-1:-1::0;;12926:16:0;:24;;-1:-1:-1;;;;12926:24:0;;;-1:-1:-1;;;;;21598:919:0:o;16295:333::-;-1:-1:-1;;;;;16382:23:0;;16400:4;16382:23;;;;:41;;-1:-1:-1;16419:4:0;;-1:-1:-1;;;;;16409:14:0;;;16419:4;;16409:14;;16382:41;16374:50;;;;;;-1:-1:-1;;;;;16435:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;16435:33:0;;;;;;;;;;;;16479:142;;16504:9;;:29;;-1:-1:-1;;;16504:29:0;;-1:-1:-1;;;;;9633:32:1;;;16504:29:0;;;9615:51:1;16504:9:0;9682:18:1;;;9675:34;16504:9:0;;;;:18;;9588::1;;16504:29:0;9441:274:1;16479:142:0;16564:9;;-1:-1:-1;;;;;16591:17:0;;;16564:9;16591:17;;;:9;:17;;;;;;;;16564:45;;-1:-1:-1;;;16564:45:0;;;;;9615:51:1;;;;9682:18;;;9675:34;16564:9:0;;;:18;;9588::1;;16564:45:0;9441:274:1;1727:345:0;1813:7;1915:12;1908:5;1900:28;;;;-1:-1:-1;;;1900:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1939:9:0;1951:5;1955:1;1951;:5;:::i;20060:330::-;20190:53;;;;;;;;;;;-1:-1:-1;;;20190:53:0;;;;;;;;-1:-1:-1;;;;;20190:17:0;;20153:4;20190:17;;;:9;:17;;;;;;;:53;;20212:6;;20190:21;:53::i;:::-;-1:-1:-1;;;;;20170:17:0;;;;;;;:9;:17;;;;;;:73;;;;20277:20;;;;;;;:32;;20302:6;20277:24;:32::i;:::-;-1:-1:-1;;;;;20254:20:0;;;;;;;:9;:20;;;;;;;:55;;;;20325:35;;;;;;;;;;20353:6;160:25:1;;148:2;133:18;;14:177;20325:35:0;;;;;;;;-1:-1:-1;20378:4:0;20060:330;;;;;:::o;806:181::-;864:7;;896:5;900:1;896;:5;:::i;:::-;884:17;;925:1;920;:6;;912:46;;;;-1:-1:-1;;;912:46:0;;10564:2:1;912:46:0;;;10546:21:1;10603:2;10583:18;;;10576:30;10642:29;10622:18;;;10615:57;10689:18;;912:46:0;10362:351:1;20404:427:0;20544:4;;20490:7;;;;-1:-1:-1;;;;;20544:17:0;;;:4;;:17;:36;;20574:6;;20544:36;;;20564:7;;20544:36;20520:60;-1:-1:-1;20591:17:0;20611:34;20641:3;20611:25;:6;20520:60;20611:10;:25::i;:34::-;20703:4;20685:24;;;;:9;:24;;;;;;20591:54;;-1:-1:-1;20685:39:0;;20591:54;20685:28;:39::i;:::-;20676:4;20658:24;;;;:9;:24;;;;;;;:66;;;;20740:42;;-1:-1:-1;;;;;20740:42:0;;;;;;;20772:9;160:25:1;;148:2;133:18;;14:177;20740:42:0;;;;;;;;20802:21;:6;20813:9;20802:10;:21::i;:::-;20795:28;20404:427;-1:-1:-1;;;;;;20404:427:0:o;1333:250::-;1391:7;1415:1;1420;1415:6;1411:47;;-1:-1:-1;1445:1:0;1438:8;;1411:47;1470:9;1482:5;1486:1;1482;:5;:::i;:::-;1470:17;-1:-1:-1;1515:1:0;1506:5;1510:1;1470:17;1506:5;:::i;:::-;:10;1498:56;;;;-1:-1:-1;;;1498:56:0;;11093:2:1;1498:56:0;;;11075:21:1;11132:2;11112:18;;;11105:30;11171:34;11151:18;;;11144:62;-1:-1:-1;;;11222:18:1;;;11215:31;11263:19;;1498:56:0;10891:397:1;20843:460:0;20935:16;;;20949:1;20935:16;;;;;;;;20911:21;;20935:16;;;;;;;;;;-1:-1:-1;20935:16:0;20911:40;;20980:4;20962;20967:1;20962:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20962:23:0;;;:7;;;;;;;;;;:23;;;;21006:6;;:13;;;-1:-1:-1;;;21006:13:0;;;;:6;;;;;:11;;:13;;;;;20962:7;;21006:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20996:4;21001:1;20996:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20996:23:0;;;-1:-1:-1;;;;;20996:23:0;;;;;21032:35;21048:4;21055:11;21032:7;:35::i;:::-;-1:-1:-1;21080:6:0;;:215;;-1:-1:-1;;;21080:215:0;;-1:-1:-1;;;;;21080:6:0;;;;:57;;:215;;21152:11;;21080:6;;21222:4;;21249;;21269:15;;21080:215;;;:::i;21311:279::-;21392:6;;21533:8;;21392:190;;-1:-1:-1;;;21392:190:0;;21455:4;21392:190;;;12875:34:1;12925:18;;;12918:34;;;21392:6:0;12968:18:1;;;12961:34;;;13011:18;;;13004:34;-1:-1:-1;;;;;21533:8:0;;;13054:19:1;;;13047:44;21556:15:0;13107:19:1;;;13100:35;21392:6:0;;;:22;;21422:9;;12809:19:1;;21392:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:134;1002:20;;1031:31;1002:20;1031:31;:::i;:::-;934:134;;;:::o;1073:315::-;1141:6;1149;1202:2;1190:9;1181:7;1177:23;1173:32;1170:52;;;1218:1;1215;1208:12;1170:52;1257:9;1244:23;1276:31;1301:5;1276:31;:::i;:::-;1326:5;1378:2;1363:18;;;;1350:32;;-1:-1:-1;;;1073:315:1:o;1793:456::-;1870:6;1878;1886;1939:2;1927:9;1918:7;1914:23;1910:32;1907:52;;;1955:1;1952;1945:12;1907:52;1994:9;1981:23;2013:31;2038:5;2013:31;:::i;:::-;2063:5;-1:-1:-1;2120:2:1;2105:18;;2092:32;2133:33;2092:32;2133:33;:::i;:::-;1793:456;;2185:7;;-1:-1:-1;;;2239:2:1;2224:18;;;;2211:32;;1793:456::o;2254:247::-;2313:6;2366:2;2354:9;2345:7;2341:23;2337:32;2334:52;;;2382:1;2379;2372:12;2334:52;2421:9;2408:23;2440:31;2465:5;2440:31;:::i;2506:248::-;2574:6;2582;2635:2;2623:9;2614:7;2610:23;2606:32;2603:52;;;2651:1;2648;2641:12;2603:52;-1:-1:-1;;2674:23:1;;;2744:2;2729:18;;;2716:32;;-1:-1:-1;2506:248:1:o;2759:316::-;2836:6;2844;2852;2905:2;2893:9;2884:7;2880:23;2876:32;2873:52;;;2921:1;2918;2911:12;2873:52;-1:-1:-1;;2944:23:1;;;3014:2;2999:18;;2986:32;;-1:-1:-1;3065:2:1;3050:18;;;3037:32;;2759:316;-1:-1:-1;2759:316:1:o;3503:160::-;3568:20;;3624:13;;3617:21;3607:32;;3597:60;;3653:1;3650;3643:12;3668:248;3733:6;3741;3794:2;3782:9;3773:7;3769:23;3765:32;3762:52;;;3810:1;3807;3800:12;3762:52;3833:26;3849:9;3833:26;:::i;3921:180::-;3980:6;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;-1:-1:-1;4072:23:1;;3921:180;-1:-1:-1;3921:180:1:o;4106:315::-;4171:6;4179;4232:2;4220:9;4211:7;4207:23;4203:32;4200:52;;;4248:1;4245;4238:12;4200:52;4287:9;4274:23;4306:31;4331:5;4306:31;:::i;:::-;4356:5;-1:-1:-1;4380:35:1;4411:2;4396:18;;4380:35;:::i;:::-;4370:45;;4106:315;;;;;:::o;4426:127::-;4487:10;4482:3;4478:20;4475:1;4468:31;4518:4;4515:1;4508:15;4542:4;4539:1;4532:15;4558:1121;4642:6;4673:2;4716;4704:9;4695:7;4691:23;4687:32;4684:52;;;4732:1;4729;4722:12;4684:52;4772:9;4759:23;4801:18;4842:2;4834:6;4831:14;4828:34;;;4858:1;4855;4848:12;4828:34;4896:6;4885:9;4881:22;4871:32;;4941:7;4934:4;4930:2;4926:13;4922:27;4912:55;;4963:1;4960;4953:12;4912:55;4999:2;4986:16;5021:2;5017;5014:10;5011:36;;;5027:18;;:::i;:::-;5073:2;5070:1;5066:10;5105:2;5099:9;5168:2;5164:7;5159:2;5155;5151:11;5147:25;5139:6;5135:38;5223:6;5211:10;5208:22;5203:2;5191:10;5188:18;5185:46;5182:72;;;5234:18;;:::i;:::-;5270:2;5263:22;5320:18;;;5354:15;;;;-1:-1:-1;5396:11:1;;;5392:20;;;5424:19;;;5421:39;;;5456:1;5453;5446:12;5421:39;5480:11;;;;5500:148;5516:6;5511:3;5508:15;5500:148;;;5582:23;5601:3;5582:23;:::i;:::-;5570:36;;5533:12;;;;5626;;;;5500:148;;;5667:6;4558:1121;-1:-1:-1;;;;;;;;4558:1121:1:o;5944:388::-;6012:6;6020;6073:2;6061:9;6052:7;6048:23;6044:32;6041:52;;;6089:1;6086;6079:12;6041:52;6128:9;6115:23;6147:31;6172:5;6147:31;:::i;:::-;6197:5;-1:-1:-1;6254:2:1;6239:18;;6226:32;6267:33;6226:32;6267:33;:::i;:::-;6319:7;6309:17;;;5944:388;;;;;:::o;6563:329::-;6765:2;6747:21;;;6804:1;6784:18;;;6777:29;-1:-1:-1;;;6837:2:1;6822:18;;6815:36;6883:2;6868:18;;6563:329::o;7486:184::-;7556:6;7609:2;7597:9;7588:7;7584:23;7580:32;7577:52;;;7625:1;7622;7615:12;7577:52;-1:-1:-1;7648:16:1;;7486:184;-1:-1:-1;7486:184:1:o;7675:127::-;7736:10;7731:3;7727:20;7724:1;7717:31;7767:4;7764:1;7757:15;7791:4;7788:1;7781:15;7807:127;7868:10;7863:3;7859:20;7856:1;7849:31;7899:4;7896:1;7889:15;7923:4;7920:1;7913:15;7939:135;7978:3;7999:17;;;7996:43;;8019:18;;:::i;:::-;-1:-1:-1;8066:1:1;8055:13;;7939:135::o;8295:125::-;8335:4;8363:1;8360;8357:8;8354:34;;;8368:18;;:::i;:::-;-1:-1:-1;8405:9:1;;8295:125::o;10007:217::-;10047:1;10073;10063:132;;10117:10;10112:3;10108:20;10105:1;10098:31;10152:4;10149:1;10142:15;10180:4;10177:1;10170:15;10063:132;-1:-1:-1;10209:9:1;;10007:217::o;10229:128::-;10269:3;10300:1;10296:6;10293:1;10290:13;10287:39;;;10306:18;;:::i;:::-;-1:-1:-1;10342:9:1;;10229:128::o;10718:168::-;10758:7;10824:1;10820;10816:6;10812:14;10809:1;10806:21;10801:1;10794:9;10787:17;10783:45;10780:71;;;10831:18;;:::i;:::-;-1:-1:-1;10871:9:1;;10718:168::o;11293:251::-;11363:6;11416:2;11404:9;11395:7;11391:23;11387:32;11384:52;;;11432:1;11429;11422:12;11384:52;11464:9;11458:16;11483:31;11508:5;11483:31;:::i;11549:980::-;11811:4;11859:3;11848:9;11844:19;11890:6;11879:9;11872:25;11916:2;11954:6;11949:2;11938:9;11934:18;11927:34;11997:3;11992:2;11981:9;11977:18;11970:31;12021:6;12056;12050:13;12087:6;12079;12072:22;12125:3;12114:9;12110:19;12103:26;;12164:2;12156:6;12152:15;12138:29;;12185:1;12195:195;12209:6;12206:1;12203:13;12195:195;;;12274:13;;-1:-1:-1;;;;;12270:39:1;12258:52;;12365:15;;;;12330:12;;;;12306:1;12224:9;12195:195;;;-1:-1:-1;;;;;;;12446:32:1;;;;12441:2;12426:18;;12419:60;-1:-1:-1;;;12510:3:1;12495:19;12488:35;12407:3;11549:980;-1:-1:-1;;;11549:980:1:o;13146:306::-;13234:6;13242;13250;13303:2;13291:9;13282:7;13278:23;13274:32;13271:52;;;13319:1;13316;13309:12;13271:52;13348:9;13342:16;13332:26;;13398:2;13387:9;13383:18;13377:25;13367:35;;13442:2;13431:9;13427:18;13421:25;13411:35;;13146:306;;;;;:::o

Swarm Source

ipfs://6a7ef859bd4f7f22b4320752ebb9527289abd2400396aae2e02ee0d40dd0cc9d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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