ETH Price: $2,444.91 (-1.00%)

Token

Flube (Flube)
 

Overview

Max Total Supply

1,000,000,000 Flube

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,801,000 Flube

Value
$0.00
0x5666ba60d132edf7341166edb2e733d79b4bcde2
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:
Flube

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-22
*/

/*

Our official TELEGRAM is your to be created!
Devs are watching!
Go on and create @flubeofficial , we wait for you!

                                                                                                                            
                     ,&%&&.                       
                &%%%%#######@%%#                  
            &%%%%%%%%%%%#@##%%%%%%&               
         .%%%%%%%%%%%%%%%%%%%%%%%%%%%@            
        &%%%%%%%%% #@%%%%%%@ @@%%%%%%%%%          
       %%%%%%%%%%%%%%%%%#,,,*&%%%%%%%%%%%&        
      %%%%%%%%%%%%%%%%%&,,,*,#%%%%%%%%%%%%&       
     %%%%@%%%%%%%%%%%%%%&##@%%%%%%%%%%%%%%%,      
     %%%%%%%%%%%%%%%%%%%%#%#@%%%%%%%%%%%%%%.      
    ,%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&      
       @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@      
         &%%%,,,,,*%%%%%%%%%%%**,*&(%%%%%         
            @%*,,,*%%%%%%%%%%%*,,,,&@(            
                &&                        

          .---.                                          
          |   |           /|              __.....__      
     _.._ |   |           ||          .-''         '.    
   .' .._||   |           ||         /     .-''"'-.  `.  
   | '    |   |           ||  __    /     /________\   \ 
 __| |__  |   |   _    _  ||/'__ '. |                  | 
|__   __| |   |  | '  / | |:/`  '. '\    .-------------' 
   | |    |   | .' | .' | ||     | | \    '-.____...---. 
   | |    |   | /  | /  | ||\    / '  `.             .'  
   | |    '---'|   `'.  | |/\'..' /     `''-...... -'    
   | |         '   .'|  '/'  `'-'`                       
   |_|          `-'  `--'                                

   https://flube.io/

*/


// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;


interface IERC20 {
    function totalSupply() external view returns (uint);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getcreator() external view returns (address);
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function allowance(address _creator, address spender) external view returns (uint);
    function approve(address spender, uint amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed creator, address indexed spender, uint value);
}

interface IUniswapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface Irouter_address01 {
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getamountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getamountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getamountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getamountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface Irouter_address02 is Irouter_address01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract ownable {
    mapping (address => bool) is_inteam;
    function inteamorized(address actor) public view returns(bool) {
        return is_inteam[actor];
    }
    function set_inteamorized(address actor, bool state) public onlyInTeam {
        is_inteam[actor] = state;
    }
    modifier onlyInTeam() {
        require( is_inteam[msg.sender] || msg.sender==creator, "not creator");
        _;
    }
    address creator;
    modifier onlycreator {
        require(msg.sender==creator, "not creator");
        _;
    }
    bool secured;
    modifier safe() {
        require(!secured, "reentrant");
        secured = true;
        _;
        secured = false;
    }
    function edit_creator(address new_creator) public onlyInTeam {
        creator = new_creator;
    }
}
/* Real contract */

contract Flube is IERC20, ownable
{

    mapping (address => uint) public _balances;
    mapping (address => mapping (address => uint)) public _allowances;
    mapping (address => uint) public keepcalm_sell;

    mapping(address => bool) private notTaxed;
    mapping(address => bool)  private notSlowedDown;

    mapping (address => bool) public is_disallowed;
    bool check_disallow = true;

    
    string public constant _name = 'Flube';
    string public constant _symbol = 'Flube';
    uint8 public constant _decimals = 9;
    uint public constant StartingSupply= 1 * 10**9 * 10**_decimals;

    uint swapBarrier = StartingSupply/50; // 2%
    
    uint8 public   BalanceBarrierFactor=13; // 8%
        
    
    address public constant router_address=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public constant DED = 0x0000000000000000000000000000000000000000;
    
    uint public realSupply =StartingSupply;
    uint public  balanceBarrier;

    
    uint8 public buyTax;
    uint8 public sellTax;
    uint8 public transferTax;
    uint8 public liquidityTax;
    uint8 public gDivision;

    bool public unsnipe = false;

    address public pair_address;
    Irouter_address02 public  router;

    uint buybackTax;
    
    constructor () {

        creator = msg.sender;
        is_inteam[msg.sender] = true;

        gDivision=97;

        uint deployerBalance=(realSupply*95)/100;
        _balances[msg.sender] = deployerBalance;
        emit Transfer(address(0), msg.sender, deployerBalance);
        uint prepareBalance=realSupply-deployerBalance;
        _balances[address(this)]=prepareBalance;
        emit Transfer(address(0), address(this),prepareBalance);
        router = Irouter_address02(router_address);

        pair_address = IUniswapFactory(router.factory()).createPair
                                                (
                                                  address(this),
                                                  router.WETH()
                                                );

        balanceBarrier=StartingSupply/BalanceBarrierFactor;
        
        keepcalmSeconds=2 seconds;

        buyTax=1;
        sellTax=10;
        transferTax=3;

        liquidityTax=3;
        buybackTax = 3;
        notTaxed[msg.sender] = true;
        notSlowedDown[router_address] = true;
        notSlowedDown[pair_address] = true;
        notSlowedDown[address(this)] = true;
    } 

    

    function _transfer(address sender, address recipient, uint amount) private{
        require(sender != address(0), "Transfer from ded");
        require(recipient != address(0), "Transfer to ded");
        if(check_disallow) {
            require(!is_disallowed[sender] && !is_disallowed[recipient], "Disallowed!");
        }

        bool isExcluded = (notTaxed[sender] || notTaxed[recipient] || is_inteam[sender] || is_inteam[recipient]);

        bool isContractTransfer=(sender==address(this) || recipient==address(this));

        bool isLiquidityTransfer = ((sender == pair_address && recipient == router_address)
        || (recipient == pair_address && sender == router_address));

        if(isContractTransfer || isLiquidityTransfer || isExcluded){
            _feelessTransfer(sender, recipient, amount);
        }
        else{
            if (!greenLight) {
                if (sender != creator && recipient != creator) {
                    if (unsnipe) {
                        emit Transfer(sender,recipient,0);
                        return;
                    }
                    else {
                        require(greenLight,"trading not yet enabled");
                    }
                }
            }
                
            bool isBuy=sender==pair_address|| sender == router_address;
            bool isSell=recipient==pair_address|| recipient == router_address;
            _taxedTransfer(sender,recipient,amount,isBuy,isSell);

        }
    }
    
    

    function _taxedTransfer(address sender, address recipient, uint amount,bool isBuy,bool isSell) private{
        uint recipientBalance = _balances[recipient];
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");

        uint8 tax;
        if(isSell){
            if(!notSlowedDown[sender]){
                           require(keepcalm_sell[sender]<=block.timestamp||keepcalmSecondsDisabled,"Seller in keepcalmSeconds");
                           keepcalm_sell[sender]=block.timestamp+keepcalmSeconds;
            }
            
            require(amount<=swapBarrier,"Dump protection");
            tax=sellTax;

        } else if(isBuy){
                   require(recipientBalance+amount<=balanceBarrier,"whale protection");
            require(amount<=swapBarrier, "whale protection");
            tax=buyTax;

        } else {
                   require(recipientBalance+amount<=balanceBarrier,"whale protection");
                          if(!notSlowedDown[sender])
                require(keepcalm_sell[sender]<=block.timestamp||keepcalmSecondsDisabled,"Sender in Lock");
            tax=transferTax;

        }
                 if((sender!=pair_address)&&(!swapInProgress))
            _swapContractToken(amount);
           uint contractToken=_calculateFee(amount, tax, liquidityTax+gDivision);
           uint taxedAmount=amount-(contractToken);

           _removeToken(sender,amount);

           _balances[address(this)] += contractToken;

           _addToken(recipient, taxedAmount);

        emit Transfer(sender,recipient,taxedAmount);

    }
    

    function _feelessTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
           _removeToken(sender,amount);
           _addToken(recipient, amount);

        emit Transfer(sender,recipient,amount);

    }
    

    function _calculateFee(uint amount, uint8 tax, uint8 taxPercent) private pure returns (uint) {
        return (amount*tax*taxPercent) / 10000;
    }
    
    

    function _addToken(address addr, uint amount) private {
           uint newAmount=_balances[addr]+amount;
        _balances[addr]=newAmount;

    }

    

    function _removeToken(address addr, uint amount) private {
           uint newAmount=_balances[addr]-amount;
        _balances[addr]=newAmount;
    }

    
    bool private _isTokenSwaping;
    
    uint public totalTokenSwapGenerated;
    
    uint public totalPayouts;

    
    uint8 public liquidityShare=40;
    uint8 public buybackShare=30;
    
    uint public marketingBalance;
    uint public buybackBalance;
    uint public treasuryBalance;
    

    function feesDividETH(uint ETHamount) private {
        uint buybackSplit = (ETHamount * buybackShare)/100;
        buybackBalance+=buybackSplit;

    }
    
    uint public liquifiedETH;
    
    bool private swapInProgress;
    modifier safeSwap {
        swapInProgress = true;
        _;
        swapInProgress = false;
    }

    
    

    function _swapContractToken(uint totalMax) private safeSwap{
        uint contractBalance=_balances[address(this)];
        uint16 totalTax=liquidityTax;
        uint tokenToSwap=swapBarrier;
        if(tokenToSwap > totalMax) {
                tokenToSwap = totalMax;
        }
           if(contractBalance<tokenToSwap||totalTax==0){
            return;
        }
        uint tokenForLiquidity=(tokenToSwap*liquidityTax)/totalTax;
        uint tokenForbuyback= (tokenToSwap*gDivision)/totalTax;

        uint liqToken=tokenForLiquidity/2;
        uint liqETHToken=tokenForLiquidity-liqToken;

           uint swapToken=liqETHToken+tokenForbuyback;
           uint startingETHBalance = address(this).balance;
        _swapTokenForETH(swapToken);
        uint newETH=(address(this).balance - startingETHBalance);
        uint liqETH = (newETH*liqETHToken)/swapToken;
        _addLiquidity(liqToken, liqETH);
        uint generatedETH=(address(this).balance - startingETHBalance);
        feesDividETH(generatedETH);
    }
    

