ETH Price: $3,365.53 (-2.29%)
Gas: 2 Gwei

Token

Gatsby Inu (GATSBY)
 

Overview

Max Total Supply

1,000,000,000,000 GATSBY

Holders

1,980 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$79,893.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
35,644,170.208829454 GATSBY

Value
$2.85 ( ~0.000846821804720839 Eth) [0.0036%]
0xf4b4150a9ddd794fa861b38c9390bdfd5dac9311
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Gatsby Inu is a community-driven meme token, inspired by Elon Musk's biggest dog 'Gatsby'.

Market

Volume (24H):$60.44
Market Capitalization:$0.00
Circulating Supply:0.00 GATSBY
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GatsbyV2

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license, Audited

Contract Source Code (Solidity)Audit Report

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

/*
    Gatsby Inu
    https://linktr.ee/gatsbyinu
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    constructor(address creatorOwner) { _owner = creatorOwner; }
    modifier onlyOwner() { require(msg.sender == _owner, "Only owner can call this"); _; }
    function owner() public view returns (address) { return _owner; }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0); 
        emit OwnershipTransferred(address(0)); 
    }
}

contract GatsbyV2 is IERC20, Auth {
    string private constant _name         = "Gatsby Inu";
    string private constant _symbol       = "GATSBY";
    uint8 private constant _decimals      = 9;
    uint256 private constant _totalSupply = 1_000_000_000_000 * (10**_decimals);
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint32 private _tradeCount;

    address payable private constant _walletMarketing = payable(0x9D16070DacE017cd925FD9c69FFdC9CD0d41cC92);
    uint256 private constant _taxSwapMin = _totalSupply / 200000;
    uint256 private constant _taxSwapMax = _totalSupply / 1000;

    mapping (address => bool) private _noFees;

    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    event TokensAirdropped(uint256 totalWallets, uint256 totalTokens);

    constructor() Auth(msg.sender) {
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _balances[_owner]);

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_swapRouterAddress] = true;
        _noFees[_walletMarketing] = true;
    }

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

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sender), "Trading not open");
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP exists");
        require(!_tradingOpen, "trading is open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message");
        require(_balances[address(this)]>0, "No tokens in contract");
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance);
        _isLP[_primaryLP] = true;
        _tradeCount = 0;
        _tradingOpen = true;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");

        if (!_tradingOpen) { require(_noFees[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }

        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        if ( _taxAmount > 0 ) { 
            _balances[address(this)] += _taxAmount; 
            incrementTradeCount();
        }
        _balances[recipient] += _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _checkTradingOpen(address sender) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sender]) { checkResult = true; } 

        return checkResult;
    }

    function incrementTradeCount() private {
        if ( _tradeCount <= 100_001 ) {
            // tax is finalized after 100,000 trades
            _tradeCount += 1;
        } 
    }

    function tax() external view returns (uint32 taxNumerator, uint32 taxDenominator, uint32 tradeCounter) {
        (uint32 numerator, uint32 denominator) = _getTaxPercentages();
        return (numerator, denominator, _tradeCount);
    }

    function _getTaxPercentages() private view returns (uint32 numerator, uint32 denominator) {
        uint32 taxNumerator;
        uint32 taxDenominator = 100_000;

        if ( _tradeCount <= 30_000 ) {
            taxNumerator = 3000;    // up to 30,000 trades the tax is 3.0 %
        } else if ( _tradeCount <= 100_000 ) {
            taxNumerator = 1000;    // from 30,001 to 100,000 trades the tax is 1.0 %
        } else {
            taxNumerator = 0;     // above 100,000 trades there is no tax
        }

        return (taxNumerator, taxDenominator);
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( _tradingOpen && !_noFees[sender] && !_noFees[recipient] ) { 
            if ( _isLP[sender] || _isLP[recipient] ) {
                (uint32 numerator, uint32 denominator) = _getTaxPercentages();
                taxAmount = amount * numerator / denominator;
            }
        }

        return taxAmount;
    }

    function marketingWallet() external pure returns (address) {
        return _walletMarketing;
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = balanceOf(address(this));

        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
            
            _swapTaxTokensForEth(_taxTokensAvailable);

            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { 
                (bool sent, bytes memory data) = _walletMarketing.call{value: _contractETHBalance}("");
            }
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _primarySwapRouter.WETH();
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }

    function airdrop(address[] calldata addresses, uint256[] calldata tokenAmounts) external onlyOwner {
        require(addresses.length <= 250,"More than 250 wallets");
        require(addresses.length == tokenAmounts.length,"List length mismatch");

        uint256 airdropTotal = 0;
        for(uint i=0; i < addresses.length; i++){
            airdropTotal += (tokenAmounts[i] * 10**_decimals);
        }
        
        require(_balances[msg.sender] >= airdropTotal, "Token balance too low");
        _balances[msg.sender] -= airdropTotal; //decrease sender balance of all airdropped tokens at once to save gas updating storage

        for(uint i=0; i < addresses.length; i++){
            _balances[addresses[i]] += (tokenAmounts[i] * 10**_decimals);
            emit Transfer(msg.sender, addresses[i], (tokenAmounts[i] * 10**_decimals) );       
        }

        emit TokensAirdropped(addresses.length, airdropTotal);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalWallets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"}],"name":"TokensAirdropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint32","name":"taxNumerator","type":"uint32"},{"internalType":"uint32","name":"taxDenominator","type":"uint32"},{"internalType":"uint32","name":"tradeCounter","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860016101000a81548160ff0219169083151502179055503480156200008157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506009600a620000d491906200057b565b64e8d4a51000620000e69190620005cc565b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200022a919062000628565b60405180910390a36001600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000739d16070dace017cd925fd9c69ffdc9cd0d41cc9273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000645565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200046f57808604811115620004475762000446620003e1565b5b6001851615620004575780820291505b8081029050620004678562000410565b945062000427565b94509492505050565b6000826200048a57600190506200055d565b816200049a57600090506200055d565b8160018114620004b35760028114620004be57620004f4565b60019150506200055d565b60ff841115620004d357620004d2620003e1565b5b8360020a915084821115620004ed57620004ec620003e1565b5b506200055d565b5060208310610133831016604e8410600b84101617156200052e5782820a905083811115620005285762000527620003e1565b5b6200055d565b6200053d84848460016200041d565b92509050818404811115620005575762000556620003e1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005888262000564565b915062000595836200056e565b9250620005c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000478565b905092915050565b6000620005d98262000564565b9150620005e68362000564565b9250828202620005f68162000564565b9150828204841483151762000610576200060f620003e1565b5b5092915050565b620006228162000564565b82525050565b60006020820190506200063f600083018462000617565b92915050565b612fc280620006556000396000f3fe6080604052600436106100ec5760003560e01c8063715018a61161008a57806399c8d5561161005957806399c8d556146102f1578063a9059cbb1461031e578063dd62ed3e1461035b578063e8078d9414610398576100f3565b8063715018a61461025957806375f0a874146102705780638da5cb5b1461029b57806395d89b41146102c6576100f3565b806323b872dd116100c657806323b872dd1461018b578063313ce567146101c857806367243482146101f357806370a082311461021c576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103a2565b60405161011a91906120ac565b60405180910390f35b34801561012f57600080fd5b5061014a6004803603810190610145919061216c565b6103df565b60405161015791906121c7565b60405180910390f35b34801561016c57600080fd5b506101756104d1565b60405161018291906121f1565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad919061220c565b6104f6565b6040516101bf91906121c7565b60405180910390f35b3480156101d457600080fd5b506101dd610700565b6040516101ea919061227b565b60405180910390f35b3480156101ff57600080fd5b5061021a60048036038101906102159190612351565b610709565b005b34801561022857600080fd5b50610243600480360381019061023e91906123d2565b610b30565b60405161025091906121f1565b60405180910390f35b34801561026557600080fd5b5061026e610b79565b005b34801561027c57600080fd5b50610285610c82565b604051610292919061240e565b60405180910390f35b3480156102a757600080fd5b506102b0610c9e565b6040516102bd919061240e565b60405180910390f35b3480156102d257600080fd5b506102db610cc7565b6040516102e891906120ac565b60405180910390f35b3480156102fd57600080fd5b50610306610d04565b60405161031593929190612448565b60405180910390f35b34801561032a57600080fd5b506103456004803603810190610340919061216c565b610d3a565b60405161035291906121c7565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d919061247f565b610d97565b60405161038f91906121f1565b60405180910390f35b6103a0610e1e565b005b60606040518060400160405280600a81526020017f47617473627920496e7500000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104bf91906121f1565b60405180910390a36001905092915050565b60006009600a6104e19190612621565b64e8d4a510006104f1919061266c565b905090565b600061050184611373565b610540576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610537906126fa565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106ec5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461066b919061271a565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6106f78484846113f9565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e9061279a565b60405180910390fd5b60fa8484905011156107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612806565b60405180910390fd5b818190508484905014610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d90612872565b60405180910390fd5b6000805b85859050811015610887576009600a6108439190612621565b84848381811061085657610855612892565b5b90506020020135610867919061266c565b8261087291906128c1565b9150808061087f906128f5565b91505061082a565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561090a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090190612989565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610959919061271a565b9250508190555060005b85859050811015610aec576009600a61097c9190612621565b84848381811061098f5761098e612892565b5b905060200201356109a0919061266c565b600160008888858181106109b7576109b6612892565b5b90506020020160208101906109cc91906123d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a1591906128c1565b92505081905550858582818110610a2f57610a2e612892565b5b9050602002016020810190610a4491906123d2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610aa09190612621565b878786818110610ab357610ab2612892565b5b90506020020135610ac4919061266c565b604051610ad191906121f1565b60405180910390a38080610ae4906128f5565b915050610963565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051610b219291906129a9565b60405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe9061279a565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c78919061240e565b60405180910390a1565b6000739d16070dace017cd925fd9c69ffdc9cd0d41cc92905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4741545342590000000000000000000000000000000000000000000000000000815250905090565b6000806000806000610d14611723565b915091508181600360009054906101000a900463ffffffff169450945094505050909192565b6000610d4533611373565b610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b906126fa565b60405180910390fd5b610d8f3384846113f9565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea39061279a565b60405180910390fd5b6001600860016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612a1e565b60405180910390fd5b600860009054906101000a900460ff1615610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f90612a8a565b60405180910390fd5b6000341180610fb75750600047115b610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612af6565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106f90612b62565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111099190612b97565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b69190612b97565b6040518363ffffffff1660e01b81526004016111d3929190612bc4565b6020604051808303816000875af11580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190612b97565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061129f600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205447611798565b600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360006101000a81548163ffffffff021916908363ffffffff1602179055506001600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff021916908315150217905550565b60008060009050600860009054906101000a900460ff161561139857600190506113f0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ef57600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146090612c39565b60405180910390fd5b600860009054906101000a900460ff1661150a57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611500906126fa565b60405180910390fd5b5b600860019054906101000a900460ff161580156115705750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561157e5761157d611872565b5b600061158b858585611a01565b90506000818461159b919061271a565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115ec919061271a565b92505081905550600082111561165b5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461164b91906128c1565b9250508190555061165a611bae565b5b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116aa91906128c1565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161170e91906121f1565b60405180910390a36001925050509392505050565b600080600080620186a09050617530600360009054906101000a900463ffffffff1663ffffffff161161175a57610bb8915061178c565b620186a0600360009054906101000a900463ffffffff1663ffffffff1611611786576103e8915061178b565b600091505b5b81819350935050509091565b6117a182611c13565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161182896959493929190612c9e565b60606040518083038185885af1158015611846573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061186b9190612d14565b5050505050565b6001600860016101000a81548160ff021916908315150217905550600061189830610b30565b905062030d406009600a6118ac9190612621565b64e8d4a510006118bc919061266c565b6118c69190612d96565b81101580156118e15750600860009054906101000a900460ff165b156119e3576103e86009600a6118f79190612621565b64e8d4a51000611907919061266c565b6119119190612d96565b8110611945576103e86009600a6119289190612621565b64e8d4a51000611938919061266c565b6119429190612d96565b90505b61194e81611dfd565b600047905060008111156119e157600080739d16070dace017cd925fd9c69ffdc9cd0d41cc9273ffffffffffffffffffffffffffffffffffffffff168360405161199790612df8565b60006040518083038185875af1925050503d80600081146119d4576040519150601f19603f3d011682016040523d82523d6000602084013e6119d9565b606091505b509150915050505b505b506000600860016101000a81548160ff021916908315150217905550565b600080600860009054906101000a900460ff168015611a6a5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ac05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ba357600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b665750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ba257600080611b76611723565b915091508063ffffffff168263ffffffff1686611b93919061266c565b611b9d9190612d96565b925050505b5b809150509392505050565b620186a1600360009054906101000a900463ffffffff1663ffffffff1611611c11576001600360008282829054906101000a900463ffffffff16611bf29190612e0d565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611dfa577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611df191906121f1565b60405180910390a35b50565b611e0681611c13565b6000600267ffffffffffffffff811115611e2357611e22612e45565b5b604051908082528060200260200182016040528015611e515781602001602082028036833780820191505090505b5090503081600081518110611e6957611e68612892565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f349190612b97565b81600181518110611f4857611f47612892565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fe6959493929190612f32565b600060405180830381600087803b15801561200057600080fd5b505af1158015612014573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561205657808201518184015260208101905061203b565b60008484015250505050565b6000601f19601f8301169050919050565b600061207e8261201c565b6120888185612027565b9350612098818560208601612038565b6120a181612062565b840191505092915050565b600060208201905081810360008301526120c68184612073565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612103826120d8565b9050919050565b612113816120f8565b811461211e57600080fd5b50565b6000813590506121308161210a565b92915050565b6000819050919050565b61214981612136565b811461215457600080fd5b50565b60008135905061216681612140565b92915050565b60008060408385031215612183576121826120ce565b5b600061219185828601612121565b92505060206121a285828601612157565b9150509250929050565b60008115159050919050565b6121c1816121ac565b82525050565b60006020820190506121dc60008301846121b8565b92915050565b6121eb81612136565b82525050565b600060208201905061220660008301846121e2565b92915050565b600080600060608486031215612225576122246120ce565b5b600061223386828701612121565b935050602061224486828701612121565b925050604061225586828701612157565b9150509250925092565b600060ff82169050919050565b6122758161225f565b82525050565b6000602082019050612290600083018461226c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126122bb576122ba612296565b5b8235905067ffffffffffffffff8111156122d8576122d761229b565b5b6020830191508360208202830111156122f4576122f36122a0565b5b9250929050565b60008083601f84011261231157612310612296565b5b8235905067ffffffffffffffff81111561232e5761232d61229b565b5b60208301915083602082028301111561234a576123496122a0565b5b9250929050565b6000806000806040858703121561236b5761236a6120ce565b5b600085013567ffffffffffffffff811115612389576123886120d3565b5b612395878288016122a5565b9450945050602085013567ffffffffffffffff8111156123b8576123b76120d3565b5b6123c4878288016122fb565b925092505092959194509250565b6000602082840312156123e8576123e76120ce565b5b60006123f684828501612121565b91505092915050565b612408816120f8565b82525050565b600060208201905061242360008301846123ff565b92915050565b600063ffffffff82169050919050565b61244281612429565b82525050565b600060608201905061245d6000830186612439565b61246a6020830185612439565b6124776040830184612439565b949350505050565b60008060408385031215612496576124956120ce565b5b60006124a485828601612121565b92505060206124b585828601612121565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561254557808604811115612521576125206124bf565b5b60018516156125305780820291505b808102905061253e856124ee565b9450612505565b94509492505050565b60008261255e576001905061261a565b8161256c576000905061261a565b8160018114612582576002811461258c576125bb565b600191505061261a565b60ff84111561259e5761259d6124bf565b5b8360020a9150848211156125b5576125b46124bf565b5b5061261a565b5060208310610133831016604e8410600b84101617156125f05782820a9050838111156125eb576125ea6124bf565b5b61261a565b6125fd84848460016124fb565b92509050818404811115612614576126136124bf565b5b81810290505b9392505050565b600061262c82612136565b91506126378361225f565b92506126647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461254e565b905092915050565b600061267782612136565b915061268283612136565b925082820261269081612136565b915082820484148315176126a7576126a66124bf565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006126e4601083612027565b91506126ef826126ae565b602082019050919050565b60006020820190508181036000830152612713816126d7565b9050919050565b600061272582612136565b915061273083612136565b9250828203905081811115612748576127476124bf565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000612784601883612027565b915061278f8261274e565b602082019050919050565b600060208201905081810360008301526127b381612777565b9050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b60006127f0601583612027565b91506127fb826127ba565b602082019050919050565b6000602082019050818103600083015261281f816127e3565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b600061285c601483612027565b915061286782612826565b602082019050919050565b6000602082019050818103600083015261288b8161284f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006128cc82612136565b91506128d783612136565b92508282019050808211156128ef576128ee6124bf565b5b92915050565b600061290082612136565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612932576129316124bf565b5b600182019050919050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000612973601583612027565b915061297e8261293d565b602082019050919050565b600060208201905081810360008301526129a281612966565b9050919050565b60006040820190506129be60008301856121e2565b6129cb60208301846121e2565b9392505050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000612a08600983612027565b9150612a13826129d2565b602082019050919050565b60006020820190508181036000830152612a37816129fb565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000612a74600f83612027565b9150612a7f82612a3e565b602082019050919050565b60006020820190508181036000830152612aa381612a67565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000612ae0601d83612027565b9150612aeb82612aaa565b602082019050919050565b60006020820190508181036000830152612b0f81612ad3565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000612b4c601583612027565b9150612b5782612b16565b602082019050919050565b60006020820190508181036000830152612b7b81612b3f565b9050919050565b600081519050612b918161210a565b92915050565b600060208284031215612bad57612bac6120ce565b5b6000612bbb84828501612b82565b91505092915050565b6000604082019050612bd960008301856123ff565b612be660208301846123ff565b9392505050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000612c23601d83612027565b9150612c2e82612bed565b602082019050919050565b60006020820190508181036000830152612c5281612c16565b9050919050565b6000819050919050565b6000819050919050565b6000612c88612c83612c7e84612c59565b612c63565b612136565b9050919050565b612c9881612c6d565b82525050565b600060c082019050612cb360008301896123ff565b612cc060208301886121e2565b612ccd6040830187612c8f565b612cda6060830186612c8f565b612ce760808301856123ff565b612cf460a08301846121e2565b979650505050505050565b600081519050612d0e81612140565b92915050565b600080600060608486031215612d2d57612d2c6120ce565b5b6000612d3b86828701612cff565b9350506020612d4c86828701612cff565b9250506040612d5d86828701612cff565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612da182612136565b9150612dac83612136565b925082612dbc57612dbb612d67565b5b828204905092915050565b600081905092915050565b50565b6000612de2600083612dc7565b9150612ded82612dd2565b600082019050919050565b6000612e0382612dd5565b9150819050919050565b6000612e1882612429565b9150612e2383612429565b9250828201905063ffffffff811115612e3f57612e3e6124bf565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ea9816120f8565b82525050565b6000612ebb8383612ea0565b60208301905092915050565b6000602082019050919050565b6000612edf82612e74565b612ee98185612e7f565b9350612ef483612e90565b8060005b83811015612f25578151612f0c8882612eaf565b9750612f1783612ec7565b925050600181019050612ef8565b5085935050505092915050565b600060a082019050612f4760008301886121e2565b612f546020830187612c8f565b8181036040830152612f668186612ed4565b9050612f7560608301856123ff565b612f8260808301846121e2565b969550505050505056fea2646970667358221220cce493aa234a96595042a3cf091d575b2cf1558ed34497120bff60a0ae907f5964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c8063715018a61161008a57806399c8d5561161005957806399c8d556146102f1578063a9059cbb1461031e578063dd62ed3e1461035b578063e8078d9414610398576100f3565b8063715018a61461025957806375f0a874146102705780638da5cb5b1461029b57806395d89b41146102c6576100f3565b806323b872dd116100c657806323b872dd1461018b578063313ce567146101c857806367243482146101f357806370a082311461021c576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103a2565b60405161011a91906120ac565b60405180910390f35b34801561012f57600080fd5b5061014a6004803603810190610145919061216c565b6103df565b60405161015791906121c7565b60405180910390f35b34801561016c57600080fd5b506101756104d1565b60405161018291906121f1565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad919061220c565b6104f6565b6040516101bf91906121c7565b60405180910390f35b3480156101d457600080fd5b506101dd610700565b6040516101ea919061227b565b60405180910390f35b3480156101ff57600080fd5b5061021a60048036038101906102159190612351565b610709565b005b34801561022857600080fd5b50610243600480360381019061023e91906123d2565b610b30565b60405161025091906121f1565b60405180910390f35b34801561026557600080fd5b5061026e610b79565b005b34801561027c57600080fd5b50610285610c82565b604051610292919061240e565b60405180910390f35b3480156102a757600080fd5b506102b0610c9e565b6040516102bd919061240e565b60405180910390f35b3480156102d257600080fd5b506102db610cc7565b6040516102e891906120ac565b60405180910390f35b3480156102fd57600080fd5b50610306610d04565b60405161031593929190612448565b60405180910390f35b34801561032a57600080fd5b506103456004803603810190610340919061216c565b610d3a565b60405161035291906121c7565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d919061247f565b610d97565b60405161038f91906121f1565b60405180910390f35b6103a0610e1e565b005b60606040518060400160405280600a81526020017f47617473627920496e7500000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104bf91906121f1565b60405180910390a36001905092915050565b60006009600a6104e19190612621565b64e8d4a510006104f1919061266c565b905090565b600061050184611373565b610540576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610537906126fa565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106ec5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461066b919061271a565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6106f78484846113f9565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e9061279a565b60405180910390fd5b60fa8484905011156107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612806565b60405180910390fd5b818190508484905014610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d90612872565b60405180910390fd5b6000805b85859050811015610887576009600a6108439190612621565b84848381811061085657610855612892565b5b90506020020135610867919061266c565b8261087291906128c1565b9150808061087f906128f5565b91505061082a565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561090a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090190612989565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610959919061271a565b9250508190555060005b85859050811015610aec576009600a61097c9190612621565b84848381811061098f5761098e612892565b5b905060200201356109a0919061266c565b600160008888858181106109b7576109b6612892565b5b90506020020160208101906109cc91906123d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a1591906128c1565b92505081905550858582818110610a2f57610a2e612892565b5b9050602002016020810190610a4491906123d2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610aa09190612621565b878786818110610ab357610ab2612892565b5b90506020020135610ac4919061266c565b604051610ad191906121f1565b60405180910390a38080610ae4906128f5565b915050610963565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051610b219291906129a9565b60405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe9061279a565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c78919061240e565b60405180910390a1565b6000739d16070dace017cd925fd9c69ffdc9cd0d41cc92905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4741545342590000000000000000000000000000000000000000000000000000815250905090565b6000806000806000610d14611723565b915091508181600360009054906101000a900463ffffffff169450945094505050909192565b6000610d4533611373565b610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b906126fa565b60405180910390fd5b610d8f3384846113f9565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea39061279a565b60405180910390fd5b6001600860016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612a1e565b60405180910390fd5b600860009054906101000a900460ff1615610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f90612a8a565b60405180910390fd5b6000341180610fb75750600047115b610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612af6565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106f90612b62565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111099190612b97565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b69190612b97565b6040518363ffffffff1660e01b81526004016111d3929190612bc4565b6020604051808303816000875af11580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190612b97565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061129f600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205447611798565b600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360006101000a81548163ffffffff021916908363ffffffff1602179055506001600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff021916908315150217905550565b60008060009050600860009054906101000a900460ff161561139857600190506113f0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ef57600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146090612c39565b60405180910390fd5b600860009054906101000a900460ff1661150a57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611500906126fa565b60405180910390fd5b5b600860019054906101000a900460ff161580156115705750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561157e5761157d611872565b5b600061158b858585611a01565b90506000818461159b919061271a565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115ec919061271a565b92505081905550600082111561165b5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461164b91906128c1565b9250508190555061165a611bae565b5b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116aa91906128c1565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161170e91906121f1565b60405180910390a36001925050509392505050565b600080600080620186a09050617530600360009054906101000a900463ffffffff1663ffffffff161161175a57610bb8915061178c565b620186a0600360009054906101000a900463ffffffff1663ffffffff1611611786576103e8915061178b565b600091505b5b81819350935050509091565b6117a182611c13565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161182896959493929190612c9e565b60606040518083038185885af1158015611846573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061186b9190612d14565b5050505050565b6001600860016101000a81548160ff021916908315150217905550600061189830610b30565b905062030d406009600a6118ac9190612621565b64e8d4a510006118bc919061266c565b6118c69190612d96565b81101580156118e15750600860009054906101000a900460ff165b156119e3576103e86009600a6118f79190612621565b64e8d4a51000611907919061266c565b6119119190612d96565b8110611945576103e86009600a6119289190612621565b64e8d4a51000611938919061266c565b6119429190612d96565b90505b61194e81611dfd565b600047905060008111156119e157600080739d16070dace017cd925fd9c69ffdc9cd0d41cc9273ffffffffffffffffffffffffffffffffffffffff168360405161199790612df8565b60006040518083038185875af1925050503d80600081146119d4576040519150601f19603f3d011682016040523d82523d6000602084013e6119d9565b606091505b509150915050505b505b506000600860016101000a81548160ff021916908315150217905550565b600080600860009054906101000a900460ff168015611a6a5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ac05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ba357600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b665750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ba257600080611b76611723565b915091508063ffffffff168263ffffffff1686611b93919061266c565b611b9d9190612d96565b925050505b5b809150509392505050565b620186a1600360009054906101000a900463ffffffff1663ffffffff1611611c11576001600360008282829054906101000a900463ffffffff16611bf29190612e0d565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611dfa577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611df191906121f1565b60405180910390a35b50565b611e0681611c13565b6000600267ffffffffffffffff811115611e2357611e22612e45565b5b604051908082528060200260200182016040528015611e515781602001602082028036833780820191505090505b5090503081600081518110611e6957611e68612892565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f349190612b97565b81600181518110611f4857611f47612892565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fe6959493929190612f32565b600060405180830381600087803b15801561200057600080fd5b505af1158015612014573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561205657808201518184015260208101905061203b565b60008484015250505050565b6000601f19601f8301169050919050565b600061207e8261201c565b6120888185612027565b9350612098818560208601612038565b6120a181612062565b840191505092915050565b600060208201905081810360008301526120c68184612073565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612103826120d8565b9050919050565b612113816120f8565b811461211e57600080fd5b50565b6000813590506121308161210a565b92915050565b6000819050919050565b61214981612136565b811461215457600080fd5b50565b60008135905061216681612140565b92915050565b60008060408385031215612183576121826120ce565b5b600061219185828601612121565b92505060206121a285828601612157565b9150509250929050565b60008115159050919050565b6121c1816121ac565b82525050565b60006020820190506121dc60008301846121b8565b92915050565b6121eb81612136565b82525050565b600060208201905061220660008301846121e2565b92915050565b600080600060608486031215612225576122246120ce565b5b600061223386828701612121565b935050602061224486828701612121565b925050604061225586828701612157565b9150509250925092565b600060ff82169050919050565b6122758161225f565b82525050565b6000602082019050612290600083018461226c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126122bb576122ba612296565b5b8235905067ffffffffffffffff8111156122d8576122d761229b565b5b6020830191508360208202830111156122f4576122f36122a0565b5b9250929050565b60008083601f84011261231157612310612296565b5b8235905067ffffffffffffffff81111561232e5761232d61229b565b5b60208301915083602082028301111561234a576123496122a0565b5b9250929050565b6000806000806040858703121561236b5761236a6120ce565b5b600085013567ffffffffffffffff811115612389576123886120d3565b5b612395878288016122a5565b9450945050602085013567ffffffffffffffff8111156123b8576123b76120d3565b5b6123c4878288016122fb565b925092505092959194509250565b6000602082840312156123e8576123e76120ce565b5b60006123f684828501612121565b91505092915050565b612408816120f8565b82525050565b600060208201905061242360008301846123ff565b92915050565b600063ffffffff82169050919050565b61244281612429565b82525050565b600060608201905061245d6000830186612439565b61246a6020830185612439565b6124776040830184612439565b949350505050565b60008060408385031215612496576124956120ce565b5b60006124a485828601612121565b92505060206124b585828601612121565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561254557808604811115612521576125206124bf565b5b60018516156125305780820291505b808102905061253e856124ee565b9450612505565b94509492505050565b60008261255e576001905061261a565b8161256c576000905061261a565b8160018114612582576002811461258c576125bb565b600191505061261a565b60ff84111561259e5761259d6124bf565b5b8360020a9150848211156125b5576125b46124bf565b5b5061261a565b5060208310610133831016604e8410600b84101617156125f05782820a9050838111156125eb576125ea6124bf565b5b61261a565b6125fd84848460016124fb565b92509050818404811115612614576126136124bf565b5b81810290505b9392505050565b600061262c82612136565b91506126378361225f565b92506126647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461254e565b905092915050565b600061267782612136565b915061268283612136565b925082820261269081612136565b915082820484148315176126a7576126a66124bf565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006126e4601083612027565b91506126ef826126ae565b602082019050919050565b60006020820190508181036000830152612713816126d7565b9050919050565b600061272582612136565b915061273083612136565b9250828203905081811115612748576127476124bf565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000612784601883612027565b915061278f8261274e565b602082019050919050565b600060208201905081810360008301526127b381612777565b9050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b60006127f0601583612027565b91506127fb826127ba565b602082019050919050565b6000602082019050818103600083015261281f816127e3565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b600061285c601483612027565b915061286782612826565b602082019050919050565b6000602082019050818103600083015261288b8161284f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006128cc82612136565b91506128d783612136565b92508282019050808211156128ef576128ee6124bf565b5b92915050565b600061290082612136565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612932576129316124bf565b5b600182019050919050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000612973601583612027565b915061297e8261293d565b602082019050919050565b600060208201905081810360008301526129a281612966565b9050919050565b60006040820190506129be60008301856121e2565b6129cb60208301846121e2565b9392505050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000612a08600983612027565b9150612a13826129d2565b602082019050919050565b60006020820190508181036000830152612a37816129fb565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000612a74600f83612027565b9150612a7f82612a3e565b602082019050919050565b60006020820190508181036000830152612aa381612a67565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000612ae0601d83612027565b9150612aeb82612aaa565b602082019050919050565b60006020820190508181036000830152612b0f81612ad3565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000612b4c601583612027565b9150612b5782612b16565b602082019050919050565b60006020820190508181036000830152612b7b81612b3f565b9050919050565b600081519050612b918161210a565b92915050565b600060208284031215612bad57612bac6120ce565b5b6000612bbb84828501612b82565b91505092915050565b6000604082019050612bd960008301856123ff565b612be660208301846123ff565b9392505050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000612c23601d83612027565b9150612c2e82612bed565b602082019050919050565b60006020820190508181036000830152612c5281612c16565b9050919050565b6000819050919050565b6000819050919050565b6000612c88612c83612c7e84612c59565b612c63565b612136565b9050919050565b612c9881612c6d565b82525050565b600060c082019050612cb360008301896123ff565b612cc060208301886121e2565b612ccd6040830187612c8f565b612cda6060830186612c8f565b612ce760808301856123ff565b612cf460a08301846121e2565b979650505050505050565b600081519050612d0e81612140565b92915050565b600080600060608486031215612d2d57612d2c6120ce565b5b6000612d3b86828701612cff565b9350506020612d4c86828701612cff565b9250506040612d5d86828701612cff565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612da182612136565b9150612dac83612136565b925082612dbc57612dbb612d67565b5b828204905092915050565b600081905092915050565b50565b6000612de2600083612dc7565b9150612ded82612dd2565b600082019050919050565b6000612e0382612dd5565b9150819050919050565b6000612e1882612429565b9150612e2383612429565b9250828201905063ffffffff811115612e3f57612e3e6124bf565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ea9816120f8565b82525050565b6000612ebb8383612ea0565b60208301905092915050565b6000602082019050919050565b6000612edf82612e74565b612ee98185612e7f565b9350612ef483612e90565b8060005b83811015612f25578151612f0c8882612eaf565b9750612f1783612ec7565b925050600181019050612ef8565b5085935050505092915050565b600060a082019050612f4760008301886121e2565b612f546020830187612c8f565b8181036040830152612f668186612ed4565b9050612f7560608301856123ff565b612f8260808301846121e2565b969550505050505056fea2646970667358221220cce493aa234a96595042a3cf091d575b2cf1558ed34497120bff60a0ae907f5964736f6c63430008130033

Deployed Bytecode Sourcemap

1456:8931:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3362:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3700:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3092:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4157:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3186:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9435:949;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3448:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1312:137;;;;;;;;;;;;;:::i;:::-;;8343:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1241:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3272:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7022:238;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3924:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3559:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4894:632;;;:::i;:::-;;3362:80;3410:13;3434:5;;;;;;;;;;;;;;;;;3427:12;;3362:80;:::o;3700:216::-;3775:4;3827:6;3792:11;:23;3804:10;3792:23;;;;;;;;;;;;;;;:32;3816:7;3792:32;;;;;;;;;;;;;;;:41;;;;3870:7;3849:37;;3858:10;3849:37;;;3879:6;3849:37;;;;;;:::i;:::-;;;;;;;;3904:4;3897:11;;3700:216;;;;:::o;3092:88::-;3147:7;1651:1;1720:2;:13;;;;:::i;:::-;1699:17;:35;;;;:::i;:::-;3158:19;;3092:88;:::o;4157:404::-;4257:4;4282:25;4300:6;4282:17;:25::i;:::-;4274:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;4377:17;4342:11;:19;4354:6;4342:19;;;;;;;;;;;;;;;:31;4362:10;4342:31;;;;;;;;;;;;;;;;:52;4339:157;;4478:6;4444:11;:19;4456:6;4444:19;;;;;;;;;;;;;;;:31;4464:10;4444:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;4410:11;:19;4422:6;4410:19;;;;;;;;;;;;;;;:31;4430:10;4410:31;;;;;;;;;;;;;;;:74;;;;4339:157;4513:40;4527:6;4535:9;4546:6;4513:13;:40::i;:::-;4506:47;;4157:404;;;;;:::o;3186:80::-;3238:5;1651:1;3247:16;;3186:80;:::o;9435:949::-;1194:6;;;;;;;;;;1180:20;;:10;:20;;;1172:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9573:3:::1;9553:9;;:16;;:23;;9545:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;9640:12;;:19;;9620:9;;:16;;:39;9612:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9696:20;9735:6:::0;9731:116:::1;9749:9;;:16;;9745:1;:20;9731:116;;;1651:1;9821:2;:13;;;;:::i;:::-;9803:12;;9816:1;9803:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;9786:49;;;;;:::i;:::-;;;9767:3;;;;;:::i;:::-;;;;9731:116;;;;9900:12;9875:9;:21;9885:10;9875:21;;;;;;;;;;;;;;;;:37;;9867:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9974:12;9949:9;:21;9959:10;9949:21;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;10091:6;10087:224;10105:9;;:16;;10101:1;:20;10087:224;;;1651:1;10188:2;:13;;;;:::i;:::-;10170:12;;10183:1;10170:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;10142:9;:23;10152:9;;10162:1;10152:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10142:23;;;;;;;;;;;;;;;;:60;;;;;;;:::i;:::-;;;;;;;;10243:9;;10253:1;10243:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10222:70;;10231:10;10222:70;;;1651:1;10276:2;:13;;;;:::i;:::-;10258:12;;10271:1;10258:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;10222:70;;;;;;:::i;:::-;;;;;;;;10123:3;;;;;:::i;:::-;;;;10087:224;;;;10328:48;10345:9;;:16;;10363:12;10328:48;;;;;;;:::i;:::-;;;;;;;;9534:850;9435:949:::0;;;;:::o;3448:105::-;3514:7;3532:9;:18;3542:7;3532:18;;;;;;;;;;;;;;;;3525:25;;3448:105;;;:::o;1312:137::-;1194:6;;;;;;;;;;1180:20;;:10;:20;;;1172:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1389:1:::1;1372:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1408:32;1437:1;1408:32;;;;;;:::i;:::-;;;;;;;;1312:137::o:0;8343:101::-;8393:7;1967:42;8413:23;;8343:101;:::o;1241:65::-;1279:7;1297:6;;;;;;;;;;;1290:13;;1241:65;:::o;3272:84::-;3322:13;3346:7;;;;;;;;;;;;;;;;;3339:14;;3272:84;:::o;7022:238::-;7060:19;7081:21;7104:19;7137:16;7155:18;7177:20;:18;:20::i;:::-;7136:61;;;;7216:9;7227:11;7240;;;;;;;;;;;7208:44;;;;;;;;7022:238;;;:::o;3924:225::-;4004:4;4029:29;4047:10;4029:17;:29::i;:::-;4021:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4097:44;4111:10;4123:9;4134:6;4097:13;:44::i;:::-;4090:51;;3924:225;;;;:::o;3559:133::-;3643:7;3661:11;:19;3673:6;3661:19;;;;;;;;;;;;;;;:28;3681:7;3661:28;;;;;;;;;;;;;;;;3654:35;;3559:133;;;;:::o;4894:632::-;1194:6;;;;;;;;;;1180:20;;:10;:20;;;1172:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2597:4:::1;2584:10;;:17;;;;;;;;;;;;;;;;;;4998:1:::2;4976:24;;:10;;;;;;;;;;;:24;;;4968:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5034:12;;;;;;;;;;;5033:13;5025:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;5097:1;5085:9;:13;:40;;;;5124:1;5102:21;:23;5085:40;5077:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;5203:1;5178:9;:24;5196:4;5178:24;;;;;;;;;;;;;;;;:26;5170:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5272:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5254:58;;;5321:4;5328:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5254:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5241:10;;:113;;;;;;;;;;;;;;;;;;5365:62;5379:9;:24;5397:4;5379:24;;;;;;;;;;;;;;;;5405:21;5365:13;:62::i;:::-;5458:4;5438:5;:17;5444:10;;;;;;;;;;;5438:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;5487:1;5473:11;;:15;;;;;;;;;;;;;;;;;;5514:4;5499:12;;:19;;;;;;;;;;;;;;;;;;2639:5:::1;2626:10;;:18;;;;;;;;;;;;;;;;;;4894:632::o:0;6563:258::-;6628:4;6644:16;6663:5;6644:24;;6684:12;;;;;;;;;;;6679:103;;;6715:4;6701:18;;6679:103;;;6742:7;:15;6750:6;6742:15;;;;;;;;;;;;;;;;;;;;;;;;;6738:44;;;6775:4;6761:18;;6738:44;6679:103;6802:11;6795:18;;;6563:258;;;:::o;5796:759::-;5888:4;5931:1;5913:20;;:6;:20;;;5905:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5985:12;;;;;;;;;;;5980:68;;6009:7;:15;6017:6;6009:15;;;;;;;;;;;;;;;;;;;;;;;;;6001:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;5980:68;6064:10;;;;;;;;;;;6063:11;:31;;;;;6078:5;:16;6084:9;6078:16;;;;;;;;;;;;;;;;;;;;;;;;;6063:31;6058:64;;;6099:20;:18;:20::i;:::-;6058:64;6134:18;6155:40;6169:6;6177:9;6188:6;6155:13;:40::i;:::-;6134:61;;6206:23;6241:10;6232:6;:19;;;;:::i;:::-;6206:45;;6283:6;6262:9;:17;6272:6;6262:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;6318:1;6305:10;:14;6300:125;;;6366:10;6338:9;:24;6356:4;6338:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;6392:21;:19;:21::i;:::-;6300:125;6459:15;6435:9;:20;6445:9;6435:20;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;6507:9;6490:35;;6499:6;6490:35;;;6518:6;6490:35;;;;;;:::i;:::-;;;;;;;;6543:4;6536:11;;;;5796:759;;;;;:::o;7268:578::-;7320:16;7338:18;7369:19;7399:21;7423:7;7399:31;;7463:6;7448:11;;;;;;;;;;;:21;;;7443:346;;7502:4;7487:19;;7443:346;;;7587:7;7572:11;;;;;;;;;;;:22;;;7567:222;;7627:4;7612:19;;7567:222;;;7732:1;7717:16;;7567:222;7443:346;7809:12;7823:14;7801:37;;;;;;7268:578;;:::o;5534:254::-;5622:28;5637:12;5622:14;:28::i;:::-;5661:18;;;;;;;;;;;:34;;;5703:13;5728:4;5735:12;5749:1;5752;5755:6;;;;;;;;;;5763:15;5661:119;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5534:254;;:::o;8452:601::-;2597:4;2584:10;;:17;;;;;;;;;;;;;;;;;;8513:27:::1;8543:24;8561:4;8543:9;:24::i;:::-;8513:54;;2071:6;1651:1;1720:2;:13;;;;:::i;:::-;1699:17;:35;;;;:::i;:::-;2056:21;;;;:::i;:::-;8585:19;:34;;:50;;;;;8623:12;;;;;;;;;;;8585:50;8580:466;;;2138:4;1651:1;1720:2;:13;;;;:::i;:::-;1699:17;:35;;;;:::i;:::-;2123:19;;;;:::i;:::-;8658;:34;8653:80;;2138:4;1651:1;1720:2;:13;;;;:::i;:::-;1699:17;:35;;;;:::i;:::-;2123:19;;;;:::i;:::-;8697:33;;8653:80;8761:41;8782:19;8761:20;:41::i;:::-;8819:27;8849:21;8819:51;;8910:1;8888:19;:23;8885:150;;;8934:9;8945:17:::0;1967:42:::1;8966:21;;8995:19;8966:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8933:86;;;;8913:122;;8885:150;8638:408;8580:466;8502:551;2639:5:::0;2626:10;;:18;;;;;;;;;;;;;;;;;;8452:601::o;7854:481::-;7951:7;7971:17;8014:12;;;;;;;;;;;:32;;;;;8031:7;:15;8039:6;8031:15;;;;;;;;;;;;;;;;;;;;;;;;;8030:16;8014:32;:55;;;;;8051:7;:18;8059:9;8051:18;;;;;;;;;;;;;;;;;;;;;;;;;8050:19;8014:55;8009:290;;;8093:5;:13;8099:6;8093:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;8110:5;:16;8116:9;8110:16;;;;;;;;;;;;;;;;;;;;;;;;;8093:33;8088:200;;;8149:16;8167:18;8189:20;:18;:20::i;:::-;8148:61;;;;8261:11;8240:32;;8249:9;8240:18;;:6;:18;;;;:::i;:::-;:32;;;;:::i;:::-;8228:44;;8129:159;;8088:200;8009:290;8318:9;8311:16;;;7854:481;;;;;:::o;6829:185::-;6899:7;6884:11;;;;;;;;;;;:22;;;6879:127;;6993:1;6978:11;;:16;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6879:127;6829:185::o;4569:317::-;4689:12;4640:11;:26;4660:4;4640:26;;;;;;;;;;;;;;;:46;2255:42;4640:46;;;;;;;;;;;;;;;;:61;4635:244;;;4768:17;4719:11;:26;4739:4;4719:26;;;;;;;;;;;;;;;:46;2255:42;4719:46;;;;;;;;;;;;;;;:66;;;;2255:42;4805:62;;4822:4;4805:62;;;4849:17;4805:62;;;;;;:::i;:::-;;;;;;;;4635:244;4569:317;:::o;9061:366::-;9131:27;9146:11;9131:14;:27::i;:::-;9169:21;9207:1;9193:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9169:40;;9238:4;9220;9225:1;9220:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9264:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9254:4;9259:1;9254:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;9300:18;;;;;;;;;;;:69;;;9370:11;9382:1;9384:4;9397;9403:15;9300:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9120:307;9061:366;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:117;5085:1;5082;5075:12;5099:117;5208:1;5205;5198:12;5239:568;5312:8;5322:6;5372:3;5365:4;5357:6;5353:17;5349:27;5339:122;;5380:79;;:::i;:::-;5339:122;5493:6;5480:20;5470:30;;5523:18;5515:6;5512:30;5509:117;;;5545:79;;:::i;:::-;5509:117;5659:4;5651:6;5647:17;5635:29;;5713:3;5705:4;5697:6;5693:17;5683:8;5679:32;5676:41;5673:128;;;5720:79;;:::i;:::-;5673:128;5239:568;;;;;:::o;5830:::-;5903:8;5913:6;5963:3;5956:4;5948:6;5944:17;5940:27;5930:122;;5971:79;;:::i;:::-;5930:122;6084:6;6071:20;6061:30;;6114:18;6106:6;6103:30;6100:117;;;6136:79;;:::i;:::-;6100:117;6250:4;6242:6;6238:17;6226:29;;6304:3;6296:4;6288:6;6284:17;6274:8;6270:32;6267:41;6264:128;;;6311:79;;:::i;:::-;6264:128;5830:568;;;;;:::o;6404:934::-;6526:6;6534;6542;6550;6599:2;6587:9;6578:7;6574:23;6570:32;6567:119;;;6605:79;;:::i;:::-;6567:119;6753:1;6742:9;6738:17;6725:31;6783:18;6775:6;6772:30;6769:117;;;6805:79;;:::i;:::-;6769:117;6918:80;6990:7;6981:6;6970:9;6966:22;6918:80;:::i;:::-;6900:98;;;;6696:312;7075:2;7064:9;7060:18;7047:32;7106:18;7098:6;7095:30;7092:117;;;7128:79;;:::i;:::-;7092:117;7241:80;7313:7;7304:6;7293:9;7289:22;7241:80;:::i;:::-;7223:98;;;;7018:313;6404:934;;;;;;;:::o;7344:329::-;7403:6;7452:2;7440:9;7431:7;7427:23;7423:32;7420:119;;;7458:79;;:::i;:::-;7420:119;7578:1;7603:53;7648:7;7639:6;7628:9;7624:22;7603:53;:::i;:::-;7593:63;;7549:117;7344:329;;;;:::o;7679:118::-;7766:24;7784:5;7766:24;:::i;:::-;7761:3;7754:37;7679:118;;:::o;7803:222::-;7896:4;7934:2;7923:9;7919:18;7911:26;;7947:71;8015:1;8004:9;8000:17;7991:6;7947:71;:::i;:::-;7803:222;;;;:::o;8031:93::-;8067:7;8107:10;8100:5;8096:22;8085:33;;8031:93;;;:::o;8130:115::-;8215:23;8232:5;8215:23;:::i;:::-;8210:3;8203:36;8130:115;;:::o;8251:430::-;8394:4;8432:2;8421:9;8417:18;8409:26;;8445:69;8511:1;8500:9;8496:17;8487:6;8445:69;:::i;:::-;8524:70;8590:2;8579:9;8575:18;8566:6;8524:70;:::i;:::-;8604;8670:2;8659:9;8655:18;8646:6;8604:70;:::i;:::-;8251:430;;;;;;:::o;8687:474::-;8755:6;8763;8812:2;8800:9;8791:7;8787:23;8783:32;8780:119;;;8818:79;;:::i;:::-;8780:119;8938:1;8963:53;9008:7;8999:6;8988:9;8984:22;8963:53;:::i;:::-;8953:63;;8909:117;9065:2;9091:53;9136:7;9127:6;9116:9;9112:22;9091:53;:::i;:::-;9081:63;;9036:118;8687:474;;;;;:::o;9167:180::-;9215:77;9212:1;9205:88;9312:4;9309:1;9302:15;9336:4;9333:1;9326:15;9353:102;9395:8;9442:5;9439:1;9435:13;9414:34;;9353:102;;;:::o;9461:848::-;9522:5;9529:4;9553:6;9544:15;;9577:5;9568:14;;9591:712;9612:1;9602:8;9599:15;9591:712;;;9707:4;9702:3;9698:14;9692:4;9689:24;9686:50;;;9716:18;;:::i;:::-;9686:50;9766:1;9756:8;9752:16;9749:451;;;10181:4;10174:5;10170:16;10161:25;;9749:451;10231:4;10225;10221:15;10213:23;;10261:32;10284:8;10261:32;:::i;:::-;10249:44;;9591:712;;;9461:848;;;;;;;:::o;10315:1073::-;10369:5;10560:8;10550:40;;10581:1;10572:10;;10583:5;;10550:40;10609:4;10599:36;;10626:1;10617:10;;10628:5;;10599:36;10695:4;10743:1;10738:27;;;;10779:1;10774:191;;;;10688:277;;10738:27;10756:1;10747:10;;10758:5;;;10774:191;10819:3;10809:8;10806:17;10803:43;;;10826:18;;:::i;:::-;10803:43;10875:8;10872:1;10868:16;10859:25;;10910:3;10903:5;10900:14;10897:40;;;10917:18;;:::i;:::-;10897:40;10950:5;;;10688:277;;11074:2;11064:8;11061:16;11055:3;11049:4;11046:13;11042:36;11024:2;11014:8;11011:16;11006:2;11000:4;10997:12;10993:35;10977:111;10974:246;;;11130:8;11124:4;11120:19;11111:28;;11165:3;11158:5;11155:14;11152:40;;;11172:18;;:::i;:::-;11152:40;11205:5;;10974:246;11245:42;11283:3;11273:8;11267:4;11264:1;11245:42;:::i;:::-;11230:57;;;;11319:4;11314:3;11310:14;11303:5;11300:25;11297:51;;;11328:18;;:::i;:::-;11297:51;11377:4;11370:5;11366:16;11357:25;;10315:1073;;;;;;:::o;11394:281::-;11452:5;11476:23;11494:4;11476:23;:::i;:::-;11468:31;;11520:25;11536:8;11520:25;:::i;:::-;11508:37;;11564:104;11601:66;11591:8;11585:4;11564:104;:::i;:::-;11555:113;;11394:281;;;;:::o;11681:410::-;11721:7;11744:20;11762:1;11744:20;:::i;:::-;11739:25;;11778:20;11796:1;11778:20;:::i;:::-;11773:25;;11833:1;11830;11826:9;11855:30;11873:11;11855:30;:::i;:::-;11844:41;;12034:1;12025:7;12021:15;12018:1;12015:22;11995:1;11988:9;11968:83;11945:139;;12064:18;;:::i;:::-;11945:139;11729:362;11681:410;;;;:::o;12097:166::-;12237:18;12233:1;12225:6;12221:14;12214:42;12097:166;:::o;12269:366::-;12411:3;12432:67;12496:2;12491:3;12432:67;:::i;:::-;12425:74;;12508:93;12597:3;12508:93;:::i;:::-;12626:2;12621:3;12617:12;12610:19;;12269:366;;;:::o;12641:419::-;12807:4;12845:2;12834:9;12830:18;12822:26;;12894:9;12888:4;12884:20;12880:1;12869:9;12865:17;12858:47;12922:131;13048:4;12922:131;:::i;:::-;12914:139;;12641:419;;;:::o;13066:194::-;13106:4;13126:20;13144:1;13126:20;:::i;:::-;13121:25;;13160:20;13178:1;13160:20;:::i;:::-;13155:25;;13204:1;13201;13197:9;13189:17;;13228:1;13222:4;13219:11;13216:37;;;13233:18;;:::i;:::-;13216:37;13066:194;;;;:::o;13266:174::-;13406:26;13402:1;13394:6;13390:14;13383:50;13266:174;:::o;13446:366::-;13588:3;13609:67;13673:2;13668:3;13609:67;:::i;:::-;13602:74;;13685:93;13774:3;13685:93;:::i;:::-;13803:2;13798:3;13794:12;13787:19;;13446:366;;;:::o;13818:419::-;13984:4;14022:2;14011:9;14007:18;13999:26;;14071:9;14065:4;14061:20;14057:1;14046:9;14042:17;14035:47;14099:131;14225:4;14099:131;:::i;:::-;14091:139;;13818:419;;;:::o;14243:171::-;14383:23;14379:1;14371:6;14367:14;14360:47;14243:171;:::o;14420:366::-;14562:3;14583:67;14647:2;14642:3;14583:67;:::i;:::-;14576:74;;14659:93;14748:3;14659:93;:::i;:::-;14777:2;14772:3;14768:12;14761:19;;14420:366;;;:::o;14792:419::-;14958:4;14996:2;14985:9;14981:18;14973:26;;15045:9;15039:4;15035:20;15031:1;15020:9;15016:17;15009:47;15073:131;15199:4;15073:131;:::i;:::-;15065:139;;14792:419;;;:::o;15217:170::-;15357:22;15353:1;15345:6;15341:14;15334:46;15217:170;:::o;15393:366::-;15535:3;15556:67;15620:2;15615:3;15556:67;:::i;:::-;15549:74;;15632:93;15721:3;15632:93;:::i;:::-;15750:2;15745:3;15741:12;15734:19;;15393:366;;;:::o;15765:419::-;15931:4;15969:2;15958:9;15954:18;15946:26;;16018:9;16012:4;16008:20;16004:1;15993:9;15989:17;15982:47;16046:131;16172:4;16046:131;:::i;:::-;16038:139;;15765:419;;;:::o;16190:180::-;16238:77;16235:1;16228:88;16335:4;16332:1;16325:15;16359:4;16356:1;16349:15;16376:191;16416:3;16435:20;16453:1;16435:20;:::i;:::-;16430:25;;16469:20;16487:1;16469:20;:::i;:::-;16464:25;;16512:1;16509;16505:9;16498:16;;16533:3;16530:1;16527:10;16524:36;;;16540:18;;:::i;:::-;16524:36;16376:191;;;;:::o;16573:233::-;16612:3;16635:24;16653:5;16635:24;:::i;:::-;16626:33;;16681:66;16674:5;16671:77;16668:103;;16751:18;;:::i;:::-;16668:103;16798:1;16791:5;16787:13;16780:20;;16573:233;;;:::o;16812:171::-;16952:23;16948:1;16940:6;16936:14;16929:47;16812:171;:::o;16989:366::-;17131:3;17152:67;17216:2;17211:3;17152:67;:::i;:::-;17145:74;;17228:93;17317:3;17228:93;:::i;:::-;17346:2;17341:3;17337:12;17330:19;;16989:366;;;:::o;17361:419::-;17527:4;17565:2;17554:9;17550:18;17542:26;;17614:9;17608:4;17604:20;17600:1;17589:9;17585:17;17578:47;17642:131;17768:4;17642:131;:::i;:::-;17634:139;;17361:419;;;:::o;17786:332::-;17907:4;17945:2;17934:9;17930:18;17922:26;;17958:71;18026:1;18015:9;18011:17;18002:6;17958:71;:::i;:::-;18039:72;18107:2;18096:9;18092:18;18083:6;18039:72;:::i;:::-;17786:332;;;;;:::o;18124:159::-;18264:11;18260:1;18252:6;18248:14;18241:35;18124:159;:::o;18289:365::-;18431:3;18452:66;18516:1;18511:3;18452:66;:::i;:::-;18445:73;;18527:93;18616:3;18527:93;:::i;:::-;18645:2;18640:3;18636:12;18629:19;;18289:365;;;:::o;18660:419::-;18826:4;18864:2;18853:9;18849:18;18841:26;;18913:9;18907:4;18903:20;18899:1;18888:9;18884:17;18877:47;18941:131;19067:4;18941:131;:::i;:::-;18933:139;;18660:419;;;:::o;19085:165::-;19225:17;19221:1;19213:6;19209:14;19202:41;19085:165;:::o;19256:366::-;19398:3;19419:67;19483:2;19478:3;19419:67;:::i;:::-;19412:74;;19495:93;19584:3;19495:93;:::i;:::-;19613:2;19608:3;19604:12;19597:19;;19256:366;;;:::o;19628:419::-;19794:4;19832:2;19821:9;19817:18;19809:26;;19881:9;19875:4;19871:20;19867:1;19856:9;19852:17;19845:47;19909:131;20035:4;19909:131;:::i;:::-;19901:139;;19628:419;;;:::o;20053:179::-;20193:31;20189:1;20181:6;20177:14;20170:55;20053:179;:::o;20238:366::-;20380:3;20401:67;20465:2;20460:3;20401:67;:::i;:::-;20394:74;;20477:93;20566:3;20477:93;:::i;:::-;20595:2;20590:3;20586:12;20579:19;;20238:366;;;:::o;20610:419::-;20776:4;20814:2;20803:9;20799:18;20791:26;;20863:9;20857:4;20853:20;20849:1;20838:9;20834:17;20827:47;20891:131;21017:4;20891:131;:::i;:::-;20883:139;;20610:419;;;:::o;21035:171::-;21175:23;21171:1;21163:6;21159:14;21152:47;21035:171;:::o;21212:366::-;21354:3;21375:67;21439:2;21434:3;21375:67;:::i;:::-;21368:74;;21451:93;21540:3;21451:93;:::i;:::-;21569:2;21564:3;21560:12;21553:19;;21212:366;;;:::o;21584:419::-;21750:4;21788:2;21777:9;21773:18;21765:26;;21837:9;21831:4;21827:20;21823:1;21812:9;21808:17;21801:47;21865:131;21991:4;21865:131;:::i;:::-;21857:139;;21584:419;;;:::o;22009:143::-;22066:5;22097:6;22091:13;22082:22;;22113:33;22140:5;22113:33;:::i;:::-;22009:143;;;;:::o;22158:351::-;22228:6;22277:2;22265:9;22256:7;22252:23;22248:32;22245:119;;;22283:79;;:::i;:::-;22245:119;22403:1;22428:64;22484:7;22475:6;22464:9;22460:22;22428:64;:::i;:::-;22418:74;;22374:128;22158:351;;;;:::o;22515:332::-;22636:4;22674:2;22663:9;22659:18;22651:26;;22687:71;22755:1;22744:9;22740:17;22731:6;22687:71;:::i;:::-;22768:72;22836:2;22825:9;22821:18;22812:6;22768:72;:::i;:::-;22515:332;;;;;:::o;22853:179::-;22993:31;22989:1;22981:6;22977:14;22970:55;22853:179;:::o;23038:366::-;23180:3;23201:67;23265:2;23260:3;23201:67;:::i;:::-;23194:74;;23277:93;23366:3;23277:93;:::i;:::-;23395:2;23390:3;23386:12;23379:19;;23038:366;;;:::o;23410:419::-;23576:4;23614:2;23603:9;23599:18;23591:26;;23663:9;23657:4;23653:20;23649:1;23638:9;23634:17;23627:47;23691:131;23817:4;23691:131;:::i;:::-;23683:139;;23410:419;;;:::o;23835:85::-;23880:7;23909:5;23898:16;;23835:85;;;:::o;23926:60::-;23954:3;23975:5;23968:12;;23926:60;;;:::o;23992:158::-;24050:9;24083:61;24101:42;24110:32;24136:5;24110:32;:::i;:::-;24101:42;:::i;:::-;24083:61;:::i;:::-;24070:74;;23992:158;;;:::o;24156:147::-;24251:45;24290:5;24251:45;:::i;:::-;24246:3;24239:58;24156:147;;:::o;24309:807::-;24558:4;24596:3;24585:9;24581:19;24573:27;;24610:71;24678:1;24667:9;24663:17;24654:6;24610:71;:::i;:::-;24691:72;24759:2;24748:9;24744:18;24735:6;24691:72;:::i;:::-;24773:80;24849:2;24838:9;24834:18;24825:6;24773:80;:::i;:::-;24863;24939:2;24928:9;24924:18;24915:6;24863:80;:::i;:::-;24953:73;25021:3;25010:9;25006:19;24997:6;24953:73;:::i;:::-;25036;25104:3;25093:9;25089:19;25080:6;25036:73;:::i;:::-;24309:807;;;;;;;;;:::o;25122:143::-;25179:5;25210:6;25204:13;25195:22;;25226:33;25253:5;25226:33;:::i;:::-;25122:143;;;;:::o;25271:663::-;25359:6;25367;25375;25424:2;25412:9;25403:7;25399:23;25395:32;25392:119;;;25430:79;;:::i;:::-;25392:119;25550:1;25575:64;25631:7;25622:6;25611:9;25607:22;25575:64;:::i;:::-;25565:74;;25521:128;25688:2;25714:64;25770:7;25761:6;25750:9;25746:22;25714:64;:::i;:::-;25704:74;;25659:129;25827:2;25853:64;25909:7;25900:6;25889:9;25885:22;25853:64;:::i;:::-;25843:74;;25798:129;25271:663;;;;;:::o;25940:180::-;25988:77;25985:1;25978:88;26085:4;26082:1;26075:15;26109:4;26106:1;26099:15;26126:185;26166:1;26183:20;26201:1;26183:20;:::i;:::-;26178:25;;26217:20;26235:1;26217:20;:::i;:::-;26212:25;;26256:1;26246:35;;26261:18;;:::i;:::-;26246:35;26303:1;26300;26296:9;26291:14;;26126:185;;;;:::o;26317:147::-;26418:11;26455:3;26440:18;;26317:147;;;;:::o;26470:114::-;;:::o;26590:398::-;26749:3;26770:83;26851:1;26846:3;26770:83;:::i;:::-;26763:90;;26862:93;26951:3;26862:93;:::i;:::-;26980:1;26975:3;26971:11;26964:18;;26590:398;;;:::o;26994:379::-;27178:3;27200:147;27343:3;27200:147;:::i;:::-;27193:154;;27364:3;27357:10;;26994:379;;;:::o;27379:197::-;27418:3;27437:19;27454:1;27437:19;:::i;:::-;27432:24;;27470:19;27487:1;27470:19;:::i;:::-;27465:24;;27512:1;27509;27505:9;27498:16;;27535:10;27530:3;27527:19;27524:45;;;27549:18;;:::i;:::-;27524:45;27379:197;;;;:::o;27582:180::-;27630:77;27627:1;27620:88;27727:4;27724:1;27717:15;27751:4;27748:1;27741:15;27768:114;27835:6;27869:5;27863:12;27853:22;;27768:114;;;:::o;27888:184::-;27987:11;28021:6;28016:3;28009:19;28061:4;28056:3;28052:14;28037:29;;27888:184;;;;:::o;28078:132::-;28145:4;28168:3;28160:11;;28198:4;28193:3;28189:14;28181:22;;28078:132;;;:::o;28216:108::-;28293:24;28311:5;28293:24;:::i;:::-;28288:3;28281:37;28216:108;;:::o;28330:179::-;28399:10;28420:46;28462:3;28454:6;28420:46;:::i;:::-;28498:4;28493:3;28489:14;28475:28;;28330:179;;;;:::o;28515:113::-;28585:4;28617;28612:3;28608:14;28600:22;;28515:113;;;:::o;28664:732::-;28783:3;28812:54;28860:5;28812:54;:::i;:::-;28882:86;28961:6;28956:3;28882:86;:::i;:::-;28875:93;;28992:56;29042:5;28992:56;:::i;:::-;29071:7;29102:1;29087:284;29112:6;29109:1;29106:13;29087:284;;;29188:6;29182:13;29215:63;29274:3;29259:13;29215:63;:::i;:::-;29208:70;;29301:60;29354:6;29301:60;:::i;:::-;29291:70;;29147:224;29134:1;29131;29127:9;29122:14;;29087:284;;;29091:14;29387:3;29380:10;;28788:608;;;28664:732;;;;:::o;29402:831::-;29665:4;29703:3;29692:9;29688:19;29680:27;;29717:71;29785:1;29774:9;29770:17;29761:6;29717:71;:::i;:::-;29798:80;29874:2;29863:9;29859:18;29850:6;29798:80;:::i;:::-;29925:9;29919:4;29915:20;29910:2;29899:9;29895:18;29888:48;29953:108;30056:4;30047:6;29953:108;:::i;:::-;29945:116;;30071:72;30139:2;30128:9;30124:18;30115:6;30071:72;:::i;:::-;30153:73;30221:3;30210:9;30206:19;30197:6;30153:73;:::i;:::-;29402:831;;;;;;;;:::o

Swarm Source

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