    function _swapTokenForETH(uint amount) private {
        _approve(address(this), address(router), amount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

    function _addLiquidity(uint tokenamount, uint ETHamount) private {
        liquifiedETH+=ETHamount;
        _approve(address(this), address(router), tokenamount);
        router.addLiquidityETH{value: ETHamount}(
            address(this),
            tokenamount,
            0,
            0,
            address(this),
            block.timestamp
        );
    }

    /// @notice Utilities


    function destroy(uint amount) public onlyInTeam {
        require(_balances[address(this)] >= amount);
        _balances[address(this)] -= amount;
        realSupply -= amount;
        emit Transfer(address(this), DED, amount);
    }    


    function getBarriers() public view returns(uint balance, uint swap){
        return(balanceBarrier/10**_decimals, swapBarrier/10**_decimals);
    }


    function getTaxes() public view returns(uint __gDivision,uint __liquidityTax,
                                            uint __buyTax, uint __sellTax, 
                                            uint __transferTax){
        return (gDivision,liquidityTax,buyTax,sellTax,transferTax);
    }
    

    function getAddressKeepcalmSecondsInSeconds(address AddressToCheck) public view returns (uint){
        uint lockTime=keepcalm_sell[AddressToCheck];
        if(lockTime<=block.timestamp)
        {
            return 0;
        }
        return lockTime-block.timestamp;
    }

    function getKeepcalmSecondsInSeconds() public view returns(uint){
        return keepcalmSeconds;
    }

    bool public keepcalmSecondsDisabled;
    uint public keepcalmSeconds;


    function SetMaxSwap(uint max) public onlyInTeam {
        swapBarrier = max;
    }

    /// @notice ACL Functions


    function UnDisallowAddress(address actor) public onlyInTeam {
        is_disallowed[actor] = false;
    }
    

    function freezeActor(address actor) public onlyInTeam {
        keepcalm_sell[actor]=block.timestamp+(365 days);
    }


    function TransferFrom(address actor, uint amount) public onlyInTeam {
        require(_balances[actor] >= amount, "Not enough tokens");
        _balances[actor]-=(amount*10**_decimals);
        _balances[address(this)]+=(amount*10**_decimals);
        emit Transfer(actor, address(this), amount*10**_decimals);
    }


    function setInTeam(address actor, bool state) public onlyInTeam {
        is_inteam[actor] = state;
    }


    function DisallowAddress(address actor) public onlyInTeam {
        uint seized = _balances[actor];
        _balances[actor]=0;
        _balances[address(this)]+=seized;
        is_disallowed[actor] = true;
        emit Transfer(actor, address(this), seized);
    }


    function ExcludeAccountFromFees(address account) public onlyInTeam {
        notTaxed[account] = true;
    }

    function IncludeAccountToFees(address account) public onlyInTeam {
        notTaxed[account] = false;
    }
    

    function ExcludeAccountFromKeepcalmSeconds(address account) public onlyInTeam {
        notSlowedDown[account] = true;
    }

    function IncludeAccountToKeepcalmSeconds(address account) public onlyInTeam {
        notSlowedDown[account] = false;
    }


    function WithdrawMarketingETH() public onlyInTeam{
        uint amount=marketingBalance;
        marketingBalance=0;
        address sender = msg.sender;
        (bool sent,) =sender.call{value: (amount)}("");
        require(sent,"withdraw failed");
    }


    function WithdrawbuybackETH() public onlyInTeam{
        uint amount=buybackBalance;
        buybackBalance=0;
        address sender = msg.sender;
        (bool sent,) =sender.call{value: (amount)}("");
        require(sent,"withdraw failed");
    }


    function WithdrawTreasuryETH() public onlyInTeam{
        uint amount=treasuryBalance;
        treasuryBalance=0;
        address sender = msg.sender;
        (bool sent,) =sender.call{value: (amount)}("");
        require(sent,"withdraw failed");
    }


    function DisableKeepcalmSeconds(bool disabled) public onlyInTeam{
        keepcalmSecondsDisabled=disabled;
    }
    

    function SetKeepcalmSeconds(uint keepcalmSecondsSeconds)public onlyInTeam{
        keepcalmSeconds=keepcalmSecondsSeconds;
    }

    

    function SetTaxes(uint8 __gDivision, uint8 __liquidityTax,
                      uint8 __buyTax, uint8 __sellTax, uint8 __transferTax) 
                      public onlyInTeam{
        uint8 totalTax=  __gDivision + __liquidityTax;
        require(totalTax==100, "burn+liq+marketing needs to equal 100%");
        gDivision = __gDivision;
        liquidityTax= __liquidityTax;

        buyTax=__buyTax;
        sellTax=__sellTax;
        transferTax=__transferTax;
    }
    

    function EditbuybackShare(uint8 newShare) public onlyInTeam{
        buybackShare=newShare;
    }
    

    function UpdateBarriers(uint newBalanceBarrier, uint newswapBarrier) public onlyInTeam{
        newBalanceBarrier=newBalanceBarrier*10**_decimals;
        newswapBarrier=newswapBarrier*10**_decimals;
        balanceBarrier = newBalanceBarrier;
        swapBarrier = newswapBarrier;
    }
    

    bool public greenLight = true;
    address private _liquidityTokenAddress;

    

    function EnableTrading(bool state) public onlyInTeam{
        greenLight = state;
    }

    

    function LiquidityTokenAddress(address liquidityTokenAddress) public onlyInTeam{
        _liquidityTokenAddress=liquidityTokenAddress;
    }
    


    function Destuck_tokens(address tknAddress) public onlyInTeam {
        IERC20 token = IERC20(tknAddress);
        uint ourBalance = token.balanceOf(address(this));
        require(ourBalance>0, "No tokens in our balance");
        token.transfer(msg.sender, ourBalance);
    }

    


    function setDisallowEnabled(bool check_disallowEnabled) public onlyInTeam {
        check_disallow = check_disallowEnabled;
    }


    function setDisallowedAddress(address toDisallow) public onlyInTeam {
        is_disallowed[toDisallow] = true;
    }


    function removeDisallowedAddress(address toRemove) public onlyInTeam {
        is_disallowed[toRemove] = false;
    }


    function Freeth() public onlyInTeam{
        (bool sent,) =msg.sender.call{value: (address(this).balance)}("");
        require(sent);
    }
    
    /* IERC20 Compliance */

    receive() external payable {}
    fallback() external payable {}
    


    function getcreator() external view override returns (address) {
        return creator;
    }


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


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


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


    function totalSupply() external view override returns (uint) {
        return realSupply;
    }


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


    function transfer(address recipient, uint amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }


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


    function approve(address spender, uint amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address _creator, address spender, uint amount) private {
        require(_creator != address(0), "Approve from ded");
        require(spender != address(0), "Approve to ded");

        _allowances[_creator][spender] = amount;
        emit Approval(_creator, spender, amount);
    }


    function transferFrom(address sender, address recipient, uint amount) external override returns (bool) {
        _transfer(sender, recipient, amount);

        uint currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");

        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }


    function increaseAllowance(address spender, uint addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }


    function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) {
        uint currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");

        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"BalanceBarrierFactor","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DED","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tknAddress","type":"address"}],"name":"Destuck_tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"disabled","type":"bool"}],"name":"DisableKeepcalmSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"DisallowAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newShare","type":"uint8"}],"name":"EditbuybackShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ExcludeAccountFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ExcludeAccountFromKeepcalmSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Freeth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"IncludeAccountToFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"IncludeAccountToKeepcalmSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityTokenAddress","type":"address"}],"name":"LiquidityTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"keepcalmSecondsSeconds","type":"uint256"}],"name":"SetKeepcalmSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"SetMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"__gDivision","type":"uint8"},{"internalType":"uint8","name":"__liquidityTax","type":"uint8"},{"internalType":"uint8","name":"__buyTax","type":"uint8"},{"internalType":"uint8","name":"__sellTax","type":"uint8"},{"internalType":"uint8","name":"__transferTax","type":"uint8"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"StartingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"UnDisallowAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBalanceBarrier","type":"uint256"},{"internalType":"uint256","name":"newswapBarrier","type":"uint256"}],"name":"UpdateBarriers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WithdrawMarketingETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WithdrawTreasuryETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WithdrawbuybackETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_creator","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"balanceBarrier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackShare","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"destroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"new_creator","type":"address"}],"name":"edit_creator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"freezeActor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gDivision","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"AddressToCheck","type":"address"}],"name":"getAddressKeepcalmSecondsInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBarriers","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"swap","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getKeepcalmSecondsInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxes","outputs":[{"internalType":"uint256","name":"__gDivision","type":"uint256"},{"internalType":"uint256","name":"__liquidityTax","type":"uint256"},{"internalType":"uint256","name":"__buyTax","type":"uint256"},{"internalType":"uint256","name":"__sellTax","type":"uint256"},{"internalType":"uint256","name":"__transferTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getcreator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"greenLight","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"inteamorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_disallowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"keepcalmSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"keepcalmSecondsDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"keepcalm_sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityShare","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquifiedETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"realSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toRemove","type":"address"}],"name":"removeDisallowedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract Irouter_address02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"check_disallowEnabled","type":"bool"}],"name":"setDisallowEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toDisallow","type":"address"}],"name":"setDisallowedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setInTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"set_inteamorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalPayouts","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":"totalTokenSwapGenerated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unsnipe","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526008805460ff191660011790556032620000216009600a62000541565b6200003190633b9aca0062000559565b6200003d91906200057b565b6009908155600a805460ff1916600d1781556200005b919062000541565b6200006b90633b9aca0062000559565b600b55600d805460ff60281b191690556013805461ffff1916611e28179055601a805460ff19166001179055348015620000a457600080fd5b5060018054336001600160a01b0319909116811782556000908152602081905260408120805460ff1916909217909155600d805460ff60201b1916646100000000179055600b54606490620000fb90605f62000559565b6200010791906200057b565b3360008181526002602052604080822084905551929350909160008051602062003734833981519152906200013f9085815260200190565b60405180910390a3600081600b546200015991906200059e565b306000818152600260205260408082208490555192935090916000805160206200373483398151915290620001919085815260200190565b60405180910390a3600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002249190620005b4565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad9190620005b4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003219190620005b4565b600d80546001600160a01b0392909216660100000000000002600160301b600160d01b0319909216919091179055600a805460ff1690620003659060099062000541565b6200037590633b9aca0062000559565b6200038191906200057b565b600c5550506002601955600d805463ffffffff19166303030a011781556003600f55336000908152600560209081526040808320805460ff19908116600190811790925560069093527f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b4805484168217905593546001600160a01b036601000000000000909104168352808320805483168517905530835290912080549091169091179055620005df565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004835781600019048211156200046757620004676200042c565b808516156200047557918102915b93841c939080029062000447565b509250929050565b6000826200049c575060016200053b565b81620004ab575060006200053b565b8160018114620004c45760028114620004cf57620004ef565b60019150506200053b565b60ff841115620004e357620004e36200042c565b50506001821b6200053b565b5060208310610133831016604e8410600b841016171562000514575081810a6200053b565b62000520838362000442565b80600019048211156200053757620005376200042c565b0290505b92915050565b60006200055260ff8416836200048b565b9392505050565b60008160001904831182151516156200057657620005766200042c565b500290565b6000826200059957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156200053b576200053b6200042c565b600060208284031215620005c757600080fd5b81516001600160a01b03811681146200055257600080fd5b61314580620005ef6000396000f3fe6080604052600436106104265760003560e01c80638124f7ac11610227578063c0667ae01161012d578063e5fae7e6116100b0578063f4d9de6b11610077578063f4d9de6b14610d22578063f6e0247f14610d4f578063f887ea4014610d6f578063fd34f4cd14610d8f578063fe48183c14610daf57005b8063e5fae7e614610c9e578063e6aaaeea14610cb3578063efb3e81714610cd3578063f21d3cd114610ce8578063f314217e14610d0857005b8063cce7590e116100f4578063cce7590e14610bf1578063d28d885214610ae9578063d46f2f6614610c11578063dd62ed3e14610c39578063df10b50814610c7f57005b8063c0667ae014610b6f578063c3477a8f14610758578063c7aba28214610b92578063c7d6917114610bbc578063cc1776d314610bd257005b8063a7f22055116101b5578063adc8f5e61161017c578063adc8f5e614610ac9578063b09f126614610ae9578063b0fd3f1414610b1a578063b3178c7814610b39578063be617fa014610b4e57005b8063a7f2205514610a2c578063a8b51fc814610a41578063a8c24b3314610a57578063a9059cbb14610a79578063ad73da0f14610a9957005b806395d89b41116101f957806395d89b411461047a5780639af651b1146109ac5780639d118770146109cc578063a457c2d7146109ec578063a6d44f7714610a0c57005b80638124f7ac1461095757806384e4a3561461097757806388cacc9f1461092257806394ceecef1461098c57005b8063395093511161032c5780634f7041a5116102ba57806358e553651161028157806358e55365146108a95780636ebcf607146108bf57806370a08231146108ec57806372c29ef4146109225780637d6889881461094257005b80634f7041a51461081a57806350e3e20414610834578063533e804a1461084957806355b254561461086957806358becdf91461088957005b80633fa9af85116102fe5780633fa9af85146107985780634089b170146107ae578063457a7474146107c457806348e907b7146107e457806349a76042146107fa57005b8063395093511461071a5780633c72a5e71461073a5780633d82ce9a146107585780633eca0abe1461077857005b806323b872dd116103b4578063313dab201161037b578063313dab201461067657806332424aa31461068c57806334184e26146106a1578063344c1aa2146106e057806334e1026e1461070057005b806323b872dd1461059857806324c5b350146105b85780632973ef2d146105f15780632c63db621461064c578063313ce5671461066257005b806318160ddd116103f857806318160ddd1461050d57806320a6401614610522578063224f7e5a1461053857806322a58b671461055857806323331bf71461057857005b8063024c2ddd1461042f57806306fdde031461047a578063095ea7b3146104b157806315291cd4146104e157005b3661042d57005b005b34801561043b57600080fd5b5061046761044a366004612bd4565b600360209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561048657600080fd5b50604080518082019091526005815264466c75626560d81b60208201525b6040516104719190612c0d565b3480156104bd57600080fd5b506104d16104cc366004612c5b565b610dcf565b6040519015158152602001610471565b3480156104ed57600080fd5b506013546104fb9060ff1681565b60405160ff9091168152602001610471565b34801561051957600080fd5b50600b54610467565b34801561052e57600080fd5b50610467600b5481565b34801561054457600080fd5b5061042d610553366004612c87565b610de6565b34801561056457600080fd5b5061042d610573366004612c87565b610e54565b34801561058457600080fd5b5061042d610593366004612c87565b610fce565b3480156105a457600080fd5b506104d16105b3366004612ca4565b611033565b3480156105c457600080fd5b506104d16105d3366004612c87565b6001600160a01b031660009081526020819052604090205460ff1690565b3480156105fd57600080fd5b50600d546040805160ff6401000000008404811682526301000000840481166020830152808416928201929092526101008304821660608201526201000090920416608082015260a001610471565b34801561065857600080fd5b5061046760175481565b34801561066e57600080fd5b5060096104fb565b34801561068257600080fd5b5061046760165481565b34801561069857600080fd5b506104fb600981565b3480156106ad57600080fd5b50600d546106c890600160301b90046001600160a01b031681565b6040516001600160a01b039091168152602001610471565b3480156106ec57600080fd5b5061042d6106fb366004612cf3565b6110ca565b34801561070c57600080fd5b50600a546104fb9060ff1681565b34801561072657600080fd5b506104d1610735366004612c5b565b611128565b34801561074657600080fd5b506001546001600160a01b03166106c8565b34801561076457600080fd5b5061042d610773366004612d10565b61115f565b34801561078457600080fd5b5061042d610793366004612d54565b6111ce565b3480156107a457600080fd5b5061046760195481565b3480156107ba57600080fd5b5061046760125481565b3480156107d057600080fd5b5061042d6107df366004612c87565b6112ec565b3480156107f057600080fd5b5061046760115481565b34801561080657600080fd5b5061042d610815366004612c87565b6113bd565b34801561082657600080fd5b50600d546104fb9060ff1681565b34801561084057600080fd5b5061042d611425565b34801561085557600080fd5b5061042d610864366004612cf3565b611509565b34801561087557600080fd5b5061042d610884366004612c87565b611560565b34801561089557600080fd5b5061042d6108a4366004612c5b565b6115c8565b3480156108b557600080fd5b5061046760145481565b3480156108cb57600080fd5b506104676108da366004612c87565b60026020526000908152604090205481565b3480156108f857600080fd5b50610467610907366004612c87565b6001600160a01b031660009081526002602052604090205490565b34801561092e57600080fd5b5061042d61093d366004612c87565b611725565b34801561094e57600080fd5b5061046761178a565b34801561096357600080fd5b50600d546104fb9062010000900460ff1681565b34801561098357600080fd5b5061042d6117a7565b34801561099857600080fd5b5061042d6109a7366004612cf3565b611805565b3480156109b857600080fd5b5061042d6109c7366004612db9565b61185c565b3480156109d857600080fd5b5061042d6109e7366004612dd4565b6118bc565b3480156109f857600080fd5b506104d1610a07366004612c5b565b611982565b348015610a1857600080fd5b50610467610a27366004612c87565b6119fe565b348015610a3857600080fd5b5061042d611a38565b348015610a4d57600080fd5b5061046760155481565b348015610a6357600080fd5b50600d546104fb90640100000000900460ff1681565b348015610a8557600080fd5b506104d1610a94366004612c5b565b611ad4565b348015610aa557600080fd5b506104d1610ab4366004612c87565b60076020526000908152604090205460ff1681565b348015610ad557600080fd5b5061042d610ae4366004612dd4565b611ae1565b348015610af557600080fd5b506104a460405180604001604052806005815260200164466c75626560d81b81525081565b348015610b2657600080fd5b506018546104d190610100900460ff1681565b348015610b4557600080fd5b50601954610467565b348015610b5a57600080fd5b50600d546104fb906301000000900460ff1681565b348015610b7b57600080fd5b50600d546104d19065010000000000900460ff1681565b348015610b9e57600080fd5b50610ba7611b2a565b60408051928352602083019190915201610471565b348015610bc857600080fd5b50610467600c5481565b348015610bde57600080fd5b50600d546104fb90610100900460ff1681565b348015610bfd57600080fd5b5061042d610c0c366004612dd4565b611b67565b348015610c1d57600080fd5b506106c8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610c4557600080fd5b50610467610c54366004612bd4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610c8b57600080fd5b506013546104fb90610100900460ff1681565b348015610caa57600080fd5b5061042d611bb0565b348015610cbf57600080fd5b5061042d610cce366004612ded565b611c0e565b348015610cdf57600080fd5b506106c8600081565b348015610cf457600080fd5b5061042d610d03366004612c87565b611c8c565b348015610d1457600080fd5b50601a546104d19060ff1681565b348015610d2e57600080fd5b50610467610d3d366004612c87565b60046020526000908152604090205481565b348015610d5b57600080fd5b5061042d610d6a366004612c87565b611cfa565b348015610d7b57600080fd5b50600e546106c8906001600160a01b031681565b348015610d9b57600080fd5b5061042d610daa366004612c87565b611d62565b348015610dbb57600080fd5b5061042d610dca366004612c87565b611dc8565b6000610ddc338484611e34565b5060015b92915050565b3360009081526020819052604090205460ff1680610e0e57506001546001600160a01b031633145b610e335760405162461bcd60e51b8152600401610e2a90612e0f565b60405180910390fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b3360009081526020819052604090205460ff1680610e7c57506001546001600160a01b031633145b610e985760405162461bcd60e51b8152600401610e2a90612e0f565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f059190612e34565b905060008111610f575760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e636500000000000000006044820152606401610e2a565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc89190612e4d565b50505050565b3360009081526020819052604090205460ff1680610ff657506001546001600160a01b031633145b6110125760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000611040848484611f25565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156110ab5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610e2a565b6110bf85336110ba8685612e80565b611e34565b506001949350505050565b3360009081526020819052604090205460ff16806110f257506001546001600160a01b031633145b61110e5760405162461bcd60e51b8152600401610e2a90612e0f565b601880549115156101000261ff0019909216919091179055565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610ddc9185906110ba908690612e93565b3360009081526020819052604090205460ff168061118757506001546001600160a01b031633145b6111a35760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b3360009081526020819052604090205460ff16806111f657506001546001600160a01b031633145b6112125760405162461bcd60e51b8152600401610e2a90612e0f565b600061121e8587612ea6565b90508060ff166064146112825760405162461bcd60e51b815260206004820152602660248201527f6275726e2b6c69712b6d61726b6574696e67206e6565647320746f20657175616044820152656c203130302560d01b6064820152608401610e2a565b50600d805460ff928316620100000262ff0000199484166101000261ffff1997851663010000000263ff00000019998616640100000000029990991664ffff0000001990931692909217979097179590951693909116929092179290921791909116919091179055565b3360009081526020819052604090205460ff168061131457506001546001600160a01b031633145b6113305760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b038116600090815260026020526040808220805490839055308352908220805491928392611366908490612e93565b90915550506001600160a01b03821660008181526007602052604090819020805460ff19166001179055513091906000805160206130f0833981519152906113b19085815260200190565b60405180910390a35050565b3360009081526020819052604090205460ff16806113e557506001546001600160a01b031633145b6114015760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b3360009081526020819052604090205460ff168061144d57506001546001600160a01b031633145b6114695760405162461bcd60e51b8152600401610e2a90612e0f565b6016805460009182905560405190913391829084905b60006040518083038185875af1925050503d80600081146114bc576040519150601f19603f3d011682016040523d82523d6000602084013e6114c1565b606091505b50509050806115045760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b6044820152606401610e2a565b505050565b3360009081526020819052604090205460ff168061153157506001546001600160a01b031633145b61154d5760405162461bcd60e51b8152600401610e2a90612e0f565b6008805460ff1916911515919091179055565b3360009081526020819052604090205460ff168061158857506001546001600160a01b031633145b6115a45760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b3360009081526020819052604090205460ff16806115f057506001546001600160a01b031633145b61160c5760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b0382166000908152600260205260409020548111156116685760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b6044820152606401610e2a565b6116746009600a612fa3565b61167e9082612fb2565b6001600160a01b038316600090815260026020526040812080549091906116a6908490612e80565b909155506116b890506009600a612fa3565b6116c29082612fb2565b30600090815260026020526040812080549091906116e1908490612e93565b909155503090506001600160a01b0383166000805160206130f083398151915261170d6009600a612fa3565b6117179085612fb2565b6040519081526020016113b1565b3360009081526020819052604090205460ff168061174d57506001546001600160a01b031633145b6117695760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6117966009600a612fa3565b6117a490633b9aca00612fb2565b81565b3360009081526020819052604090205460ff16806117cf57506001546001600160a01b031633145b6117eb5760405162461bcd60e51b8152600401610e2a90612e0f565b60158054600091829055604051909133918290849061147f565b3360009081526020819052604090205460ff168061182d57506001546001600160a01b031633145b6118495760405162461bcd60e51b8152600401610e2a90612e0f565b601a805460ff1916911515919091179055565b3360009081526020819052604090205460ff168061188457506001546001600160a01b031633145b6118a05760405162461bcd60e51b8152600401610e2a90612e0f565b6013805460ff9092166101000261ff0019909216919091179055565b3360009081526020819052604090205460ff16806118e457506001546001600160a01b031633145b6119005760405162461bcd60e51b8152600401610e2a90612e0f565b3060009081526002602052604090205481111561191c57600080fd5b306000908152600260205260408120805483929061193b908490612e80565b9250508190555080600b60008282546119549190612e80565b909155505060405181815260009030906000805160206130f08339815191529060200160405180910390a350565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156119e55760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610e2a565b6119f433856110ba8685612e80565b5060019392505050565b6001600160a01b038116600090815260046020526040812054428111611a275750600092915050565b611a314282612e80565b9392505050565b3360009081526020819052604090205460ff1680611a6057506001546001600160a01b031633145b611a7c5760405162461bcd60e51b8152600401610e2a90612e0f565b604051600090339047908381818185875af1925050503d8060008114611abe576040519150601f19603f3d011682016040523d82523d6000602084013e611ac3565b606091505b5050905080611ad157600080fd5b50565b6000610ddc338484611f25565b3360009081526020819052604090205460ff1680611b0957506001546001600160a01b031633145b611b255760405162461bcd60e51b8152600401610e2a90612e0f565b601955565b600080611b396009600a612fa3565b600c54611b469190612fd1565b611b526009600a612fa3565b600954611b5f9190612fd1565b915091509091565b3360009081526020819052604090205460ff1680611b8f57506001546001600160a01b031633145b611bab5760405162461bcd60e51b8152600401610e2a90612e0f565b600955565b3360009081526020819052604090205460ff1680611bd857506001546001600160a01b031633145b611bf45760405162461bcd60e51b8152600401610e2a90612e0f565b60148054600091829055604051909133918290849061147f565b3360009081526020819052604090205460ff1680611c3657506001546001600160a01b031633145b611c525760405162461bcd60e51b8152600401610e2a90612e0f565b611c5e6009600a612fa3565b611c689083612fb2565b9150611c766009600a612fa3565b611c809082612fb2565b600c9290925550600955565b3360009081526020819052604090205460ff1680611cb457506001546001600160a01b031633145b611cd05760405162461bcd60e51b8152600401610e2a90612e0f565b611cde426301e13380612e93565b6001600160a01b03909116600090815260046020526040902055565b3360009081526020819052604090205460ff1680611d2257506001546001600160a01b031633145b611d3e5760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b3360009081526020819052604090205460ff1680611d8a57506001546001600160a01b031633145b611da65760405162461bcd60e51b8152600401610e2a90612e0f565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff1680611df057506001546001600160a01b031633145b611e0c5760405162461bcd60e51b8152600401610e2a90612e0f565b601a80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b038316611e7d5760405162461bcd60e51b815260206004820152601060248201526f105c1c1c9bdd9948199c9bdb4819195960821b6044820152606401610e2a565b6001600160a01b038216611ec45760405162461bcd60e51b815260206004820152600e60248201526d105c1c1c9bdd99481d1bc819195960921b6044820152606401610e2a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611f6f5760405162461bcd60e51b8152602060048201526011602482015270151c985b9cd9995c88199c9bdb48191959607a1b6044820152606401610e2a565b6001600160a01b038216611fb75760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c881d1bc8191959608a1b6044820152606401610e2a565b60085460ff161561203e576001600160a01b03831660009081526007602052604090205460ff1615801561200457506001600160a01b03821660009081526007602052604090205460ff16155b61203e5760405162461bcd60e51b815260206004820152600b60248201526a446973616c6c6f7765642160a81b6044820152606401610e2a565b6001600160a01b03831660009081526005602052604081205460ff168061207d57506001600160a01b03831660009081526005602052604090205460ff165b806120a057506001600160a01b03841660009081526020819052604090205460ff165b806120c357506001600160a01b03831660009081526020819052604090205460ff165b905060006001600160a01b0385163014806120e657506001600160a01b03841630145b600d549091506000906001600160a01b03878116600160301b9092041614801561212c57506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b806121725750600d546001600160a01b03868116600160301b9092041614801561217257506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b9050818061217d5750805b806121855750825b1561219a57612195868686612320565b612318565b601a5460ff1661227f576001546001600160a01b038781169116148015906121d057506001546001600160a01b03868116911614155b1561227f57600d5465010000000000900460ff161561222d57846001600160a01b0316866001600160a01b03166000805160206130f0833981519152600060405161221d91815260200190565b60405180910390a3505050505050565b601a5460ff1661227f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610e2a565b600d546000906001600160a01b03888116600160301b9092041614806122c157506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b600d549091506000906001600160a01b03888116600160301b90920416148061230657506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b905061231588888885856123d9565b50505b505050505050565b6001600160a01b038316600090815260026020526040902054818110156123845760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610e2a565b61238e848361277f565b61239883836127c4565b826001600160a01b0316846001600160a01b03166000805160206130f0833981519152846040516123cb91815260200190565b60405180910390a350505050565b6001600160a01b03808516600090815260026020526040808220549288168252902054848110156124475760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610e2a565b60008315612565576001600160a01b03881660009081526006602052604090205460ff16612510576001600160a01b0388166000908152600460205260409020544210158061249d5750601854610100900460ff165b6124e95760405162461bcd60e51b815260206004820152601960248201527f53656c6c657220696e206b65657063616c6d5365636f6e6473000000000000006044820152606401610e2a565b6019546124f69042612e93565b6001600160a01b0389166000908152600460205260409020555b6009548611156125545760405162461bcd60e51b815260206004820152600f60248201526e223ab6b810383937ba32b1ba34b7b760891b6044820152606401610e2a565b50600d54610100900460ff16612688565b84156125c457600c546125788785612e93565b11156125965760405162461bcd60e51b8152600401610e2a90612ff3565b6009548611156125b85760405162461bcd60e51b8152600401610e2a90612ff3565b50600d5460ff16612688565b600c546125d18785612e93565b11156125ef5760405162461bcd60e51b8152600401610e2a90612ff3565b6001600160a01b03881660009081526006602052604090205460ff1661267a576001600160a01b0388166000908152600460205260409020544210158061263d5750601854610100900460ff165b61267a5760405162461bcd60e51b815260206004820152600e60248201526d53656e64657220696e204c6f636b60901b6044820152606401610e2a565b50600d5462010000900460ff165b600d546001600160a01b03898116600160301b90920416148015906126b0575060185460ff16155b156126be576126be866127e8565b600d546000906126ef90889084906126ea9060ff64010000000082048116916301000000900416612ea6565b612930565b905060006126fd8289612e80565b90506127098a8961277f565b3060009081526002602052604081208054849290612728908490612e93565b90915550612738905089826127c4565b886001600160a01b03168a6001600160a01b03166000805160206130f08339815191528360405161276b91815260200190565b60405180910390a350505050505050505050565b6001600160a01b0382166000908152600260205260408120546127a3908390612e80565b6001600160a01b039093166000908152600260205260409020929092555050565b6001600160a01b0382166000908152600260205260408120546127a3908390612e93565b6018805460ff1916600117905530600090815260026020526040902054600d54600954630100000090910460ff1690838111156128225750825b80831080612832575061ffff8216155b1561283f57505050612923565b600d5460009061ffff84169061285f906301000000900460ff1684612fb2565b6128699190612fd1565b600d5490915060009061ffff85169061288d90640100000000900460ff1685612fb2565b6128979190612fd1565b905060006128a6600284612fd1565b905060006128b48285612e80565b905060006128c28483612e93565b9050476128ce82612964565b60006128da8247612e80565b90506000836128e98684612fb2565b6128f39190612fd1565b90506128ff8682612ab5565b600061290b8447612e80565b905061291681612b7d565b5050505050505050505050505b506018805460ff19169055565b60006127108260ff168460ff16866129489190612fb2565b6129529190612fb2565b61295c9190612fd1565b949350505050565b600e5461297c9030906001600160a01b031683611e34565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106129b1576129b161301d565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2e9190613033565b81600181518110612a4157612a4161301d565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac94790612a87908590600090869030904290600401613050565b600060405180830381600087803b158015612aa157600080fd5b505af1158015612318573d6000803e3d6000fd5b8060176000828254612ac79190612e93565b9091555050600e54612ae49030906001600160a01b031684611e34565b600e5460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612b51573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b7691906130c1565b5050505050565b601354600090606490612b9890610100900460ff1684612fb2565b612ba29190612fd1565b90508060156000828254612bb69190612e93565b90915550505050565b6001600160a01b0381168114611ad157600080fd5b60008060408385031215612be757600080fd5b8235612bf281612bbf565b91506020830135612c0281612bbf565b809150509250929050565b600060208083528351808285015260005b81811015612c3a57858101830151858201604001528201612c1e565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215612c6e57600080fd5b8235612c7981612bbf565b946020939093013593505050565b600060208284031215612c9957600080fd5b8135611a3181612bbf565b600080600060608486031215612cb957600080fd5b8335612cc481612bbf565b92506020840135612cd481612bbf565b929592945050506040919091013590565b8015158114611ad157600080fd5b600060208284031215612d0557600080fd5b8135611a3181612ce5565b60008060408385031215612d2357600080fd5b8235612d2e81612bbf565b91506020830135612c0281612ce5565b803560ff81168114612d4f57600080fd5b919050565b600080600080600060a08688031215612d6c57600080fd5b612d7586612d3e565b9450612d8360208701612d3e565b9350612d9160408701612d3e565b9250612d9f60608701612d3e565b9150612dad60808701612d3e565b90509295509295909350565b600060208284031215612dcb57600080fd5b611a3182612d3e565b600060208284031215612de657600080fd5b5035919050565b60008060408385031215612e0057600080fd5b50508035926020909101359150565b6020808252600b908201526a3737ba1031b932b0ba37b960a91b604082015260600190565b600060208284031215612e4657600080fd5b5051919050565b600060208284031215612e5f57600080fd5b8151611a3181612ce5565b634e487b7160e01b600052601160045260246000fd5b81810381811115610de057610de0612e6a565b80820180821115610de057610de0612e6a565b60ff8181168382160190811115610de057610de0612e6a565b600181815b80851115612efa578160001904821115612ee057612ee0612e6a565b80851615612eed57918102915b93841c9390800290612ec4565b509250929050565b600082612f1157506001610de0565b81612f1e57506000610de0565b8160018114612f345760028114612f3e57612f5a565b6001915050610de0565b60ff841115612f4f57612f4f612e6a565b50506001821b610de0565b5060208310610133831016604e8410600b8410161715612f7d575081810a610de0565b612f878383612ebf565b8060001904821115612f9b57612f9b612e6a565b029392505050565b6000611a3160ff841683612f02565b6000816000190483118215151615612fcc57612fcc612e6a565b500290565b600082612fee57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526010908201526f3bb430b63290383937ba32b1ba34b7b760811b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561304557600080fd5b8151611a3181612bbf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156130a05784516001600160a01b03168352938301939183019160010161307b565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156130d657600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220182a8992266cbd7d8f035110c3f1145ada1adc17eeae2d94fd6dac32507c2e4e64736f6c63430008100033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106104265760003560e01c80638124f7ac11610227578063c0667ae01161012d578063e5fae7e6116100b0578063f4d9de6b11610077578063f4d9de6b14610d22578063f6e0247f14610d4f578063f887ea4014610d6f578063fd34f4cd14610d8f578063fe48183c14610daf57005b8063e5fae7e614610c9e578063e6aaaeea14610cb3578063efb3e81714610cd3578063f21d3cd114610ce8578063f314217e14610d0857005b8063cce7590e116100f4578063cce7590e14610bf1578063d28d885214610ae9578063d46f2f6614610c11578063dd62ed3e14610c39578063df10b50814610c7f57005b8063c0667ae014610b6f578063c3477a8f14610758578063c7aba28214610b92578063c7d6917114610bbc578063cc1776d314610bd257005b8063a7f22055116101b5578063adc8f5e61161017c578063adc8f5e614610ac9578063b09f126614610ae9578063b0fd3f1414610b1a578063b3178c7814610b39578063be617fa014610b4e57005b8063a7f2205514610a2c578063a8b51fc814610a41578063a8c24b3314610a57578063a9059cbb14610a79578063ad73da0f14610a9957005b806395d89b41116101f957806395d89b411461047a5780639af651b1146109ac5780639d118770146109cc578063a457c2d7146109ec578063a6d44f7714610a0c57005b80638124f7ac1461095757806384e4a3561461097757806388cacc9f1461092257806394ceecef1461098c57005b8063395093511161032c5780634f7041a5116102ba57806358e553651161028157806358e55365146108a95780636ebcf607146108bf57806370a08231146108ec57806372c29ef4146109225780637d6889881461094257005b80634f7041a51461081a57806350e3e20414610834578063533e804a1461084957806355b254561461086957806358becdf91461088957005b80633fa9af85116102fe5780633fa9af85146107985780634089b170146107ae578063457a7474146107c457806348e907b7146107e457806349a76042146107fa57005b8063395093511461071a5780633c72a5e71461073a5780633d82ce9a146107585780633eca0abe1461077857005b806323b872dd116103b4578063313dab201161037b578063313dab201461067657806332424aa31461068c57806334184e26146106a1578063344c1aa2146106e057806334e1026e1461070057005b806323b872dd1461059857806324c5b350146105b85780632973ef2d146105f15780632c63db621461064c578063313ce5671461066257005b806318160ddd116103f857806318160ddd1461050d57806320a6401614610522578063224f7e5a1461053857806322a58b671461055857806323331bf71461057857005b8063024c2ddd1461042f57806306fdde031461047a578063095ea7b3146104b157806315291cd4146104e157005b3661042d57005b005b34801561043b57600080fd5b5061046761044a366004612bd4565b600360209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561048657600080fd5b50604080518082019091526005815264466c75626560d81b60208201525b6040516104719190612c0d565b3480156104bd57600080fd5b506104d16104cc366004612c5b565b610dcf565b6040519015158152602001610471565b3480156104ed57600080fd5b506013546104fb9060ff1681565b60405160ff9091168152602001610471565b34801561051957600080fd5b50600b54610467565b34801561052e57600080fd5b50610467600b5481565b34801561054457600080fd5b5061042d610553366004612c87565b610de6565b34801561056457600080fd5b5061042d610573366004612c87565b610e54565b34801561058457600080fd5b5061042d610593366004612c87565b610fce565b3480156105a457600080fd5b506104d16105b3366004612ca4565b611033565b3480156105c457600080fd5b506104d16105d3366004612c87565b6001600160a01b031660009081526020819052604090205460ff1690565b3480156105fd57600080fd5b50600d546040805160ff6401000000008404811682526301000000840481166020830152808416928201929092526101008304821660608201526201000090920416608082015260a001610471565b34801561065857600080fd5b5061046760175481565b34801561066e57600080fd5b5060096104fb565b34801561068257600080fd5b5061046760165481565b34801561069857600080fd5b506104fb600981565b3480156106ad57600080fd5b50600d546106c890600160301b90046001600160a01b031681565b6040516001600160a01b039091168152602001610471565b3480156106ec57600080fd5b5061042d6106fb366004612cf3565b6110ca565b34801561070c57600080fd5b50600a546104fb9060ff1681565b34801561072657600080fd5b506104d1610735366004612c5b565b611128565b34801561074657600080fd5b506001546001600160a01b03166106c8565b34801561076457600080fd5b5061042d610773366004612d10565b61115f565b34801561078457600080fd5b5061042d610793366004612d54565b6111ce565b3480156107a457600080fd5b5061046760195481565b3480156107ba57600080fd5b5061046760125481565b3480156107d057600080fd5b5061042d6107df366004612c87565b6112ec565b3480156107f057600080fd5b5061046760115481565b34801561080657600080fd5b5061042d610815366004612c87565b6113bd565b34801561082657600080fd5b50600d546104fb9060ff1681565b34801561084057600080fd5b5061042d611425565b34801561085557600080fd5b5061042d610864366004612cf3565b611509565b34801561087557600080fd5b5061042d610884366004612c87565b611560565b34801561089557600080fd5b5061042d6108a4366004612c5b565b6115c8565b3480156108b557600080fd5b5061046760145481565b3480156108cb57600080fd5b506104676108da366004612c87565b60026020526000908152604090205481565b3480156108f857600080fd5b50610467610907366004612c87565b6001600160a01b031660009081526002602052604090205490565b34801561092e57600080fd5b5061042d61093d366004612c87565b611725565b34801561094e57600080fd5b5061046761178a565b34801561096357600080fd5b50600d546104fb9062010000900460ff1681565b34801561098357600080fd5b5061042d6117a7565b34801561099857600080fd5b5061042d6109a7366004612cf3565b611805565b3480156109b857600080fd5b5061042d6109c7366004612db9565b61185c565b3480156109d857600080fd5b5061042d6109e7366004612dd4565b6118bc565b3480156109f857600080fd5b506104d1610a07366004612c5b565b611982565b348015610a1857600080fd5b50610467610a27366004612c87565b6119fe565b348015610a3857600080fd5b5061042d611a38565b348015610a4d57600080fd5b5061046760155481565b348015610a6357600080fd5b50600d546104fb90640100000000900460ff1681565b348015610a8557600080fd5b506104d1610a94366004612c5b565b611ad4565b348015610aa557600080fd5b506104d1610ab4366004612c87565b60076020526000908152604090205460ff1681565b348015610ad557600080fd5b5061042d610ae4366004612dd4565b611ae1565b348015610af557600080fd5b506104a460405180604001604052806005815260200164466c75626560d81b81525081565b348015610b2657600080fd5b506018546104d190610100900460ff1681565b348015610b4557600080fd5b50601954610467565b348015610b5a57600080fd5b50600d546104fb906301000000900460ff1681565b348015610b7b57600080fd5b50600d546104d19065010000000000900460ff1681565b348015610b9e57600080fd5b50610ba7611b2a565b60408051928352602083019190915201610471565b348015610bc857600080fd5b50610467600c5481565b348015610bde57600080fd5b50600d546104fb90610100900460ff1681565b348015610bfd57600080fd5b5061042d610c0c366004612dd4565b611b67565b348015610c1d57600080fd5b506106c8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610c4557600080fd5b50610467610c54366004612bd4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610c8b57600080fd5b506013546104fb90610100900460ff1681565b348015610caa57600080fd5b5061042d611bb0565b348015610cbf57600080fd5b5061042d610cce366004612ded565b611c0e565b348015610cdf57600080fd5b506106c8600081565b348015610cf457600080fd5b5061042d610d03366004612c87565b611c8c565b348015610d1457600080fd5b50601a546104d19060ff1681565b348015610d2e57600080fd5b50610467610d3d366004612c87565b60046020526000908152604090205481565b348015610d5b57600080fd5b5061042d610d6a366004612c87565b611cfa565b348015610d7b57600080fd5b50600e546106c8906001600160a01b031681565b348015610d9b57600080fd5b5061042d610daa366004612c87565b611d62565b348015610dbb57600080fd5b5061042d610dca366004612c87565b611dc8565b6000610ddc338484611e34565b5060015b92915050565b3360009081526020819052604090205460ff1680610e0e57506001546001600160a01b031633145b610e335760405162461bcd60e51b8152600401610e2a90612e0f565b60405180910390fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b3360009081526020819052604090205460ff1680610e7c57506001546001600160a01b031633145b610e985760405162461bcd60e51b8152600401610e2a90612e0f565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f059190612e34565b905060008111610f575760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e636500000000000000006044820152606401610e2a565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc89190612e4d565b50505050565b3360009081526020819052604090205460ff1680610ff657506001546001600160a01b031633145b6110125760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000611040848484611f25565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156110ab5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610e2a565b6110bf85336110ba8685612e80565b611e34565b506001949350505050565b3360009081526020819052604090205460ff16806110f257506001546001600160a01b031633145b61110e5760405162461bcd60e51b8152600401610e2a90612e0f565b601880549115156101000261ff0019909216919091179055565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610ddc9185906110ba908690612e93565b3360009081526020819052604090205460ff168061118757506001546001600160a01b031633145b6111a35760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b3360009081526020819052604090205460ff16806111f657506001546001600160a01b031633145b6112125760405162461bcd60e51b8152600401610e2a90612e0f565b600061121e8587612ea6565b90508060ff166064146112825760405162461bcd60e51b815260206004820152602660248201527f6275726e2b6c69712b6d61726b6574696e67206e6565647320746f20657175616044820152656c203130302560d01b6064820152608401610e2a565b50600d805460ff928316620100000262ff0000199484166101000261ffff1997851663010000000263ff00000019998616640100000000029990991664ffff0000001990931692909217979097179590951693909116929092179290921791909116919091179055565b3360009081526020819052604090205460ff168061131457506001546001600160a01b031633145b6113305760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b038116600090815260026020526040808220805490839055308352908220805491928392611366908490612e93565b90915550506001600160a01b03821660008181526007602052604090819020805460ff19166001179055513091906000805160206130f0833981519152906113b19085815260200190565b60405180910390a35050565b3360009081526020819052604090205460ff16806113e557506001546001600160a01b031633145b6114015760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b3360009081526020819052604090205460ff168061144d57506001546001600160a01b031633145b6114695760405162461bcd60e51b8152600401610e2a90612e0f565b6016805460009182905560405190913391829084905b60006040518083038185875af1925050503d80600081146114bc576040519150601f19603f3d011682016040523d82523d6000602084013e6114c1565b606091505b50509050806115045760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b6044820152606401610e2a565b505050565b3360009081526020819052604090205460ff168061153157506001546001600160a01b031633145b61154d5760405162461bcd60e51b8152600401610e2a90612e0f565b6008805460ff1916911515919091179055565b3360009081526020819052604090205460ff168061158857506001546001600160a01b031633145b6115a45760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b3360009081526020819052604090205460ff16806115f057506001546001600160a01b031633145b61160c5760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b0382166000908152600260205260409020548111156116685760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b6044820152606401610e2a565b6116746009600a612fa3565b61167e9082612fb2565b6001600160a01b038316600090815260026020526040812080549091906116a6908490612e80565b909155506116b890506009600a612fa3565b6116c29082612fb2565b30600090815260026020526040812080549091906116e1908490612e93565b909155503090506001600160a01b0383166000805160206130f083398151915261170d6009600a612fa3565b6117179085612fb2565b6040519081526020016113b1565b3360009081526020819052604090205460ff168061174d57506001546001600160a01b031633145b6117695760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6117966009600a612fa3565b6117a490633b9aca00612fb2565b81565b3360009081526020819052604090205460ff16806117cf57506001546001600160a01b031633145b6117eb5760405162461bcd60e51b8152600401610e2a90612e0f565b60158054600091829055604051909133918290849061147f565b3360009081526020819052604090205460ff168061182d57506001546001600160a01b031633145b6118495760405162461bcd60e51b8152600401610e2a90612e0f565b601a805460ff1916911515919091179055565b3360009081526020819052604090205460ff168061188457506001546001600160a01b031633145b6118a05760405162461bcd60e51b8152600401610e2a90612e0f565b6013805460ff9092166101000261ff0019909216919091179055565b3360009081526020819052604090205460ff16806118e457506001546001600160a01b031633145b6119005760405162461bcd60e51b8152600401610e2a90612e0f565b3060009081526002602052604090205481111561191c57600080fd5b306000908152600260205260408120805483929061193b908490612e80565b9250508190555080600b60008282546119549190612e80565b909155505060405181815260009030906000805160206130f08339815191529060200160405180910390a350565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156119e55760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610e2a565b6119f433856110ba8685612e80565b5060019392505050565b6001600160a01b038116600090815260046020526040812054428111611a275750600092915050565b611a314282612e80565b9392505050565b3360009081526020819052604090205460ff1680611a6057506001546001600160a01b031633145b611a7c5760405162461bcd60e51b8152600401610e2a90612e0f565b604051600090339047908381818185875af1925050503d8060008114611abe576040519150601f19603f3d011682016040523d82523d6000602084013e611ac3565b606091505b5050905080611ad157600080fd5b50565b6000610ddc338484611f25565b3360009081526020819052604090205460ff1680611b0957506001546001600160a01b031633145b611b255760405162461bcd60e51b8152600401610e2a90612e0f565b601955565b600080611b396009600a612fa3565b600c54611b469190612fd1565b611b526009600a612fa3565b600954611b5f9190612fd1565b915091509091565b3360009081526020819052604090205460ff1680611b8f57506001546001600160a01b031633145b611bab5760405162461bcd60e51b8152600401610e2a90612e0f565b600955565b3360009081526020819052604090205460ff1680611bd857506001546001600160a01b031633145b611bf45760405162461bcd60e51b8152600401610e2a90612e0f565b60148054600091829055604051909133918290849061147f565b3360009081526020819052604090205460ff1680611c3657506001546001600160a01b031633145b611c525760405162461bcd60e51b8152600401610e2a90612e0f565b611c5e6009600a612fa3565b611c689083612fb2565b9150611c766009600a612fa3565b611c809082612fb2565b600c9290925550600955565b3360009081526020819052604090205460ff1680611cb457506001546001600160a01b031633145b611cd05760405162461bcd60e51b8152600401610e2a90612e0f565b611cde426301e13380612e93565b6001600160a01b03909116600090815260046020526040902055565b3360009081526020819052604090205460ff1680611d2257506001546001600160a01b031633145b611d3e5760405162461bcd60e51b8152600401610e2a90612e0f565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b3360009081526020819052604090205460ff1680611d8a57506001546001600160a01b031633145b611da65760405162461bcd60e51b8152600401610e2a90612e0f565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff1680611df057506001546001600160a01b031633145b611e0c5760405162461bcd60e51b8152600401610e2a90612e0f565b601a80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b038316611e7d5760405162461bcd60e51b815260206004820152601060248201526f105c1c1c9bdd9948199c9bdb4819195960821b6044820152606401610e2a565b6001600160a01b038216611ec45760405162461bcd60e51b815260206004820152600e60248201526d105c1c1c9bdd99481d1bc819195960921b6044820152606401610e2a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611f6f5760405162461bcd60e51b8152602060048201526011602482015270151c985b9cd9995c88199c9bdb48191959607a1b6044820152606401610e2a565b6001600160a01b038216611fb75760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c881d1bc8191959608a1b6044820152606401610e2a565b60085460ff161561203e576001600160a01b03831660009081526007602052604090205460ff1615801561200457506001600160a01b03821660009081526007602052604090205460ff16155b61203e5760405162461bcd60e51b815260206004820152600b60248201526a446973616c6c6f7765642160a81b6044820152606401610e2a565b6001600160a01b03831660009081526005602052604081205460ff168061207d57506001600160a01b03831660009081526005602052604090205460ff165b806120a057506001600160a01b03841660009081526020819052604090205460ff165b806120c357506001600160a01b03831660009081526020819052604090205460ff165b905060006001600160a01b0385163014806120e657506001600160a01b03841630145b600d549091506000906001600160a01b03878116600160301b9092041614801561212c57506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b806121725750600d546001600160a01b03868116600160301b9092041614801561217257506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b9050818061217d5750805b806121855750825b1561219a57612195868686612320565b612318565b601a5460ff1661227f576001546001600160a01b038781169116148015906121d057506001546001600160a01b03868116911614155b1561227f57600d5465010000000000900460ff161561222d57846001600160a01b0316866001600160a01b03166000805160206130f0833981519152600060405161221d91815260200190565b60405180910390a3505050505050565b601a5460ff1661227f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610e2a565b600d546000906001600160a01b03888116600160301b9092041614806122c157506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b600d549091506000906001600160a01b03888116600160301b90920416148061230657506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b905061231588888885856123d9565b50505b505050505050565b6001600160a01b038316600090815260026020526040902054818110156123845760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610e2a565b61238e848361277f565b61239883836127c4565b826001600160a01b0316846001600160a01b03166000805160206130f0833981519152846040516123cb91815260200190565b60405180910390a350505050565b6001600160a01b03808516600090815260026020526040808220549288168252902054848110156124475760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610e2a565b60008315612565576001600160a01b03881660009081526006602052604090205460ff16612510576001600160a01b0388166000908152600460205260409020544210158061249d5750601854610100900460ff165b6124e95760405162461bcd60e51b815260206004820152601960248201527f53656c6c657220696e206b65657063616c6d5365636f6e6473000000000000006044820152606401610e2a565b6019546124f69042612e93565b6001600160a01b0389166000908152600460205260409020555b6009548611156125545760405162461bcd60e51b815260206004820152600f60248201526e223ab6b810383937ba32b1ba34b7b760891b6044820152606401610e2a565b50600d54610100900460ff16612688565b84156125c457600c546125788785612e93565b11156125965760405162461bcd60e51b8152600401610e2a90612ff3565b6009548611156125b85760405162461bcd60e51b8152600401610e2a90612ff3565b50600d5460ff16612688565b600c546125d18785612e93565b11156125ef5760405162461bcd60e51b8152600401610e2a90612ff3565b6001600160a01b03881660009081526006602052604090205460ff1661267a576001600160a01b0388166000908152600460205260409020544210158061263d5750601854610100900460ff165b61267a5760405162461bcd60e51b815260206004820152600e60248201526d53656e64657220696e204c6f636b60901b6044820152606401610e2a565b50600d5462010000900460ff165b600d546001600160a01b03898116600160301b90920416148015906126b0575060185460ff16155b156126be576126be866127e8565b600d546000906126ef90889084906126ea9060ff64010000000082048116916301000000900416612ea6565b612930565b905060006126fd8289612e80565b90506127098a8961277f565b3060009081526002602052604081208054849290612728908490612e93565b90915550612738905089826127c4565b886001600160a01b03168a6001600160a01b03166000805160206130f08339815191528360405161276b91815260200190565b60405180910390a350505050505050505050565b6001600160a01b0382166000908152600260205260408120546127a3908390612e80565b6001600160a01b039093166000908152600260205260409020929092555050565b6001600160a01b0382166000908152600260205260408120546127a3908390612e93565b6018805460ff1916600117905530600090815260026020526040902054600d54600954630100000090910460ff1690838111156128225750825b80831080612832575061ffff8216155b1561283f57505050612923565b600d5460009061ffff84169061285f906301000000900460ff1684612fb2565b6128699190612fd1565b600d5490915060009061ffff85169061288d90640100000000900460ff1685612fb2565b6128979190612fd1565b905060006128a6600284612fd1565b905060006128b48285612e80565b905060006128c28483612e93565b9050476128ce82612964565b60006128da8247612e80565b90506000836128e98684612fb2565b6128f39190612fd1565b90506128ff8682612ab5565b600061290b8447612e80565b905061291681612b7d565b5050505050505050505050505b506018805460ff19169055565b60006127108260ff168460ff16866129489190612fb2565b6129529190612fb2565b61295c9190612fd1565b949350505050565b600e5461297c9030906001600160a01b031683611e34565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106129b1576129b161301d565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2e9190613033565b81600181518110612a4157612a4161301d565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac94790612a87908590600090869030904290600401613050565b600060405180830381600087803b158015612aa157600080fd5b505af1158015612318573d6000803e3d6000fd5b8060176000828254612ac79190612e93565b9091555050600e54612ae49030906001600160a01b031684611e34565b600e5460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612b51573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b7691906130c1565b5050505050565b601354600090606490612b9890610100900460ff1684612fb2565b612ba29190612fd1565b90508060156000828254612bb69190612e93565b90915550505050565b6001600160a01b0381168114611ad157600080fd5b60008060408385031215612be757600080fd5b8235612bf281612bbf565b91506020830135612c0281612bbf565b809150509250929050565b600060208083528351808285015260005b81811015612c3a57858101830151858201604001528201612c1e565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215612c6e57600080fd5b8235612c7981612bbf565b946020939093013593505050565b600060208284031215612c9957600080fd5b8135611a3181612bbf565b600080600060608486031215612cb957600080fd5b8335612cc481612bbf565b92506020840135612cd481612bbf565b929592945050506040919091013590565b8015158114611ad157600080fd5b600060208284031215612d0557600080fd5b8135611a3181612ce5565b60008060408385031215612d2357600080fd5b8235612d2e81612bbf565b91506020830135612c0281612ce5565b803560ff81168114612d4f57600080fd5b919050565b600080600080600060a08688031215612d6c57600080fd5b612d7586612d3e565b9450612d8360208701612d3e565b9350612d9160408701612d3e565b9250612d9f60608701612d3e565b9150612dad60808701612d3e565b90509295509295909350565b600060208284031215612dcb57600080fd5b611a3182612d3e565b600060208284031215612de657600080fd5b5035919050565b60008060408385031215612e0057600080fd5b50508035926020909101359150565b6020808252600b908201526a3737ba1031b932b0ba37b960a91b604082015260600190565b600060208284031215612e4657600080fd5b5051919050565b600060208284031215612e5f57600080fd5b8151611a3181612ce5565b634e487b7160e01b600052601160045260246000fd5b81810381811115610de057610de0612e6a565b80820180821115610de057610de0612e6a565b60ff8181168382160190811115610de057610de0612e6a565b600181815b80851115612efa578160001904821115612ee057612ee0612e6a565b80851615612eed57918102915b93841c9390800290612ec4565b509250929050565b600082612f1157506001610de0565b81612f1e57506000610de0565b8160018114612f345760028114612f3e57612f5a565b6001915050610de0565b60ff841115612f4f57612f4f612e6a565b50506001821b610de0565b5060208310610133831016604e8410600b8410161715612f7d575081810a610de0565b612f878383612ebf565b8060001904821115612f9b57612f9b612e6a565b029392505050565b6000611a3160ff841683612f02565b6000816000190483118215151615612fcc57612fcc612e6a565b500290565b600082612fee57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526010908201526f3bb430b63290383937ba32b1ba34b7b760811b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561304557600080fd5b8151611a3181612bbf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156130a05784516001600160a01b03168352938301939183019160010161307b565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156130d657600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220182a8992266cbd7d8f035110c3f1145ada1adc17eeae2d94fd6dac32507c2e4e64736f6c63430008100033

Deployed Bytecode Sourcemap

8972:17767:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9065:65;;;;;;;;;;-1:-1:-1;9065:65:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:25:1;;;677:2;662:18;9065:65:0;;;;;;;;24425:94;;;;;;;;;;-1:-1:-1;24506:5:0;;;;;;;;;;;;-1:-1:-1;;;24506:5:0;;;;24425:94;;;;;;;:::i;25308:158::-;;;;;;;;;;-1:-1:-1;25308:158:0;;;;;:::i;:::-;;:::i;:::-;;;1763:14:1;;1756:22;1738:41;;1726:2;1711:18;25308:158:0;1598:187:1;15712:30:0;;;;;;;;;;-1:-1:-1;15712:30:0;;;;;;;;;;;1962:4:1;1950:17;;;1932:36;;1920:2;1905:18;15712:30:0;1790:184:1;24741:97:0;;;;;;;;;;-1:-1:-1;24820:10:0;;24741:97;;9890:38;;;;;;;;;;;;;;;;20611:109;;;;;;;;;;-1:-1:-1;20611:109:0;;;;;:::i;:::-;;:::i;23353:282::-;;;;;;;;;;-1:-1:-1;23353:282:0;;;;;:::i;:::-;;:::i;20868:125::-;;;;;;;;;;-1:-1:-1;20868:125:0;;;;;:::i;:::-;;:::i;25790:386::-;;;;;;;;;;-1:-1:-1;25790:386:0;;;;;:::i;:::-;;:::i;8208:105::-;;;;;;;;;;-1:-1:-1;8208:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8289:16:0;8265:4;8289:16;;;;;;;;;;;;;;8208:105;18593:296;;;;;;;;;;-1:-1:-1;18831:9:0;;18593:296;;;18831:9;;;;;;2951:25:1;;18841:12:0;;;;;3007:2:1;2992:18;;2985:34;18854:6:0;;;3035:18:1;;;3028:34;;;;18831:9:0;18861:7;;;;3093:2:1;3078:18;;3071:34;18869:11:0;;;;;3136:3:1;3121:19;;3114:35;2938:3;2923:19;18593:296:0;2692:463:1;16068:24:0;;;;;;;;;;;;;;;;24637:94;;;;;;;;;;-1:-1:-1;9516:1:0;24637:94;;15858:27;;;;;;;;;;;;;;;;9482:35;;;;;;;;;;;;9516:1;9482:35;;10160:27;;;;;;;;;;-1:-1:-1;10160:27:0;;;;-1:-1:-1;;;10160:27:0;;-1:-1:-1;;;;;10160:27:0;;;;;;-1:-1:-1;;;;;3324:32:1;;;3306:51;;3294:2;3279:18;10160:27:0;3160:203:1;21810:115:0;;;;;;;;;;-1:-1:-1;21810:115:0;;;;;:::i;:::-;;:::i;9650:38::-;;;;;;;;;;-1:-1:-1;9650:38:0;;;;;;;;26186:202;;;;;;;;;;-1:-1:-1;26186:202:0;;;;;:::i;:::-;;:::i;24319:96::-;;;;;;;;;;-1:-1:-1;24400:7:0;;-1:-1:-1;;;;;24400:7:0;24319:96;;20095:107;;;;;;;;;;-1:-1:-1;20095:107:0;;;;;:::i;:::-;;:::i;22085:481::-;;;;;;;;;;-1:-1:-1;22085:481:0;;;;;:::i;:::-;;:::i;19348:27::-;;;;;;;;;;;;;;;;15673:24;;;;;;;;;;;;;;;;20212:271;;;;;;;;;;-1:-1:-1;20212:271:0;;;;;:::i;:::-;;:::i;15625:35::-;;;;;;;;;;;;;;;;20493:110;;;;;;;;;;-1:-1:-1;20493:110:0;;;;;:::i;:::-;;:::i;9977:19::-;;;;;;;;;;-1:-1:-1;9977:19:0;;;;;;;;21541:259;;;;;;;;;;;;;:::i;23653:131::-;;;;;;;;;;-1:-1:-1;23653:131:0;;;;;:::i;:::-;;:::i;23794:119::-;;;;;;;;;;-1:-1:-1;23794:119:0;;;;;:::i;:::-;;:::i;19764:321::-;;;;;;;;;;-1:-1:-1;19764:321:0;;;;;:::i;:::-;;:::i;15790:28::-;;;;;;;;;;;;;;;;9016:42;;;;;;;;;;-1:-1:-1;9016:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;24848:118;;;;;;;;;;-1:-1:-1;24848:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;24940:18:0;24916:4;24940:18;;;:9;:18;;;;;;;24848:118;19513:107;;;;;;;;;;-1:-1:-1;19513:107:0;;;;;:::i;:::-;;:::i;9524:62::-;;;;;;;;;;;;;:::i;10030:24::-;;;;;;;;;;-1:-1:-1;10030:24:0;;;;;;;;;;;21275:256;;;;;;;;;;;;;:::i;23090:89::-;;;;;;;;;;-1:-1:-1;23090:89:0;;;;;:::i;:::-;;:::i;22580:99::-;;;;;;;;;;-1:-1:-1;22580:99:0;;;;;:::i;:::-;;:::i;18182:238::-;;;;;;;;;;-1:-1:-1;18182:238:0;;;;;:::i;:::-;;:::i;26398:336::-;;;;;;;;;;-1:-1:-1;26398:336:0;;;;;:::i;:::-;;:::i;18903:282::-;;;;;;;;;;-1:-1:-1;18903:282:0;;;;;:::i;:::-;;:::i;24052:143::-;;;;;;;;;;;;;:::i;15825:26::-;;;;;;;;;;;;;;;;10093:22;;;;;;;;;;-1:-1:-1;10093:22:0;;;;;;;;;;;24976:164;;;;;;;;;;-1:-1:-1;24976:164:0;;;;;:::i;:::-;;:::i;9296:46::-;;;;;;;;;;-1:-1:-1;9296:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21939:130;;;;;;;;;;-1:-1:-1;21939:130:0;;;;;:::i;:::-;;:::i;9435:40::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9435:40:0;;;;;19306:35;;;;;;;;;;-1:-1:-1;19306:35:0;;;;;;;;;;;19193:105;;;;;;;;;;-1:-1:-1;19275:15:0;;19193:105;;10061:25;;;;;;;;;;-1:-1:-1;10061:25:0;;;;;;;;;;;10124:27;;;;;;;;;;-1:-1:-1;10124:27:0;;;;;;;;;;;18434:149;;;;;;;;;;;;;:::i;:::-;;;;5300:25:1;;;5356:2;5341:18;;5334:34;;;;5273:18;18434:149:0;5126:248:1;9935:27:0;;;;;;;;;;;;;;;;10003:20;;;;;;;;;;-1:-1:-1;10003:20:0;;;;;;;;;;;19386:84;;;;;;;;;;-1:-1:-1;19386:84:0;;;;;:::i;:::-;;:::i;9717:81::-;;;;;;;;;;;;9756:42;9717:81;;25150:148;;;;;;;;;;-1:-1:-1;25150:148:0;;;;;:::i;:::-;-1:-1:-1;;;;;25260:21:0;;;25236:4;25260:21;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;25150:148;15749:28;;;;;;;;;;-1:-1:-1;15749:28:0;;;;;;;;;;;21003:262;;;;;;;;;;;;;:::i;22693:292::-;;;;;;;;;;-1:-1:-1;22693:292:0;;;;;:::i;:::-;;:::i;9805:72::-;;;;;;;;;;;;9835:42;9805:72;;19634:120;;;;;;;;;;-1:-1:-1;19634:120:0;;;;;:::i;:::-;;:::i;22999:29::-;;;;;;;;;;-1:-1:-1;22999:29:0;;;;;;;;9137:46;;;;;;;;;;-1:-1:-1;9137:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;20734:126;;;;;;;;;;-1:-1:-1;20734:126:0;;;;;:::i;:::-;;:::i;10194:32::-;;;;;;;;;;-1:-1:-1;10194:32:0;;;;-1:-1:-1;;;;;10194:32:0;;;8843:101;;;;;;;;;;-1:-1:-1;8843:101:0;;;;;:::i;:::-;;:::i;23195:142::-;;;;;;;;;;-1:-1:-1;23195:142:0;;;;;:::i;:::-;;:::i;25308:158::-;25382:4;25399:37;25408:10;25420:7;25429:6;25399:8;:37::i;:::-;-1:-1:-1;25454:4:0;25308:158;;;;;:::o;20611:109::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;20687:17:0::1;20707:5;20687:17:::0;;;:8:::1;:17;::::0;;;;:25;;-1:-1:-1;;20687:25:0::1;::::0;;20611:109::o;23353:282::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;23488:30:::1;::::0;-1:-1:-1;;;23488:30:0;;23512:4:::1;23488:30;::::0;::::1;3306:51:1::0;23448:10:0;;23426:12:::1;::::0;-1:-1:-1;;;;;23488:15:0;::::1;::::0;::::1;::::0;3279:18:1;;23488:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23470:48;;23548:1;23537:10;:12;23529:49;;;::::0;-1:-1:-1;;;23529:49:0;;6596:2:1;23529:49:0::1;::::0;::::1;6578:21:1::0;6635:2;6615:18;;;6608:30;6674:26;6654:18;;;6647:54;6718:18;;23529:49:0::1;6394:348:1::0;23529:49:0::1;23589:38;::::0;-1:-1:-1;;;23589:38:0;;23604:10:::1;23589:38;::::0;::::1;6921:51:1::0;6988:18;;;6981:34;;;-1:-1:-1;;;;;23589:14:0;::::1;::::0;::::1;::::0;6894:18:1;;23589:38:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23415:220;;23353:282:::0;:::o;20868:125::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20955:22:0::1;20980:5;20955:22:::0;;;:13:::1;:22;::::0;;;;:30;;-1:-1:-1;;20955:30:0::1;::::0;;20868:125::o;25790:386::-;25887:4;25904:36;25914:6;25922:9;25933:6;25904:9;:36::i;:::-;-1:-1:-1;;;;;25977:19:0;;25953:21;25977:19;;;:11;:19;;;;;;;;25997:10;25977:31;;;;;;;;26027:26;;;;26019:59;;;;-1:-1:-1;;;26019:59:0;;7478:2:1;26019:59:0;;;7460:21:1;7517:2;7497:18;;;7490:30;-1:-1:-1;;;7536:18:1;;;7529:50;7596:18;;26019:59:0;7276:344:1;26019:59:0;26091:55;26100:6;26108:10;26120:25;26139:6;26120:16;:25;:::i;:::-;26091:8;:55::i;:::-;-1:-1:-1;26164:4:0;;25790:386;-1:-1:-1;;;;25790:386:0:o;21810:115::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;21885:23:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;21885:32:0;;::::1;::::0;;;::::1;::::0;;21810:115::o;26186:202::-;26291:10;26265:4;26312:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26312:32:0;;;;;;;;;;26265:4;;26282:76;;26303:7;;26312:45;;26347:10;;26312:45;:::i;20095:107::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20170:16:0;;;::::1;:9;:16:::0;;;::::1;::::0;;;;;;:24;;-1:-1:-1;;20170:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20095:107::o;22085:481::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;22273:14:::1;22290:28;22304:14:::0;22290:11;:28:::1;:::i;:::-;22273:45;;22337:8;:13;;22347:3;22337:13;22329:64;;;::::0;-1:-1:-1;;;22329:64:0;;8375:2:1;22329:64:0::1;::::0;::::1;8357:21:1::0;8414:2;8394:18;;;8387:30;8453:34;8433:18;;;8426:62;-1:-1:-1;;;8504:18:1;;;8497:36;8550:19;;22329:64:0::1;8173:402:1::0;22329:64:0::1;-1:-1:-1::0;22404:9:0::1;:23:::0;;::::1;22533:25:::0;;::::1;::::0;::::1;-1:-1:-1::0;;22505:17:0;;::::1;22404:23;22505:17;-1:-1:-1::0;;22438:28:0;;::::1;::::0;::::1;-1:-1:-1::0;;22404:23:0;;::::1;::::0;::::1;22438:28:::0;;;;-1:-1:-1;;22438:28:0;;;;;;;;;;::::1;22505:17:::0;;;;22479:15;;;::::1;22505:17:::0;;;;;;;::::1;22533:25:::0;;;::::1;::::0;;;::::1;::::0;;22085:481::o;20212:271::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20295:16:0;::::1;20281:11;20295:16:::0;;;:9:::1;:16;::::0;;;;;;;20322:18;;;;20369:4:::1;20351:24:::0;;;;;:32;;20295:16;;;;20351:32:::1;::::0;20295:16;;20351:32:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;20394:20:0;::::1;;::::0;;;:13:::1;:20;::::0;;;;;;:27;;-1:-1:-1;;20394:27:0::1;20417:4;20394:27;::::0;;20437:38;20461:4:::1;::::0;20394:20;-1:-1:-1;;;;;;;;;;;20437:38:0;::::1;::::0;20468:6;689:25:1;;677:2;662:18;;543:177;20437:38:0::1;;;;;;;;20270:213;20212:271:::0;:::o;20493:110::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20571:17:0::1;;::::0;;;:8:::1;:17;::::0;;;;:24;;-1:-1:-1;;20571:24:0::1;20591:4;20571:24;::::0;;20493:110::o;21541:259::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;21612:15:::1;::::0;;21600:11:::1;21638:17:::0;;;;21718:32:::1;::::0;21612:15;;21683:10:::1;::::0;;;21612:15;;21718:32:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21704:46;;;21769:4;21761:31;;;::::0;-1:-1:-1;;;21761:31:0;;8992:2:1;21761:31:0::1;::::0;::::1;8974:21:1::0;9031:2;9011:18;;;9004:30;-1:-1:-1;;;9050:18:1;;;9043:45;9105:18;;21761:31:0::1;8790:339:1::0;21761:31:0::1;21589:211;;;21541:259::o:0;23653:131::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;23738:14:::1;:38:::0;;-1:-1:-1;;23738:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23653:131::o;23794:119::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23873:25:0::1;;::::0;;;:13:::1;:25;::::0;;;;:32;;-1:-1:-1;;23873:32:0::1;23901:4;23873:32;::::0;;23794:119::o;19764:321::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19851:16:0;::::1;;::::0;;;:9:::1;:16;::::0;;;;;:26;-1:-1:-1;19851:26:0::1;19843:56;;;::::0;-1:-1:-1;;;19843:56:0;;9336:2:1;19843:56:0::1;::::0;::::1;9318:21:1::0;9375:2;9355:18;;;9348:30;-1:-1:-1;;;9394:18:1;;;9387:47;9451:18;;19843:56:0::1;9134:341:1::0;19843:56:0::1;19936:13;9516:1;19936:2;:13;:::i;:::-;19929:20;::::0;:6;:20:::1;:::i;:::-;-1:-1:-1::0;;;;;19910:16:0;::::1;;::::0;;;:9:::1;:16;::::0;;;;:40;;:16;;;:40:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;19995:13:0::1;::::0;-1:-1:-1;9516:1:0::1;19995:2;:13;:::i;:::-;19988:20;::::0;:6;:20:::1;:::i;:::-;19979:4;19961:24;::::0;;;:9:::1;:24;::::0;;;;:48;;:24;;;:48:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;20049:4:0::1;::::0;-1:-1:-1;;;;;;20025:52:0;::::1;-1:-1:-1::0;;;;;;;;;;;20063:13:0::1;9516:1;20063:2;:13;:::i;:::-;20056:20;::::0;:6;:20:::1;:::i;:::-;20025:52;::::0;689:25:1;;;677:2;662:18;20025:52:0::1;543:177:1::0;19513:107:0;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19584:20:0::1;19607:5;19584:20:::0;;;:13:::1;:20;::::0;;;;:28;;-1:-1:-1;;19584:28:0::1;::::0;;19513:107::o;9524:62::-;9573:13;9516:1;9573:2;:13;:::i;:::-;9561:25;;:9;:25;:::i;:::-;9524:62;:::o;21275:256::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;21345:14:::1;::::0;;21333:11:::1;21370:16:::0;;;;21449:32:::1;::::0;21345:14;;21414:10:::1;::::0;;;21345:14;;21449:32:::1;8580:205:1::0;23090:89:0;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;23153:10:::1;:18:::0;;-1:-1:-1;;23153:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23090:89::o;22580:99::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;22650:12:::1;:21:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;22650:21:0;;::::1;::::0;;;::::1;::::0;;22580:99::o;18182:238::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;18267:4:::1;18249:24;::::0;;;:9:::1;:24;::::0;;;;;:34;-1:-1:-1;18249:34:0::1;18241:43;;;::::0;::::1;;18313:4;18295:24;::::0;;;:9:::1;:24;::::0;;;;:34;;18323:6;;18295:24;:34:::1;::::0;18323:6;;18295:34:::1;:::i;:::-;;;;;;;;18354:6;18340:10;;:20;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;18376:36:0::1;::::0;689:25:1;;;9835:42:0::1;::::0;18393:4:::1;::::0;-1:-1:-1;;;;;;;;;;;18376:36:0;677:2:1;662:18;18376:36:0::1;;;;;;;18182:238:::0;:::o;26398:336::-;26535:10;26482:4;26523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26523:32:0;;;;;;;;;;26574:35;;;;26566:60;;;;-1:-1:-1;;;26566:60:0;;11238:2:1;26566:60:0;;;11220:21:1;11277:2;11257:18;;;11250:30;-1:-1:-1;;;11296:18:1;;;11289:42;11348:18;;26566:60:0;11036:336:1;26566:60:0;26639:65;26648:10;26660:7;26669:34;26688:15;26669:16;:34;:::i;26639:65::-;-1:-1:-1;26722:4:0;;26398:336;-1:-1:-1;;;26398:336:0:o;18903:282::-;-1:-1:-1;;;;;19022:29:0;;18992:4;19022:29;;;:13;:29;;;;;;19075:15;19065:25;;19062:74;;-1:-1:-1;19123:1:0;;18903:282;-1:-1:-1;;18903:282:0:o;19062:74::-;19153:24;19162:15;19153:8;:24;:::i;:::-;19146:31;18903:282;-1:-1:-1;;;18903:282:0:o;24052:143::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;24112:51:::1;::::0;24099:9:::1;::::0;24112:10:::1;::::0;24136:21:::1;::::0;24099:9;24112:51;24099:9;24112:51;24136:21;24112:10;:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24098:65;;;24182:4;24174:13;;;::::0;::::1;;24087:108;24052:143::o:0;24976:164::-;25053:4;25070:40;25080:10;25092:9;25103:6;25070:9;:40::i;21939:130::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;22023:15:::1;:38:::0;21939:130::o;18434:149::-;18477:12;;18534:13;9516:1;18534:2;:13;:::i;:::-;18519:14;;:28;;;;:::i;:::-;18561:13;9516:1;18561:2;:13;:::i;:::-;18549:11;;:25;;;;:::i;:::-;18512:63;;;;18434:149;;:::o;19386:84::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;19445:11:::1;:17:::0;19386:84::o;21003:262::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;21075:16:::1;::::0;;21063:11:::1;21102:18:::0;;;;21183:32:::1;::::0;21075:16;;21148:10:::1;::::0;;;21075:16;;21183:32:::1;8580:205:1::0;22693:292:0;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;22826:13:::1;9516:1;22826:2;:13;:::i;:::-;22808:31;::::0;:17;:31:::1;:::i;:::-;22790:49:::0;-1:-1:-1;22880:13:0::1;9516:1;22880:2;:13;:::i;:::-;22865:28;::::0;:14;:28:::1;:::i;:::-;22904:14;:34:::0;;;;-1:-1:-1;22949:11:0::1;:28:::0;22693:292::o;19634:120::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;19720:26:::1;:15;19737:8;19720:26;:::i;:::-;-1:-1:-1::0;;;;;19699:20:0;;::::1;;::::0;;;:13:::1;:20;::::0;;;;:47;19634:120::o;20734:126::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20823:22:0::1;;::::0;;;:13:::1;:22;::::0;;;;:29;;-1:-1:-1;;20823:29:0::1;20848:4;20823:29;::::0;;20734:126::o;8843:101::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;8915:7:::1;:21:::0;;-1:-1:-1;;;;;;8915:21:0::1;-1:-1:-1::0;;;;;8915:21:0;;;::::1;::::0;;;::::1;::::0;;8843:101::o;23195:142::-;8491:10;8481:9;:21;;;;;;;;;;;;;;:44;;-1:-1:-1;8518:7:0;;-1:-1:-1;;;;;8518:7:0;8506:10;:19;8481:44;8472:69;;;;-1:-1:-1;;;8472:69:0;;;;;;;:::i;:::-;23285:22:::1;:44:::0;;-1:-1:-1;;;;;23285:44:0;;::::1;;;-1:-1:-1::0;;;;;;23285:44:0;;::::1;::::0;;;::::1;::::0;;23195:142::o;25474:306::-;-1:-1:-1;;;;;25567:22:0;;25559:51;;;;-1:-1:-1;;;25559:51:0;;11801:2:1;25559:51:0;;;11783:21:1;11840:2;11820:18;;;11813:30;-1:-1:-1;;;11859:18:1;;;11852:46;11915:18;;25559:51:0;11599:340:1;25559:51:0;-1:-1:-1;;;;;25629:21:0;;25621:48;;;;-1:-1:-1;;;25621:48:0;;12146:2:1;25621:48:0;;;12128:21:1;12185:2;12165:18;;;12158:30;-1:-1:-1;;;12204:18:1;;;12197:44;12258:18;;25621:48:0;11944:338:1;25621:48:0;-1:-1:-1;;;;;25682:21:0;;;;;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;:39;;;25737:35;;689:25:1;;;25737:35:0;;662:18:1;25737:35:0;;;;;;;25474:306;;;:::o;11502:1520::-;-1:-1:-1;;;;;11595:20:0;;11587:50;;;;-1:-1:-1;;;11587:50:0;;12489:2:1;11587:50:0;;;12471:21:1;12528:2;12508:18;;;12501:30;-1:-1:-1;;;12547:18:1;;;12540:47;12604:18;;11587:50:0;12287:341:1;11587:50:0;-1:-1:-1;;;;;11656:23:0;;11648:51;;;;-1:-1:-1;;;11648:51:0;;12835:2:1;11648:51:0;;;12817:21:1;12874:2;12854:18;;;12847:30;-1:-1:-1;;;12893:18:1;;;12886:45;12948:18;;11648:51:0;12633:339:1;11648:51:0;11713:14;;;;11710:121;;;-1:-1:-1;;;;;11753:21:0;;;;;;:13;:21;;;;;;;;11752:22;:51;;;;-1:-1:-1;;;;;;11779:24:0;;;;;;:13;:24;;;;;;;;11778:25;11752:51;11744:75;;;;-1:-1:-1;;;11744:75:0;;13179:2:1;11744:75:0;;;13161:21:1;13218:2;13198:18;;;13191:30;-1:-1:-1;;;13237:18:1;;;13230:41;13288:18;;11744:75:0;12977:335:1;11744:75:0;-1:-1:-1;;;;;11862:16:0;;11843:15;11862:16;;;:8;:16;;;;;;;;;:39;;-1:-1:-1;;;;;;11882:19:0;;;;;;:8;:19;;;;;;;;11862:39;:60;;;-1:-1:-1;;;;;;11905:17:0;;:9;:17;;;;;;;;;;;;;11862:60;:84;;;-1:-1:-1;;;;;;11926:20:0;;:9;:20;;;;;;;;;;;;;11862:84;11843:104;-1:-1:-1;11960:23:0;-1:-1:-1;;;;;11985:21:0;;12001:4;11985:21;;:49;;-1:-1:-1;;;;;;12010:24:0;;12029:4;12010:24;11985:49;12087:12;;11960:75;;-1:-1:-1;12048:24:0;;-1:-1:-1;;;;;12077:22:0;;;-1:-1:-1;;;12087:12:0;;;;12077:22;:53;;;;-1:-1:-1;;;;;;12103:27:0;;9756:42;12103:27;12077:53;12076:123;;;-1:-1:-1;12158:12:0;;-1:-1:-1;;;;;12145:25:0;;;-1:-1:-1;;;12158:12:0;;;;12145:25;:53;;;;-1:-1:-1;;;;;;12174:24:0;;9756:42;12174:24;12145:53;12048:152;;12216:18;:41;;;;12238:19;12216:41;:55;;;;12261:10;12216:55;12213:802;;;12287:43;12304:6;12312:9;12323:6;12287:16;:43::i;:::-;12213:802;;;12376:10;;;;12371:393;;12421:7;;-1:-1:-1;;;;;12411:17:0;;;12421:7;;12411:17;;;;:41;;-1:-1:-1;12445:7:0;;-1:-1:-1;;;;;12432:20:0;;;12445:7;;12432:20;;12411:41;12407:342;;;12481:7;;;;;;;12477:253;;;12538:9;-1:-1:-1;;;;;12522:28:0;12531:6;-1:-1:-1;;;;;12522:28:0;-1:-1:-1;;;;;;;;;;;12548:1:0;12522:28;;;;689:25:1;;677:2;662:18;;543:177;12522:28:0;;;;;;;;12577:7;;;11502:1520;;;:::o;12477:253::-;12669:10;;;;12661:45;;;;-1:-1:-1;;;12661:45:0;;13709:2:1;12661:45:0;;;13691:21:1;13748:2;13728:18;;;13721:30;13787:25;13767:18;;;13760:53;13830:18;;12661:45:0;13507:347:1;12661:45:0;12815:12;;12796:10;;-1:-1:-1;;;;;12807:20:0;;;-1:-1:-1;;;12815:12:0;;;;12807:20;;:47;;-1:-1:-1;;;;;;12830:24:0;;9756:42;12830:24;12807:47;12892:12;;12796:58;;-1:-1:-1;12869:11:0;;-1:-1:-1;;;;;12881:23:0;;;-1:-1:-1;;;12892:12:0;;;;12881:23;;:53;;-1:-1:-1;;;;;;12907:27:0;;9756:42;12907:27;12881:53;12869:65;;12949:52;12964:6;12971:9;12981:6;12988:5;12994:6;12949:14;:52::i;:::-;12356:659;;12213:802;11576:1446;;;11502:1520;;;:::o;14722:345::-;-1:-1:-1;;;;;14835:17:0;;14814:18;14835:17;;;:9;:17;;;;;;14871:23;;;;14863:60;;;;-1:-1:-1;;;14863:60:0;;14061:2:1;14863:60:0;;;14043:21:1;14100:2;14080:18;;;14073:30;-1:-1:-1;;;14119:18:1;;;14112:54;14183:18;;14863:60:0;13859:348:1;14863:60:0;14937:27;14950:6;14957;14937:12;:27::i;:::-;14978:28;14988:9;14999:6;14978:9;:28::i;:::-;15040:9;-1:-1:-1;;;;;15024:33:0;15033:6;-1:-1:-1;;;;;15024:33:0;-1:-1:-1;;;;;;;;;;;15050:6:0;15024:33;;;;689:25:1;;677:2;662:18;;543:177;15024:33:0;;;;;;;;14803:264;14722:345;;;:::o;13042:1666::-;-1:-1:-1;;;;;13179:20:0;;;13155:21;13179:20;;;:9;:20;;;;;;;13231:17;;;;;;;;13267:23;;;;13259:60;;;;-1:-1:-1;;;13259:60:0;;14061:2:1;13259:60:0;;;14043:21:1;14100:2;14080:18;;;14073:30;-1:-1:-1;;;14119:18:1;;;14112:54;14183:18;;13259:60:0;13859:348:1;13259:60:0;13332:9;13355:6;13352:901;;;-1:-1:-1;;;;;13381:21:0;;;;;;:13;:21;;;;;;;;13377:255;;-1:-1:-1;;;;;13441:21:0;;;;;;:13;:21;;;;;;13464:15;-1:-1:-1;13441:38:0;;:63;;-1:-1:-1;13481:23:0;;;;;;;13441:63;13433:100;;;;-1:-1:-1;;;13433:100:0;;14414:2:1;13433:100:0;;;14396:21:1;14453:2;14433:18;;;14426:30;14492:27;14472:18;;;14465:55;14537:18;;13433:100:0;14212:349:1;13433:100:0;13601:15;;13585:31;;:15;:31;:::i;:::-;-1:-1:-1;;;;;13563:21:0;;;;;;:13;:21;;;;;:53;13377:255;13676:11;;13668:6;:19;;13660:46;;;;-1:-1:-1;;;13660:46:0;;14768:2:1;13660:46:0;;;14750:21:1;14807:2;14787:18;;;14780:30;-1:-1:-1;;;14826:18:1;;;14819:45;14881:18;;13660:46:0;14566:339:1;13660:46:0;-1:-1:-1;13725:7:0;;;;;;;13352:901;;;13755:5;13752:501;;;13816:14;;13791:23;13808:6;13791:16;:23;:::i;:::-;:39;;13783:67;;;;-1:-1:-1;;;13783:67:0;;;;;;;:::i;:::-;13881:11;;13873:6;:19;;13865:48;;;;-1:-1:-1;;;13865:48:0;;;;;;;:::i;:::-;-1:-1:-1;13932:6:0;;;;13752:501;;;14013:14;;13988:23;14005:6;13988:16;:23;:::i;:::-;:39;;13980:67;;;;-1:-1:-1;;;13980:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14080:21:0;;;;;;:13;:21;;;;;;;;14076:133;;-1:-1:-1;;;;;14128:21:0;;;;;;:13;:21;;;;;;14151:15;-1:-1:-1;14128:38:0;;:63;;-1:-1:-1;14168:23:0;;;;;;;14128:63;14120:89;;;;-1:-1:-1;;;14120:89:0;;15457:2:1;14120:89:0;;;15439:21:1;15496:2;15476:18;;;15469:30;-1:-1:-1;;;15515:18:1;;;15508:44;15569:18;;14120:89:0;15255:338:1;14120:89:0;-1:-1:-1;14228:11:0;;;;;;;13752:501;14284:12;;-1:-1:-1;;;;;14276:20:0;;;-1:-1:-1;;;14284:12:0;;;;14276:20;;;;14275:41;;-1:-1:-1;14301:14:0;;;;14300:15;14275:41;14272:85;;;14331:26;14350:6;14331:18;:26::i;:::-;14430:9;;14371:18;;14390:50;;14404:6;;14412:3;;14417:22;;14430:9;;;;;;;14417:12;;;;:22;:::i;:::-;14390:13;:50::i;:::-;14371:69;-1:-1:-1;14454:16:0;14471:22;14371:69;14471:6;:22;:::i;:::-;14454:39;;14509:27;14522:6;14529;14509:12;:27::i;:::-;14570:4;14552:24;;;;:9;:24;;;;;:41;;14580:13;;14552:24;:41;;14580:13;;14552:41;:::i;:::-;;;;-1:-1:-1;14609:33:0;;-1:-1:-1;14619:9:0;14630:11;14609:9;:33::i;:::-;14676:9;-1:-1:-1;;;;;14660:38:0;14669:6;-1:-1:-1;;;;;14660:38:0;-1:-1:-1;;;;;;;;;;;14686:11:0;14660:38;;;;689:25:1;;677:2;662:18;;543:177;14660:38:0;;;;;;;;13144:1564;;;;;13042:1666;;;;;:::o;15418:152::-;-1:-1:-1;;;;;15504:15:0;;15489:14;15504:15;;;:9;:15;;;;;;:22;;15520:6;;15504:22;:::i;:::-;-1:-1:-1;;;;;15537:15:0;;;;;;;:9;:15;;;;;:25;;;;-1:-1:-1;;15418:152:0:o;15251:151::-;-1:-1:-1;;;;;15334:15:0;;15319:14;15334:15;;;:9;:15;;;;;;:22;;15350:6;;15334:22;:::i;16264:1046::-;16168:14;:21;;-1:-1:-1;;16168:21:0;16185:4;16168:21;;;16373:4:::1;16168:14:::0;16355:24;;;:9:::1;:24;::::0;;;;;16406:12:::1;::::0;16446:11:::1;::::0;16406:12;;;::::1;16168:21:::0;16406:12:::1;::::0;16471:22;;::::1;16468:80;;;-1:-1:-1::0;16528:8:0;16468:80:::1;16580:11;16564:15;:27;:40;;;-1:-1:-1::0;16593:11:0::1;::::0;::::1;::::0;16564:40:::1;16561:77;;;16620:7;;;;;16561:77;16684:12;::::0;16648:22:::1;::::0;16671:35:::1;::::0;::::1;::::0;16672:24:::1;::::0;16684:12;;::::1;;;16672:11:::0;:24:::1;:::i;:::-;16671:35;;;;:::i;:::-;16752:9;::::0;16648:58;;-1:-1:-1;16717:20:0::1;::::0;16739:32:::1;::::0;::::1;::::0;16740:21:::1;::::0;16752:9;;::::1;;;16740:11:::0;:21:::1;:::i;:::-;16739:32;;;;:::i;:::-;16717:54:::0;-1:-1:-1;16784:13:0::1;16798:19;16816:1;16798:17:::0;:19:::1;:::i;:::-;16784:33:::0;-1:-1:-1;16828:16:0::1;16845:26;16784:33:::0;16845:17;:26:::1;:::i;:::-;16828:43:::0;-1:-1:-1;16887:14:0::1;16902:27;16914:15:::0;16828:43;16902:27:::1;:::i;:::-;16887:42:::0;-1:-1:-1;16969:21:0::1;17001:27;16887:42:::0;17001:16:::1;:27::i;:::-;17039:11;17052:42;17076:18:::0;17052:21:::1;:42;:::i;:::-;17039:56:::0;-1:-1:-1;17106:11:0::1;17141:9:::0;17121:18:::1;17128:11:::0;17039:56;17121:18:::1;:::i;:::-;17120:30;;;;:::i;:::-;17106:44;;17161:31;17175:8;17185:6;17161:13;:31::i;:::-;17203:17;17222:42;17246:18:::0;17222:21:::1;:42;:::i;:::-;17203:62;;17276:26;17289:12;17276;:26::i;:::-;16323:987;;;;;;;;;;;;16200:1;-1:-1:-1::0;16212:14:0;:22;;-1:-1:-1;;16212:22:0;;;16264:1046::o;15081:150::-;15168:4;15218:5;15204:10;15193:21;;15200:3;15193:10;;:6;:10;;;;:::i;:::-;:21;;;;:::i;:::-;15192:31;;;;:::i;:::-;15185:38;15081:150;-1:-1:-1;;;;15081:150:0:o;17324:428::-;17414:6;;17382:48;;17399:4;;-1:-1:-1;;;;;17414:6:0;17423;17382:8;:48::i;:::-;17465:16;;;17479:1;17465:16;;;;;;;;17441:21;;17465:16;;;;;;;;;;-1:-1:-1;17465:16:0;17441:40;;17510:4;17492;17497:1;17492:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17492:23:0;;;:7;;;;;;;;;;:23;;;;17536:6;;:13;;;-1:-1:-1;;;17536:13:0;;;;:6;;;;;:11;;:13;;;;;17492:7;;17536:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17526:4;17531:1;17526:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17526:23:0;;;:7;;;;;;;;;:23;17562:6;;:182;;-1:-1:-1;;;17562:182:0;;:6;;;:57;;:182;;17634:6;;17562;;17671:4;;17698;;17718:15;;17562:182;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17766:377;17856:9;17842:12;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;17908:6:0;;17876:53;;17893:4;;-1:-1:-1;;;;;17908:6:0;17917:11;17876:8;:53::i;:::-;17940:6;;:195;;-1:-1:-1;;;17940:195:0;;18003:4;17940:195;;;17444:34:1;;;17494:18;;;17487:34;;;17940:6:0;17537:18:1;;;17530:34;;;17580:18;;;17573:34;17623:19;;;17616:44;18109:15:0;17676:19:1;;;17669:35;-1:-1:-1;;;;;17940:6:0;;;;:22;;17970:9;;17378:19:1;;17940:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17766:377;;:::o;15900:156::-;15990:12;;15957:17;;16004:3;;15978:24;;15990:12;;;;;15978:9;:24;:::i;:::-;15977:30;;;;:::i;:::-;15957:50;;16034:12;16018:14;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;15900:156:0:o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:388;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;-1:-1:-1;460:2:1;445:18;;432:32;473:33;432:32;473:33;:::i;:::-;525:7;515:17;;;150:388;;;;;:::o;725:548::-;837:4;866:2;895;884:9;877:21;927:6;921:13;970:6;965:2;954:9;950:18;943:34;995:1;1005:140;1019:6;1016:1;1013:13;1005:140;;;1114:14;;;1110:23;;1104:30;1080:17;;;1099:2;1076:26;1069:66;1034:10;;1005:140;;;1009:3;1194:1;1189:2;1180:6;1169:9;1165:22;1161:31;1154:42;1264:2;1257;1253:7;1248:2;1240:6;1236:15;1232:29;1221:9;1217:45;1213:54;1205:62;;;;725:548;;;;:::o;1278:315::-;1346:6;1354;1407:2;1395:9;1386:7;1382:23;1378:32;1375:52;;;1423:1;1420;1413:12;1375:52;1462:9;1449:23;1481:31;1506:5;1481:31;:::i;:::-;1531:5;1583:2;1568:18;;;;1555:32;;-1:-1:-1;;;1278:315:1:o;1979:247::-;2038:6;2091:2;2079:9;2070:7;2066:23;2062:32;2059:52;;;2107:1;2104;2097:12;2059:52;2146:9;2133:23;2165:31;2190:5;2165:31;:::i;2231:456::-;2308:6;2316;2324;2377:2;2365:9;2356:7;2352:23;2348:32;2345:52;;;2393:1;2390;2383:12;2345:52;2432:9;2419:23;2451:31;2476:5;2451:31;:::i;:::-;2501:5;-1:-1:-1;2558:2:1;2543:18;;2530:32;2571:33;2530:32;2571:33;:::i;:::-;2231:456;;2623:7;;-1:-1:-1;;;2677:2:1;2662:18;;;;2649:32;;2231:456::o;3368:118::-;3454:5;3447:13;3440:21;3433:5;3430:32;3420:60;;3476:1;3473;3466:12;3491:241;3547:6;3600:2;3588:9;3579:7;3575:23;3571:32;3568:52;;;3616:1;3613;3606:12;3568:52;3655:9;3642:23;3674:28;3696:5;3674:28;:::i;3737:382::-;3802:6;3810;3863:2;3851:9;3842:7;3838:23;3834:32;3831:52;;;3879:1;3876;3869:12;3831:52;3918:9;3905:23;3937:31;3962:5;3937:31;:::i;:::-;3987:5;-1:-1:-1;4044:2:1;4029:18;;4016:32;4057:30;4016:32;4057:30;:::i;4124:156::-;4190:20;;4250:4;4239:16;;4229:27;;4219:55;;4270:1;4267;4260:12;4219:55;4124:156;;;:::o;4285:464::-;4370:6;4378;4386;4394;4402;4455:3;4443:9;4434:7;4430:23;4426:33;4423:53;;;4472:1;4469;4462:12;4423:53;4495:27;4512:9;4495:27;:::i;:::-;4485:37;;4541:36;4573:2;4562:9;4558:18;4541:36;:::i;:::-;4531:46;;4596:36;4628:2;4617:9;4613:18;4596:36;:::i;:::-;4586:46;;4651:36;4683:2;4672:9;4668:18;4651:36;:::i;:::-;4641:46;;4706:37;4738:3;4727:9;4723:19;4706:37;:::i;:::-;4696:47;;4285:464;;;;;;;;:::o;4754:182::-;4811:6;4864:2;4852:9;4843:7;4839:23;4835:32;4832:52;;;4880:1;4877;4870:12;4832:52;4903:27;4920:9;4903:27;:::i;4941:180::-;5000:6;5053:2;5041:9;5032:7;5028:23;5024:32;5021:52;;;5069:1;5066;5059:12;5021:52;-1:-1:-1;5092:23:1;;4941:180;-1:-1:-1;4941:180:1:o;5379:248::-;5447:6;5455;5508:2;5496:9;5487:7;5483:23;5479:32;5476:52;;;5524:1;5521;5514:12;5476:52;-1:-1:-1;;5547:23:1;;;5617:2;5602:18;;;5589:32;;-1:-1:-1;5379:248:1:o;5865:335::-;6067:2;6049:21;;;6106:2;6086:18;;;6079:30;-1:-1:-1;;;6140:2:1;6125:18;;6118:41;6191:2;6176:18;;5865:335::o;6205:184::-;6275:6;6328:2;6316:9;6307:7;6303:23;6299:32;6296:52;;;6344:1;6341;6334:12;6296:52;-1:-1:-1;6367:16:1;;6205:184;-1:-1:-1;6205:184:1:o;7026:245::-;7093:6;7146:2;7134:9;7125:7;7121:23;7117:32;7114:52;;;7162:1;7159;7152:12;7114:52;7194:9;7188:16;7213:28;7235:5;7213:28;:::i;7625:127::-;7686:10;7681:3;7677:20;7674:1;7667:31;7717:4;7714:1;7707:15;7741:4;7738:1;7731:15;7757:128;7824:9;;;7845:11;;;7842:37;;;7859:18;;:::i;7890:125::-;7955:9;;;7976:10;;;7973:36;;;7989:18;;:::i;8020:148::-;8108:4;8087:12;;;8101;;;8083:31;;8126:13;;8123:39;;;8142:18;;:::i;9480:422::-;9569:1;9612:5;9569:1;9626:270;9647:7;9637:8;9634:21;9626:270;;;9706:4;9702:1;9698:6;9694:17;9688:4;9685:27;9682:53;;;9715:18;;:::i;:::-;9765:7;9755:8;9751:22;9748:55;;;9785:16;;;;9748:55;9864:22;;;;9824:15;;;;9626:270;;;9630:3;9480:422;;;;;:::o;9907:806::-;9956:5;9986:8;9976:80;;-1:-1:-1;10027:1:1;10041:5;;9976:80;10075:4;10065:76;;-1:-1:-1;10112:1:1;10126:5;;10065:76;10157:4;10175:1;10170:59;;;;10243:1;10238:130;;;;10150:218;;10170:59;10200:1;10191:10;;10214:5;;;10238:130;10275:3;10265:8;10262:17;10259:43;;;10282:18;;:::i;:::-;-1:-1:-1;;10338:1:1;10324:16;;10353:5;;10150:218;;10452:2;10442:8;10439:16;10433:3;10427:4;10424:13;10420:36;10414:2;10404:8;10401:16;10396:2;10390:4;10387:12;10383:35;10380:77;10377:159;;;-1:-1:-1;10489:19:1;;;10521:5;;10377:159;10568:34;10593:8;10587:4;10568:34;:::i;:::-;10638:6;10634:1;10630:6;10626:19;10617:7;10614:32;10611:58;;;10649:18;;:::i;:::-;10687:20;;9907:806;-1:-1:-1;;;9907:806:1:o;10718:140::-;10776:5;10805:47;10846:4;10836:8;10832:19;10826:4;10805:47;:::i;10863:168::-;10903:7;10969:1;10965;10961:6;10957:14;10954:1;10951:21;10946:1;10939:9;10932:17;10928:45;10925:71;;;10976:18;;:::i;:::-;-1:-1:-1;11016:9:1;;10863:168::o;11377:217::-;11417:1;11443;11433:132;;11487:10;11482:3;11478:20;11475:1;11468:31;11522:4;11519:1;11512:15;11550:4;11547:1;11540:15;11433:132;-1:-1:-1;11579:9:1;;11377:217::o;14910:340::-;15112:2;15094:21;;;15151:2;15131:18;;;15124:30;-1:-1:-1;;;15185:2:1;15170:18;;15163:46;15241:2;15226:18;;14910:340::o;15730:127::-;15791:10;15786:3;15782:20;15779:1;15772:31;15822:4;15819:1;15812:15;15846:4;15843:1;15836:15;15862:251;15932:6;15985:2;15973:9;15964:7;15960:23;15956:32;15953:52;;;16001:1;15998;15991:12;15953:52;16033:9;16027:16;16052:31;16077:5;16052:31;:::i;16118:980::-;16380:4;16428:3;16417:9;16413:19;16459:6;16448:9;16441:25;16485:2;16523:6;16518:2;16507:9;16503:18;16496:34;16566:3;16561:2;16550:9;16546:18;16539:31;16590:6;16625;16619:13;16656:6;16648;16641:22;16694:3;16683:9;16679:19;16672:26;;16733:2;16725:6;16721:15;16707:29;;16754:1;16764:195;16778:6;16775:1;16772:13;16764:195;;;16843:13;;-1:-1:-1;;;;;16839:39:1;16827:52;;16934:15;;;;16899:12;;;;16875:1;16793:9;16764:195;;;-1:-1:-1;;;;;;;17015:32:1;;;;17010:2;16995:18;;16988:60;-1:-1:-1;;;17079:3:1;17064:19;17057:35;16976:3;16118:980;-1:-1:-1;;;16118:980:1:o;17715:306::-;17803:6;17811;17819;17872:2;17860:9;17851:7;17847:23;17843:32;17840:52;;;17888:1;17885;17878:12;17840:52;17917:9;17911:16;17901:26;;17967:2;17956:9;17952:18;17946:25;17936:35;;18011:2;18000:9;17996:18;17990:25;17980:35;;17715:306;;;;;:::o

Swarm Source

ipfs://182a8992266cbd7d8f035110c3f1145ada1adc17eeae2d94fd6dac32507c2e4e
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.