ETH Price: $3,308.12 (-3.67%)
Gas: 15 Gwei

Token

Collective Intelligence (ONE)
 

Overview

Max Total Supply

9,999,999 ONE

Holders

100

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
15.560000000002473029 ONE

Value
$0.00
0xf7d499d603471ed8f5ee7628466210de15aff1ca
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:
ONE

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

Conceptually speaking, what really causes growth, appreciation and gain is the work of the collective and not of the individual. We believe in true decentralization.
We can call it hive mind, or collective intelligence. The concept is easy, togheter we are strong.
So this is a call for arms, Unite as a community, fight the market, and we all shall prevail.
Thus we are ONE.

*/
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");




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




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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // 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;
    }
}

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




abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;




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




    
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }




    
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }




    
    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 ONE is IBEP20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "Collective Intelligence";
    string constant _symbol = "ONE";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 9999999 * (10 ** _decimals);
    uint256 public _maxTxAmount = (_totalSupply * 2) / 100; 
    uint256 public _maxWalletSize = (_totalSupply * 2) / 100; 

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

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

    uint256 liquidityFee = 0;
    uint256 BBFee = 1;
    uint256 totalFee = 1;
    uint256 feeDenominator = 100;
    
    address private marketingReceiver = 0x7daf8CDe768e997E6337734F55FDDfF33823351f;

    IDEXRouter public router;
    address public pair;
    uint256 public launchedAt;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000000 * 1; // 0.3%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

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




        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;




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




    receive() external payable { }




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




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




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




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




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




        return _transferFrom(sender, recipient, amount);
    }




    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        checkTxLimit(sender, amount);
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); }




        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }




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




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




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




    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }
    
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }








    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);




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




        return amount.sub(feeAmount);
    }




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




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




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




        uint256 balanceBefore = address(this).balance;




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




        (bool OPSuccess, /* bytes memory data */) = payable(marketingReceiver).call{value: amountETHMarket, gas: 30000}("");
        require(OPSuccess, "receiver rejected ETH transfer");
        addLiquidity(amountToLiquify, amountETHLiquidity);
    }




    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
    if(tokenAmount > 0){
            router.addLiquidityETH{value: ETHAmount}(
                address(this),
                tokenAmount,
                0,
                0,
                address(this),
                block.timestamp
            );
            emit AutoLiquify(ETHAmount, tokenAmount);
        }
    }




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




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




    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }




    function launch() internal {
        launchedAt = block.number;
    }




    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }




   function setMaxWallet(uint256 amount) external onlyOwner() {
        require(amount >= _totalSupply / 1000 );
        _maxWalletSize = amount;
    }    




    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }




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




    function setFees(uint256 _liquidityFee, uint256 _BBFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        BBFee = _BBFee;
        totalFee = _liquidityFee.add(_BBFee);
        feeDenominator = _feeDenominator;
    }




    function setFeeReceiver(address _marketingReceiver) external authorized {
        marketingReceiver = _marketingReceiver;
    }




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



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




    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }




    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","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":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_BBFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","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":"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"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ee91906200084b565b6298967f620000fe91906200089c565b600555606460026005546200011491906200089c565b6200012091906200092c565b600655606460026005546200013691906200089c565b6200014291906200092c565b6007556000600c556001600d556001600e556064600f55737daf8cde768e997e6337734f55fddff33823351f601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460006101000a81548160ff0219169083151502179055506001620f4240600554620001de91906200092c565b620001ea91906200089c565b601555348015620001fa57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000357573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037d9190620009ce565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003db92919062000a11565b6020604051808303816000875af1158015620003fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004219190620009ce565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620006a2919062000a4f565b60405180910390a35062000a6c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200073f57808604811115620007175762000716620006b1565b5b6001851615620007275780820291505b80810290506200073785620006e0565b9450620006f7565b94509492505050565b6000826200075a57600190506200082d565b816200076a57600090506200082d565b81600181146200078357600281146200078e57620007c4565b60019150506200082d565b60ff841115620007a357620007a2620006b1565b5b8360020a915084821115620007bd57620007bc620006b1565b5b506200082d565b5060208310610133831016604e8410600b8410161715620007fe5782820a905083811115620007f857620007f7620006b1565b5b6200082d565b6200080d8484846001620006ed565b92509050818404811115620008275762000826620006b1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008588262000834565b915062000865836200083e565b9250620008947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000748565b905092915050565b6000620008a98262000834565b9150620008b68362000834565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008f257620008f1620006b1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009398262000834565b9150620009468362000834565b925082620009595762000958620008fd565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009968262000969565b9050919050565b620009a88162000989565b8114620009b457600080fd5b50565b600081519050620009c8816200099d565b92915050565b600060208284031215620009e757620009e662000964565b5b6000620009f784828501620009b7565b91505092915050565b62000a0b8162000989565b82525050565b600060408201905062000a28600083018562000a00565b62000a37602083018462000a00565b9392505050565b62000a498162000834565b82525050565b600060208201905062000a66600083018462000a3e565b92915050565b6133088062000a7c6000396000f3fe6080604052600436106101f25760003560e01c8063893d20e81161010d578063d51ed1c8116100a0578063f0b37c041161006f578063f0b37c0414610746578063f2fde38b1461076f578063f84ba65d14610798578063f887ea40146107c1578063fe9fbb80146107ec576101f9565b8063d51ed1c81461067a578063dd62ed3e146106b7578063df20fd49146106f4578063efdcd9741461071d576101f9565b8063a9059cbb116100dc578063a9059cbb146105c0578063b6a5d7de146105fd578063bf56b37114610626578063cec10c1114610651576101f9565b8063893d20e8146105145780638f9a55c01461053f57806395d89b411461056a578063a8aa1b3114610595576101f9565b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146104585780636ddd17131461048157806370a08231146104ac5780637d1db4a5146104e9576101f9565b8063313ce5671461039e578063571ac8b0146103c95780635c85974f146104065780635d0044ca1461042f576101f9565b806318160ddd116101c157806318160ddd146102ce57806323b872dd146102f95780632b112e49146103365780632f54bf6e14610361576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b3146102545780631161ae3914610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610829565b60405161022091906125ad565b60405180910390f35b34801561023557600080fd5b5061023e61082f565b60405161024b9190612661565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612712565b61086c565b604051610288919061276d565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b39190612788565b61095e565b6040516102c5919061276d565b60405180910390f35b3480156102da57600080fd5b506102e3610973565b6040516102f091906125ad565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906127c8565b61097d565b60405161032d919061276d565b60405180910390f35b34801561034257600080fd5b5061034b610b7d565b60405161035891906125ad565b60405180910390f35b34801561036d57600080fd5b506103886004803603810190610383919061281b565b610bff565b604051610395919061276d565b60405180910390f35b3480156103aa57600080fd5b506103b3610c58565b6040516103c09190612864565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb919061281b565b610c61565b6040516103fd919061276d565b60405180910390f35b34801561041257600080fd5b5061042d6004803603810190610428919061287f565b610c94565b005b34801561043b57600080fd5b506104566004803603810190610451919061287f565b610d02565b005b34801561046457600080fd5b5061047f600480360381019061047a91906128d8565b610d70565b005b34801561048d57600080fd5b50610496610e13565b6040516104a3919061276d565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce919061281b565b610e26565b6040516104e091906125ad565b60405180910390f35b3480156104f557600080fd5b506104fe610e6f565b60405161050b91906125ad565b60405180910390f35b34801561052057600080fd5b50610529610e75565b6040516105369190612927565b60405180910390f35b34801561054b57600080fd5b50610554610e9e565b60405161056191906125ad565b60405180910390f35b34801561057657600080fd5b5061057f610ea4565b60405161058c9190612661565b60405180910390f35b3480156105a157600080fd5b506105aa610ee1565b6040516105b79190612927565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190612712565b610f07565b6040516105f4919061276d565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f919061281b565b610f1c565b005b34801561063257600080fd5b5061063b610fbe565b60405161064891906125ad565b60405180910390f35b34801561065d57600080fd5b5061067860048036038101906106739190612942565b610fc4565b005b34801561068657600080fd5b506106a1600480360381019061069c919061287f565b61103f565b6040516106ae91906125ad565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190612995565b6110b1565b6040516106eb91906125ad565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906129d5565b611138565b005b34801561072957600080fd5b50610744600480360381019061073f919061281b565b6111a5565b005b34801561075257600080fd5b5061076d6004803603810190610768919061281b565b611231565b005b34801561077b57600080fd5b5061079660048036038101906107919190612a53565b6112d4565b005b3480156107a457600080fd5b506107bf60048036038101906107ba91906128d8565b6113ed565b005b3480156107cd57600080fd5b506107d6611490565b6040516107e39190612adf565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e919061281b565b6114b6565b604051610820919061276d565b60405180910390f35b60155481565b60606040518060400160405280601781526020017f436f6c6c65637469766520496e74656c6c6967656e6365000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094c91906125ad565b60405180910390a36001905092915050565b60008261096a8361103f565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b6957610ae8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b74848484611570565b90509392505050565b6000610bfa610bad600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b610bec610bdb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b6005546119ff90919063ffffffff16565b6119ff90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610c8d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086c565b9050919050565b610c9d336114b6565b610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390612b46565b60405180910390fd5b6103e8600554610cec9190612bc4565b811015610cf857600080fd5b8060068190555050565b610d0b33610bff565b610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190612c41565b60405180910390fd5b6103e8600554610d5a9190612bc4565b811015610d6657600080fd5b8060078190555050565b610d79336114b6565b610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90612b46565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600381526020017f4f4e450000000000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f14338484611570565b905092915050565b610f2533610bff565b610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90612c41565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60135481565b610fcd336114b6565b61100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612b46565b60405180910390fd5b82600c8190555081600d8190555061102d8284611a4990919063ffffffff16565b600e8190555080600f81905550505050565b60006110aa61104c610b7d565b61109c61108d600261107f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b611aa790919063ffffffff16565b85611aa790919063ffffffff16565b611b2190919063ffffffff16565b9050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611141336114b6565b611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117790612b46565b60405180910390fd5b81601460006101000a81548160ff021916908315150217905550806015819055505050565b6111ae336114b6565b6111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e490612b46565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61123a33610bff565b611279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127090612c41565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112dd33610bff565b61131c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131390612c41565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516113e29190612c82565b60405180910390a150565b6113f6336114b6565b611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90612b46565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b9190612661565b60405180910390fd5b50600083856115639190612c9d565b9050809150509392505050565b6000601660009054906101000a900460ff161561159957611592848484611b6b565b90506119f8565b6115a38483611d3e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561164f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561173857600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f8575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f59190612cd1565b11155b611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e90612d99565b60405180910390fd5b5b611740611ddb565b1561174e5761174d611eb2565b5b61175661228c565b1580156117b05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561180a576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161180157600080fd5b611809612299565b5b611893826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006118e1856122a2565b6118eb57826118f6565b6118f585846122f9565b5b905061194a81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ea91906125ad565b60405180910390a360019150505b9392505050565b6000611a4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061150c565b905092915050565b6000808284611a589190612cd1565b905083811015611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9490612e05565b60405180910390fd5b8091505092915050565b6000808303611ab95760009050611b1b565b60008284611ac79190612e25565b9050828482611ad69190612bc4565b14611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d90612ef1565b60405180910390fd5b809150505b92915050565b6000611b6383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243d565b905092915050565b6000611bf6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d2b91906125ad565b60405180910390a3600190509392505050565b60065481111580611d985750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce90612f5d565b60405180910390fd5b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611e485750601660009054906101000a900460ff16155b8015611e605750601460009054906101000a900460ff165b8015611ead5750601554600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff0219169083151502179055506000611ed830610e26565b90506000611f186002611f0a600e54611efc600c5487611aa790919063ffffffff16565b611b2190919063ffffffff16565b611b2190919063ffffffff16565b90506000611f2f82846119ff90919063ffffffff16565b90506000600267ffffffffffffffff811115611f4e57611f4d612f7d565b5b604051908082528060200260200182016040528015611f7c5781602001602082028036833780820191505090505b5090503081600081518110611f9457611f93612fac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061200557612004612fac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016120a89594939291906130d4565b600060405180830381600087803b1580156120c257600080fd5b505af11580156120d6573d6000803e3d6000fd5b5050505060006120ef82476119ff90919063ffffffff16565b9050600061211d61210c6002600c54611b2190919063ffffffff16565b600e546119ff90919063ffffffff16565b9050600061215b600261214d8461213f600c5488611aa790919063ffffffff16565b611b2190919063ffffffff16565b611b2190919063ffffffff16565b9050600061218683612178600d5487611aa790919063ffffffff16565b611b2190919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516121d49061315f565b600060405180830381858888f193505050503d8060008114612212576040519150601f19603f3d011682016040523d82523d6000602084013e612217565b606091505b505090508061225b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612252906131c0565b60405180910390fd5b61226589846124a0565b505050505050505050506000601660006101000a81548160ff021916908315150217905550565b6000806013541415905090565b43601381905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612325600f54612317600e5486611aa790919063ffffffff16565b611b2190919063ffffffff16565b905061237981600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161241991906125ad565b60405180910390a361243481846119ff90919063ffffffff16565b91505092915050565b60008083118290612484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247b9190612661565b60405180910390fd5b50600083856124939190612bc4565b9050809150509392505050565b600082111561259057601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401612510969594939291906131e0565b60606040518083038185885af115801561252e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125539190613256565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516125879291906132a9565b60405180910390a15b5050565b6000819050919050565b6125a781612594565b82525050565b60006020820190506125c2600083018461259e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126025780820151818401526020810190506125e7565b83811115612611576000848401525b50505050565b6000601f19601f8301169050919050565b6000612633826125c8565b61263d81856125d3565b935061264d8185602086016125e4565b61265681612617565b840191505092915050565b6000602082019050818103600083015261267b8184612628565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126b382612688565b9050919050565b6126c3816126a8565b81146126ce57600080fd5b50565b6000813590506126e0816126ba565b92915050565b6126ef81612594565b81146126fa57600080fd5b50565b60008135905061270c816126e6565b92915050565b6000806040838503121561272957612728612683565b5b6000612737858286016126d1565b9250506020612748858286016126fd565b9150509250929050565b60008115159050919050565b61276781612752565b82525050565b6000602082019050612782600083018461275e565b92915050565b6000806040838503121561279f5761279e612683565b5b60006127ad858286016126fd565b92505060206127be858286016126fd565b9150509250929050565b6000806000606084860312156127e1576127e0612683565b5b60006127ef868287016126d1565b9350506020612800868287016126d1565b9250506040612811868287016126fd565b9150509250925092565b60006020828403121561283157612830612683565b5b600061283f848285016126d1565b91505092915050565b600060ff82169050919050565b61285e81612848565b82525050565b60006020820190506128796000830184612855565b92915050565b60006020828403121561289557612894612683565b5b60006128a3848285016126fd565b91505092915050565b6128b581612752565b81146128c057600080fd5b50565b6000813590506128d2816128ac565b92915050565b600080604083850312156128ef576128ee612683565b5b60006128fd858286016126d1565b925050602061290e858286016128c3565b9150509250929050565b612921816126a8565b82525050565b600060208201905061293c6000830184612918565b92915050565b60008060006060848603121561295b5761295a612683565b5b6000612969868287016126fd565b935050602061297a868287016126fd565b925050604061298b868287016126fd565b9150509250925092565b600080604083850312156129ac576129ab612683565b5b60006129ba858286016126d1565b92505060206129cb858286016126d1565b9150509250929050565b600080604083850312156129ec576129eb612683565b5b60006129fa858286016128c3565b9250506020612a0b858286016126fd565b9150509250929050565b6000612a2082612688565b9050919050565b612a3081612a15565b8114612a3b57600080fd5b50565b600081359050612a4d81612a27565b92915050565b600060208284031215612a6957612a68612683565b5b6000612a7784828501612a3e565b91505092915050565b6000819050919050565b6000612aa5612aa0612a9b84612688565b612a80565b612688565b9050919050565b6000612ab782612a8a565b9050919050565b6000612ac982612aac565b9050919050565b612ad981612abe565b82525050565b6000602082019050612af46000830184612ad0565b92915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6000612b30600b836125d3565b9150612b3b82612afa565b602082019050919050565b60006020820190508181036000830152612b5f81612b23565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bcf82612594565b9150612bda83612594565b925082612bea57612be9612b66565b5b828204905092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612c2b6006836125d3565b9150612c3682612bf5565b602082019050919050565b60006020820190508181036000830152612c5a81612c1e565b9050919050565b6000612c6c82612aac565b9050919050565b612c7c81612c61565b82525050565b6000602082019050612c976000830184612c73565b92915050565b6000612ca882612594565b9150612cb383612594565b925082821015612cc657612cc5612b95565b5b828203905092915050565b6000612cdc82612594565b9150612ce783612594565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d1c57612d1b612b95565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612d836025836125d3565b9150612d8e82612d27565b604082019050919050565b60006020820190508181036000830152612db281612d76565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612def601b836125d3565b9150612dfa82612db9565b602082019050919050565b60006020820190508181036000830152612e1e81612de2565b9050919050565b6000612e3082612594565b9150612e3b83612594565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e7457612e73612b95565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612edb6021836125d3565b9150612ee682612e7f565b604082019050919050565b60006020820190508181036000830152612f0a81612ece565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000612f476011836125d3565b9150612f5282612f11565b602082019050919050565b60006020820190508181036000830152612f7681612f3a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613000612ffb612ff684612fdb565b612a80565b612594565b9050919050565b61301081612fe5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61304b816126a8565b82525050565b600061305d8383613042565b60208301905092915050565b6000602082019050919050565b600061308182613016565b61308b8185613021565b935061309683613032565b8060005b838110156130c75781516130ae8882613051565b97506130b983613069565b92505060018101905061309a565b5085935050505092915050565b600060a0820190506130e9600083018861259e565b6130f66020830187613007565b81810360408301526131088186613076565b90506131176060830185612918565b613124608083018461259e565b9695505050505050565b600081905092915050565b50565b600061314960008361312e565b915061315482613139565b600082019050919050565b600061316a8261313c565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b60006131aa601e836125d3565b91506131b582613174565b602082019050919050565b600060208201905081810360008301526131d98161319d565b9050919050565b600060c0820190506131f56000830189612918565b613202602083018861259e565b61320f6040830187613007565b61321c6060830186613007565b6132296080830185612918565b61323660a083018461259e565b979650505050505050565b600081519050613250816126e6565b92915050565b60008060006060848603121561326f5761326e612683565b5b600061327d86828701613241565b935050602061328e86828701613241565b925050604061329f86828701613241565b9150509250925092565b60006040820190506132be600083018561259e565b6132cb602083018461259e565b939250505056fea26469706673582212206ca9c65c68e176417fc02f7bfc59ae2b11282f518ba62d3bbfac70d777882dcb64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063893d20e81161010d578063d51ed1c8116100a0578063f0b37c041161006f578063f0b37c0414610746578063f2fde38b1461076f578063f84ba65d14610798578063f887ea40146107c1578063fe9fbb80146107ec576101f9565b8063d51ed1c81461067a578063dd62ed3e146106b7578063df20fd49146106f4578063efdcd9741461071d576101f9565b8063a9059cbb116100dc578063a9059cbb146105c0578063b6a5d7de146105fd578063bf56b37114610626578063cec10c1114610651576101f9565b8063893d20e8146105145780638f9a55c01461053f57806395d89b411461056a578063a8aa1b3114610595576101f9565b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146104585780636ddd17131461048157806370a08231146104ac5780637d1db4a5146104e9576101f9565b8063313ce5671461039e578063571ac8b0146103c95780635c85974f146104065780635d0044ca1461042f576101f9565b806318160ddd116101c157806318160ddd146102ce57806323b872dd146102f95780632b112e49146103365780632f54bf6e14610361576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b3146102545780631161ae3914610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610829565b60405161022091906125ad565b60405180910390f35b34801561023557600080fd5b5061023e61082f565b60405161024b9190612661565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612712565b61086c565b604051610288919061276d565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b39190612788565b61095e565b6040516102c5919061276d565b60405180910390f35b3480156102da57600080fd5b506102e3610973565b6040516102f091906125ad565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906127c8565b61097d565b60405161032d919061276d565b60405180910390f35b34801561034257600080fd5b5061034b610b7d565b60405161035891906125ad565b60405180910390f35b34801561036d57600080fd5b506103886004803603810190610383919061281b565b610bff565b604051610395919061276d565b60405180910390f35b3480156103aa57600080fd5b506103b3610c58565b6040516103c09190612864565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb919061281b565b610c61565b6040516103fd919061276d565b60405180910390f35b34801561041257600080fd5b5061042d6004803603810190610428919061287f565b610c94565b005b34801561043b57600080fd5b506104566004803603810190610451919061287f565b610d02565b005b34801561046457600080fd5b5061047f600480360381019061047a91906128d8565b610d70565b005b34801561048d57600080fd5b50610496610e13565b6040516104a3919061276d565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce919061281b565b610e26565b6040516104e091906125ad565b60405180910390f35b3480156104f557600080fd5b506104fe610e6f565b60405161050b91906125ad565b60405180910390f35b34801561052057600080fd5b50610529610e75565b6040516105369190612927565b60405180910390f35b34801561054b57600080fd5b50610554610e9e565b60405161056191906125ad565b60405180910390f35b34801561057657600080fd5b5061057f610ea4565b60405161058c9190612661565b60405180910390f35b3480156105a157600080fd5b506105aa610ee1565b6040516105b79190612927565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190612712565b610f07565b6040516105f4919061276d565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f919061281b565b610f1c565b005b34801561063257600080fd5b5061063b610fbe565b60405161064891906125ad565b60405180910390f35b34801561065d57600080fd5b5061067860048036038101906106739190612942565b610fc4565b005b34801561068657600080fd5b506106a1600480360381019061069c919061287f565b61103f565b6040516106ae91906125ad565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190612995565b6110b1565b6040516106eb91906125ad565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906129d5565b611138565b005b34801561072957600080fd5b50610744600480360381019061073f919061281b565b6111a5565b005b34801561075257600080fd5b5061076d6004803603810190610768919061281b565b611231565b005b34801561077b57600080fd5b5061079660048036038101906107919190612a53565b6112d4565b005b3480156107a457600080fd5b506107bf60048036038101906107ba91906128d8565b6113ed565b005b3480156107cd57600080fd5b506107d6611490565b6040516107e39190612adf565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e919061281b565b6114b6565b604051610820919061276d565b60405180910390f35b60155481565b60606040518060400160405280601781526020017f436f6c6c65637469766520496e74656c6c6967656e6365000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094c91906125ad565b60405180910390a36001905092915050565b60008261096a8361103f565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b6957610ae8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b74848484611570565b90509392505050565b6000610bfa610bad600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b610bec610bdb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b6005546119ff90919063ffffffff16565b6119ff90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610c8d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086c565b9050919050565b610c9d336114b6565b610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390612b46565b60405180910390fd5b6103e8600554610cec9190612bc4565b811015610cf857600080fd5b8060068190555050565b610d0b33610bff565b610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190612c41565b60405180910390fd5b6103e8600554610d5a9190612bc4565b811015610d6657600080fd5b8060078190555050565b610d79336114b6565b610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90612b46565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600381526020017f4f4e450000000000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f14338484611570565b905092915050565b610f2533610bff565b610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90612c41565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60135481565b610fcd336114b6565b61100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612b46565b60405180910390fd5b82600c8190555081600d8190555061102d8284611a4990919063ffffffff16565b600e8190555080600f81905550505050565b60006110aa61104c610b7d565b61109c61108d600261107f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b611aa790919063ffffffff16565b85611aa790919063ffffffff16565b611b2190919063ffffffff16565b9050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611141336114b6565b611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117790612b46565b60405180910390fd5b81601460006101000a81548160ff021916908315150217905550806015819055505050565b6111ae336114b6565b6111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e490612b46565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61123a33610bff565b611279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127090612c41565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112dd33610bff565b61131c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131390612c41565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516113e29190612c82565b60405180910390a150565b6113f6336114b6565b611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90612b46565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b9190612661565b60405180910390fd5b50600083856115639190612c9d565b9050809150509392505050565b6000601660009054906101000a900460ff161561159957611592848484611b6b565b90506119f8565b6115a38483611d3e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561164f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561173857600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f8575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f59190612cd1565b11155b611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e90612d99565b60405180910390fd5b5b611740611ddb565b1561174e5761174d611eb2565b5b61175661228c565b1580156117b05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561180a576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161180157600080fd5b611809612299565b5b611893826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006118e1856122a2565b6118eb57826118f6565b6118f585846122f9565b5b905061194a81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ea91906125ad565b60405180910390a360019150505b9392505050565b6000611a4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061150c565b905092915050565b6000808284611a589190612cd1565b905083811015611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9490612e05565b60405180910390fd5b8091505092915050565b6000808303611ab95760009050611b1b565b60008284611ac79190612e25565b9050828482611ad69190612bc4565b14611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d90612ef1565b60405180910390fd5b809150505b92915050565b6000611b6383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243d565b905092915050565b6000611bf6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d2b91906125ad565b60405180910390a3600190509392505050565b60065481111580611d985750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce90612f5d565b60405180910390fd5b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611e485750601660009054906101000a900460ff16155b8015611e605750601460009054906101000a900460ff165b8015611ead5750601554600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff0219169083151502179055506000611ed830610e26565b90506000611f186002611f0a600e54611efc600c5487611aa790919063ffffffff16565b611b2190919063ffffffff16565b611b2190919063ffffffff16565b90506000611f2f82846119ff90919063ffffffff16565b90506000600267ffffffffffffffff811115611f4e57611f4d612f7d565b5b604051908082528060200260200182016040528015611f7c5781602001602082028036833780820191505090505b5090503081600081518110611f9457611f93612fac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061200557612004612fac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016120a89594939291906130d4565b600060405180830381600087803b1580156120c257600080fd5b505af11580156120d6573d6000803e3d6000fd5b5050505060006120ef82476119ff90919063ffffffff16565b9050600061211d61210c6002600c54611b2190919063ffffffff16565b600e546119ff90919063ffffffff16565b9050600061215b600261214d8461213f600c5488611aa790919063ffffffff16565b611b2190919063ffffffff16565b611b2190919063ffffffff16565b9050600061218683612178600d5487611aa790919063ffffffff16565b611b2190919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516121d49061315f565b600060405180830381858888f193505050503d8060008114612212576040519150601f19603f3d011682016040523d82523d6000602084013e612217565b606091505b505090508061225b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612252906131c0565b60405180910390fd5b61226589846124a0565b505050505050505050506000601660006101000a81548160ff021916908315150217905550565b6000806013541415905090565b43601381905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612325600f54612317600e5486611aa790919063ffffffff16565b611b2190919063ffffffff16565b905061237981600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161241991906125ad565b60405180910390a361243481846119ff90919063ffffffff16565b91505092915050565b60008083118290612484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247b9190612661565b60405180910390fd5b50600083856124939190612bc4565b9050809150509392505050565b600082111561259057601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401612510969594939291906131e0565b60606040518083038185885af115801561252e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125539190613256565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516125879291906132a9565b60405180910390a15b5050565b6000819050919050565b6125a781612594565b82525050565b60006020820190506125c2600083018461259e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126025780820151818401526020810190506125e7565b83811115612611576000848401525b50505050565b6000601f19601f8301169050919050565b6000612633826125c8565b61263d81856125d3565b935061264d8185602086016125e4565b61265681612617565b840191505092915050565b6000602082019050818103600083015261267b8184612628565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126b382612688565b9050919050565b6126c3816126a8565b81146126ce57600080fd5b50565b6000813590506126e0816126ba565b92915050565b6126ef81612594565b81146126fa57600080fd5b50565b60008135905061270c816126e6565b92915050565b6000806040838503121561272957612728612683565b5b6000612737858286016126d1565b9250506020612748858286016126fd565b9150509250929050565b60008115159050919050565b61276781612752565b82525050565b6000602082019050612782600083018461275e565b92915050565b6000806040838503121561279f5761279e612683565b5b60006127ad858286016126fd565b92505060206127be858286016126fd565b9150509250929050565b6000806000606084860312156127e1576127e0612683565b5b60006127ef868287016126d1565b9350506020612800868287016126d1565b9250506040612811868287016126fd565b9150509250925092565b60006020828403121561283157612830612683565b5b600061283f848285016126d1565b91505092915050565b600060ff82169050919050565b61285e81612848565b82525050565b60006020820190506128796000830184612855565b92915050565b60006020828403121561289557612894612683565b5b60006128a3848285016126fd565b91505092915050565b6128b581612752565b81146128c057600080fd5b50565b6000813590506128d2816128ac565b92915050565b600080604083850312156128ef576128ee612683565b5b60006128fd858286016126d1565b925050602061290e858286016128c3565b9150509250929050565b612921816126a8565b82525050565b600060208201905061293c6000830184612918565b92915050565b60008060006060848603121561295b5761295a612683565b5b6000612969868287016126fd565b935050602061297a868287016126fd565b925050604061298b868287016126fd565b9150509250925092565b600080604083850312156129ac576129ab612683565b5b60006129ba858286016126d1565b92505060206129cb858286016126d1565b9150509250929050565b600080604083850312156129ec576129eb612683565b5b60006129fa858286016128c3565b9250506020612a0b858286016126fd565b9150509250929050565b6000612a2082612688565b9050919050565b612a3081612a15565b8114612a3b57600080fd5b50565b600081359050612a4d81612a27565b92915050565b600060208284031215612a6957612a68612683565b5b6000612a7784828501612a3e565b91505092915050565b6000819050919050565b6000612aa5612aa0612a9b84612688565b612a80565b612688565b9050919050565b6000612ab782612a8a565b9050919050565b6000612ac982612aac565b9050919050565b612ad981612abe565b82525050565b6000602082019050612af46000830184612ad0565b92915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6000612b30600b836125d3565b9150612b3b82612afa565b602082019050919050565b60006020820190508181036000830152612b5f81612b23565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bcf82612594565b9150612bda83612594565b925082612bea57612be9612b66565b5b828204905092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612c2b6006836125d3565b9150612c3682612bf5565b602082019050919050565b60006020820190508181036000830152612c5a81612c1e565b9050919050565b6000612c6c82612aac565b9050919050565b612c7c81612c61565b82525050565b6000602082019050612c976000830184612c73565b92915050565b6000612ca882612594565b9150612cb383612594565b925082821015612cc657612cc5612b95565b5b828203905092915050565b6000612cdc82612594565b9150612ce783612594565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d1c57612d1b612b95565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612d836025836125d3565b9150612d8e82612d27565b604082019050919050565b60006020820190508181036000830152612db281612d76565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612def601b836125d3565b9150612dfa82612db9565b602082019050919050565b60006020820190508181036000830152612e1e81612de2565b9050919050565b6000612e3082612594565b9150612e3b83612594565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e7457612e73612b95565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612edb6021836125d3565b9150612ee682612e7f565b604082019050919050565b60006020820190508181036000830152612f0a81612ece565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000612f476011836125d3565b9150612f5282612f11565b602082019050919050565b60006020820190508181036000830152612f7681612f3a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613000612ffb612ff684612fdb565b612a80565b612594565b9050919050565b61301081612fe5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61304b816126a8565b82525050565b600061305d8383613042565b60208301905092915050565b6000602082019050919050565b600061308182613016565b61308b8185613021565b935061309683613032565b8060005b838110156130c75781516130ae8882613051565b97506130b983613069565b92505060018101905061309a565b5085935050505092915050565b600060a0820190506130e9600083018861259e565b6130f66020830187613007565b81810360408301526131088186613076565b90506131176060830185612918565b613124608083018461259e565b9695505050505050565b600081905092915050565b50565b600061314960008361312e565b915061315482613139565b600082019050919050565b600061316a8261313c565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b60006131aa601e836125d3565b91506131b582613174565b602082019050919050565b600060208201905081810360008301526131d98161319d565b9050919050565b600060c0820190506131f56000830189612918565b613202602083018861259e565b61320f6040830187613007565b61321c6060830186613007565b6132296080830185612918565b61323660a083018461259e565b979650505050505050565b600081519050613250816126e6565b92915050565b60008060006060848603121561326f5761326e612683565b5b600061327d86828701613241565b935050602061328e86828701613241565b925050604061329f86828701613241565b9150509250925092565b60006040820190506132be600083018561259e565b6132cb602083018461259e565b939250505056fea26469706673582212206ca9c65c68e176417fc02f7bfc59ae2b11282f518ba62d3bbfac70d777882dcb64736f6c634300080f0033

Deployed Bytecode Sourcemap

5634:9642:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6763:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7741:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8169:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15055:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7471:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8705:376;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14718:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3479:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7565:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8399:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13527:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13685:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13854:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6726:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7911:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6088:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7827:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6150:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7651:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6666:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8535:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3140:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6692:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14130:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14874:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8022:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14550:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14407:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3316:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3891:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13988:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6635:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3659:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6763:57;;;;:::o;7741:80::-;7789:13;7813:5;;;;;;;;;;;;;;;;;7806:12;;7741:80;:::o;8169:216::-;8244:4;8296:6;8261:11;:23;8273:10;8261:23;;;;;;;;;;;;;;;:32;8285:7;8261:32;;;;;;;;;;;;;;;:41;;;;8339:7;8318:37;;8327:10;8318:37;;;8348:6;8318:37;;;;;;:::i;:::-;;;;;;;;8373:4;8366:11;;8169:216;;;;:::o;15055:150::-;15135:4;15191:6;15159:29;15179:8;15159:19;:29::i;:::-;:38;15152:45;;15055:150;;;;:::o;7471:88::-;7526:7;7544:12;;7537:19;;7471:88;:::o;8705:376::-;8805:4;8860:17;8825:11;:19;8837:6;8825:19;;;;;;;;;;;;;;;:31;8845:10;8825:31;;;;;;;;;;;;;;;;:52;8822:186;;8927:69;8963:6;8927:69;;;;;;;;;;;;;;;;;:11;:19;8939:6;8927:19;;;;;;;;;;;;;;;:31;8947:10;8927:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8893:11;:19;8905:6;8893:19;;;;;;;;;;;;;;;:31;8913:10;8893:31;;;;;;;;;;;;;;;:103;;;;8822:186;9033:40;9047:6;9055:9;9066:6;9033:13;:40::i;:::-;9026:47;;8705:376;;;;;:::o;14718:142::-;14771:7;14798:54;14836:15;14846:4;;;;;;;;;;;14836:9;:15::i;:::-;14798:33;14815:15;14825:4;;;;;;;;;;;14815:9;:15::i;:::-;14798:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14791:61;;14718:142;:::o;3479:103::-;3534:4;3569:5;;;;;;;;;;;3558:16;;:7;:16;;;3551:23;;3479:103;;;:::o;7565:80::-;7617:5;6020:2;7626:16;;7565:80;:::o;8399:122::-;8454:4;8478:35;8486:7;8495:17;8478:7;:35::i;:::-;8471:42;;8399:122;;;:::o;13527:145::-;3069:24;3082:10;3069:12;:24::i;:::-;3061:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13627:4:::1;13612:12;;:19;;;;:::i;:::-;13602:6;:29;;13594:38;;;::::0;::::1;;13658:6;13643:12;:21;;;;13527:145:::0;:::o;13685:151::-;2967:19;2975:10;2967:7;:19::i;:::-;2959:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13788:4:::1;13773:12;;:19;;;;:::i;:::-;13763:6;:29;;13755:39;;;::::0;::::1;;13822:6;13805:14;:23;;;;13685:151:::0;:::o;13854:120::-;3069:24;3082:10;3069:12;:24::i;:::-;3061:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13960:6:::1;13938:11;:19;13950:6;13938:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13854:120:::0;;:::o;6726:30::-;;;;;;;;;;;;;:::o;7911:105::-;7977:7;7995:9;:18;8005:7;7995:18;;;;;;;;;;;;;;;;7988:25;;7911:105;;;:::o;6088:54::-;;;;:::o;7827:78::-;7879:7;7897:5;;;;;;;;;;;7890:12;;7827:78;:::o;6150:56::-;;;;:::o;7651:84::-;7701:13;7725:7;;;;;;;;;;;;;;;;;7718:14;;7651:84;:::o;6666:19::-;;;;;;;;;;;;;:::o;8535:156::-;8615:4;8639:44;8653:10;8665:9;8676:6;8639:13;:44::i;:::-;8632:51;;8535:156;;;;:::o;3140:94::-;2967:19;2975:10;2967:7;:19::i;:::-;2959:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3222:4:::1;3200:14:::0;:19:::1;3215:3;3200:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3140:94:::0;:::o;6692:25::-;;;;:::o;14130:263::-;3069:24;3082:10;3069:12;:24::i;:::-;3061:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14257:13:::1;14242:12;:28;;;;14289:6;14281:5;:14;;;;14317:25;14335:6;14317:13;:17;;:25;;;;:::i;:::-;14306:8;:36;;;;14370:15;14353:14;:32;;;;14130:263:::0;;;:::o;14874:167::-;14942:7;14969:64;15010:22;:20;:22::i;:::-;14969:36;14982:22;15002:1;14982:15;14992:4;;;;;;;;;;;14982:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;14969:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;14962:71;;14874:167;;;:::o;8022:133::-;8106:7;8124:11;:19;8136:6;8124:19;;;;;;;;;;;;;;;:28;8144:7;8124:28;;;;;;;;;;;;;;;;8117:35;;8022:133;;;;:::o;14550:156::-;3069:24;3082:10;3069:12;:24::i;:::-;3061:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14656:8:::1;14642:11;;:22;;;;;;;;;;;;;;;;;;14691:7;14675:13;:23;;;;14550:156:::0;;:::o;14407:129::-;3069:24;3082:10;3069:12;:24::i;:::-;3061:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14510:18:::1;14490:17;;:38;;;;;;;;;;;;;;;;;;14407:129:::0;:::o;3316:97::-;2967:19;2975:10;2967:7;:19::i;:::-;2959:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3400:5:::1;3378:14;:19;3393:3;3378:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3316:97:::0;:::o;3891:173::-;2967:19;2975:10;2967:7;:19::i;:::-;2959:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3975:3:::1;3967:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4011:4;3989:14:::0;:19:::1;4004:3;3989:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4031:25;4052:3;4031:25;;;;;;:::i;:::-;;;;;;;;3891:173:::0;:::o;13988:128::-;3069:24;3082:10;3069:12;:24::i;:::-;3061:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14102:6:::1;14076:15;:23;14092:6;14076:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13988:128:::0;;:::o;6635:24::-;;;;;;;;;;;;;:::o;3659:107::-;3715:4;3739:14;:19;3754:3;3739:19;;;;;;;;;;;;;;;;;;;;;;;;;3732:26;;3659:107;;;:::o;813:198::-;899:7;932:1;927;:6;;935:12;919:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;959:9;975:1;971;:5;;;;:::i;:::-;959:17;;1002:1;995:8;;;813:198;;;;;:::o;9095:955::-;9187:4;9207:6;;;;;;;;;;;9204:63;;;9223:41;9238:6;9246:9;9257:6;9223:14;:41::i;:::-;9216:48;;;;9204:63;9287:28;9300:6;9308;9287:12;:28::i;:::-;9353:4;;;;;;;;;;;9340:17;;:9;:17;;;;:38;;;;;9374:4;;;;;;;;;;;9361:17;;:9;:17;;;;9340:38;9336:198;;;9403:15;:26;9419:9;9403:26;;;;;;;;;;;;;;;;;;;;;;;;;:77;;;;9466:14;;9456:6;9433:9;:20;9443:9;9433:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;9403:77;9395:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;9336:198;9557:16;:14;:16::i;:::-;9554:35;;;9576:10;:8;:10::i;:::-;9554:35;9611:10;:8;:10::i;:::-;9610:11;:32;;;;;9638:4;;;;;;;;;;;9625:17;;:9;:17;;;9610:32;9607:81;;;9673:1;9653:9;:17;9663:6;9653:17;;;;;;;;;;;;;;;;:21;9645:30;;;;;;9677:8;:6;:8::i;:::-;9607:81;9726:53;9748:6;9726:53;;;;;;;;;;;;;;;;;:9;:17;9736:6;9726:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9706:9;:17;9716:6;9706:17;;;;;;;;;;;;;;;:73;;;;9798:22;9823:21;9837:6;9823:13;:21::i;:::-;:56;;9873:6;9823:56;;;9847:23;9855:6;9863;9847:7;:23::i;:::-;9823:56;9798:81;;9913:40;9938:14;9913:9;:20;9923:9;9913:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9890:9;:20;9900:9;9890:20;;;;;;;;;;;;;;;:63;;;;9994:9;9977:43;;9986:6;9977:43;;;10005:14;9977:43;;;;;;:::i;:::-;;;;;;;;10038:4;10031:11;;;9095:955;;;;;;:::o;671:136::-;729:7;756:43;760:1;763;756:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;749:50;;671:136;;;;:::o;478:187::-;536:7;556:9;572:1;568;:5;;;;:::i;:::-;556:17;;597:1;592;:6;;584:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;656:1;649:8;;;478:187;;;;:::o;1017:250::-;1075:7;1104:1;1099;:6;1095:47;;1129:1;1122:8;;;;1095:47;1154:9;1170:1;1166;:5;;;;:::i;:::-;1154:17;;1199:1;1194;1190;:5;;;;:::i;:::-;:10;1182:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1258:1;1251:8;;;1017:250;;;;;:::o;1273:132::-;1331:7;1358:39;1362:1;1365;1358:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1351:46;;1273:132;;;;:::o;10062:330::-;10155:4;10192:53;10214:6;10192:53;;;;;;;;;;;;;;;;;:9;:17;10202:6;10192:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10172:9;:17;10182:6;10172:17;;;;;;;;;;;;;;;:73;;;;10279:32;10304:6;10279:9;:20;10289:9;10279:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10256:9;:20;10266:9;10256:20;;;;;;;;;;;;;;;:55;;;;10344:9;10327:35;;10336:6;10327:35;;;10355:6;10327:35;;;;;;:::i;:::-;;;;;;;;10380:4;10373:11;;10062:330;;;;;:::o;10406:166::-;10503:12;;10493:6;:22;;:49;;;;10519:15;:23;10535:6;10519:23;;;;;;;;;;;;;;;;;;;;;;;;;10493:49;10485:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10406:166;;:::o;11079:197::-;11128:4;11166;;;;;;;;;;;11152:18;;:10;:18;;;;:38;;;;;11184:6;;;;;;;;;;;11183:7;11152:38;:62;;;;;11203:11;;;;;;;;;;;11152:62;:116;;;;;11255:13;;11227:9;:24;11245:4;11227:24;;;;;;;;;;;;;;;;:41;;11152:116;11145:123;;11079:197;:::o;11290:1231::-;6884:4;6875:6;;:13;;;;;;;;;;;;;;;;;;11339:28:::1;11370:24;11388:4;11370:9;:24::i;:::-;11339:55;;11405:23;11431:59;11488:1;11431:52;11474:8;;11431:38;11456:12;;11431:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;11405:85;;11501:20;11524:41;11549:15;11524:20;:24;;:41;;;;:::i;:::-;11501:64;;11584:21;11622:1;11608:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11584:40;;11653:4;11635;11640:1;11635:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11679:4;;;;;;;;;;;11669;11674:1;11669:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11702:21;11726;11702:45;;11766:6;;;;;;;;;;;:57;;;11838:12;11865:1;11881:4;11908;11928:15;11766:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11965:17;11985:40;12011:13;11985:21;:25;;:40;;;;:::i;:::-;11965:60;;12036:19;12058:33;12071:19;12088:1;12071:12;;:16;;:19;;;;:::i;:::-;12058:8;;:12;;:33;;;;:::i;:::-;12036:55;;12102:26;12131:51;12180:1;12131:44;12163:11;12131:27;12145:12;;12131:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12102:80;;12193:23;12219:37;12244:11;12219:20;12233:5;;12219:9;:13;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;12193:63;;12276:14;12327:17;;;;;;;;;;;12319:31;;12358:15;12380:5;12319:71;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12275:115;;;12409:9;12401:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12464:49;12477:15;12494:18;12464:12;:49::i;:::-;11328:1193;;;;;;;;;;6902:5:::0;6893:6;;:14;;;;;;;;;;;;;;;;;;11290:1231::o;13338:90::-;13381:4;13419:1;13405:10;;:15;;13398:22;;13338:90;:::o;13442:71::-;13493:12;13480:10;:25;;;;13442:71::o;10584:114::-;10646:4;10671:11;:19;10683:6;10671:19;;;;;;;;;;;;;;;;;;;;;;;;;10670:20;10663:27;;10584:114;;;:::o;10720:345::-;10787:7;10807:17;10827:40;10852:14;;10827:20;10838:8;;10827:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;10807:60;;10913:39;10942:9;10913;:24;10931:4;10913:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10886:9;:24;10904:4;10886:24;;;;;;;;;;;;;;;:66;;;;10993:4;10968:42;;10977:6;10968:42;;;11000:9;10968:42;;;;;;:::i;:::-;;;;;;;;11036:21;11047:9;11036:6;:10;;:21;;;;:::i;:::-;11029:28;;;10720:345;;;;:::o;1411:::-;1497:7;1596:1;1592;:5;1599:12;1584:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1623:9;1639:1;1635;:5;;;;:::i;:::-;1623:17;;1747:1;1740:8;;;1411:345;;;;;:::o;12535:408::-;12629:1;12615:11;:15;12612:324;;;12646:6;;;;;;;;;;;:22;;;12676:9;12713:4;12737:11;12767:1;12787;12815:4;12839:15;12646:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12889:35;12901:9;12912:11;12889:35;;;;;;;:::i;:::-;;;;;;;;12612:324;12535:408;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:619::-;4403:6;4411;4419;4468:2;4456:9;4447:7;4443:23;4439:32;4436:119;;;4474:79;;:::i;:::-;4436:119;4594:1;4619:53;4664:7;4655:6;4644:9;4640:22;4619:53;:::i;:::-;4609:63;;4565:117;4721:2;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4692:118;4849:2;4875:53;4920:7;4911:6;4900:9;4896:22;4875:53;:::i;:::-;4865:63;;4820:118;4326:619;;;;;:::o;4951:329::-;5010:6;5059:2;5047:9;5038:7;5034:23;5030:32;5027:119;;;5065:79;;:::i;:::-;5027:119;5185:1;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5156:117;4951:329;;;;:::o;5286:86::-;5321:7;5361:4;5354:5;5350:16;5339:27;;5286:86;;;:::o;5378:112::-;5461:22;5477:5;5461:22;:::i;:::-;5456:3;5449:35;5378:112;;:::o;5496:214::-;5585:4;5623:2;5612:9;5608:18;5600:26;;5636:67;5700:1;5689:9;5685:17;5676:6;5636:67;:::i;:::-;5496:214;;;;:::o;5716:329::-;5775:6;5824:2;5812:9;5803:7;5799:23;5795:32;5792:119;;;5830:79;;:::i;:::-;5792:119;5950:1;5975:53;6020:7;6011:6;6000:9;5996:22;5975:53;:::i;:::-;5965:63;;5921:117;5716:329;;;;:::o;6051:116::-;6121:21;6136:5;6121:21;:::i;:::-;6114:5;6111:32;6101:60;;6157:1;6154;6147:12;6101:60;6051:116;:::o;6173:133::-;6216:5;6254:6;6241:20;6232:29;;6270:30;6294:5;6270:30;:::i;:::-;6173:133;;;;:::o;6312:468::-;6377:6;6385;6434:2;6422:9;6413:7;6409:23;6405:32;6402:119;;;6440:79;;:::i;:::-;6402:119;6560:1;6585:53;6630:7;6621:6;6610:9;6606:22;6585:53;:::i;:::-;6575:63;;6531:117;6687:2;6713:50;6755:7;6746:6;6735:9;6731:22;6713:50;:::i;:::-;6703:60;;6658:115;6312:468;;;;;:::o;6786:118::-;6873:24;6891:5;6873:24;:::i;:::-;6868:3;6861:37;6786:118;;:::o;6910:222::-;7003:4;7041:2;7030:9;7026:18;7018:26;;7054:71;7122:1;7111:9;7107:17;7098:6;7054:71;:::i;:::-;6910:222;;;;:::o;7138:619::-;7215:6;7223;7231;7280:2;7268:9;7259:7;7255:23;7251:32;7248:119;;;7286:79;;:::i;:::-;7248:119;7406:1;7431:53;7476:7;7467:6;7456:9;7452:22;7431:53;:::i;:::-;7421:63;;7377:117;7533:2;7559:53;7604:7;7595:6;7584:9;7580:22;7559:53;:::i;:::-;7549:63;;7504:118;7661:2;7687:53;7732:7;7723:6;7712:9;7708:22;7687:53;:::i;:::-;7677:63;;7632:118;7138:619;;;;;:::o;7763:474::-;7831:6;7839;7888:2;7876:9;7867:7;7863:23;7859:32;7856:119;;;7894:79;;:::i;:::-;7856:119;8014:1;8039:53;8084:7;8075:6;8064:9;8060:22;8039:53;:::i;:::-;8029:63;;7985:117;8141:2;8167:53;8212:7;8203:6;8192:9;8188:22;8167:53;:::i;:::-;8157:63;;8112:118;7763:474;;;;;:::o;8243:468::-;8308:6;8316;8365:2;8353:9;8344:7;8340:23;8336:32;8333:119;;;8371:79;;:::i;:::-;8333:119;8491:1;8516:50;8558:7;8549:6;8538:9;8534:22;8516:50;:::i;:::-;8506:60;;8462:114;8615:2;8641:53;8686:7;8677:6;8666:9;8662:22;8641:53;:::i;:::-;8631:63;;8586:118;8243:468;;;;;:::o;8717:104::-;8762:7;8791:24;8809:5;8791:24;:::i;:::-;8780:35;;8717:104;;;:::o;8827:138::-;8908:32;8934:5;8908:32;:::i;:::-;8901:5;8898:43;8888:71;;8955:1;8952;8945:12;8888:71;8827:138;:::o;8971:155::-;9025:5;9063:6;9050:20;9041:29;;9079:41;9114:5;9079:41;:::i;:::-;8971:155;;;;:::o;9132:345::-;9199:6;9248:2;9236:9;9227:7;9223:23;9219:32;9216:119;;;9254:79;;:::i;:::-;9216:119;9374:1;9399:61;9452:7;9443:6;9432:9;9428:22;9399:61;:::i;:::-;9389:71;;9345:125;9132:345;;;;:::o;9483:60::-;9511:3;9532:5;9525:12;;9483:60;;;:::o;9549:142::-;9599:9;9632:53;9650:34;9659:24;9677:5;9659:24;:::i;:::-;9650:34;:::i;:::-;9632:53;:::i;:::-;9619:66;;9549:142;;;:::o;9697:126::-;9747:9;9780:37;9811:5;9780:37;:::i;:::-;9767:50;;9697:126;;;:::o;9829:144::-;9897:9;9930:37;9961:5;9930:37;:::i;:::-;9917:50;;9829:144;;;:::o;9979:167::-;10084:55;10133:5;10084:55;:::i;:::-;10079:3;10072:68;9979:167;;:::o;10152:258::-;10263:4;10301:2;10290:9;10286:18;10278:26;;10314:89;10400:1;10389:9;10385:17;10376:6;10314:89;:::i;:::-;10152:258;;;;:::o;10416:161::-;10556:13;10552:1;10544:6;10540:14;10533:37;10416:161;:::o;10583:366::-;10725:3;10746:67;10810:2;10805:3;10746:67;:::i;:::-;10739:74;;10822:93;10911:3;10822:93;:::i;:::-;10940:2;10935:3;10931:12;10924:19;;10583:366;;;:::o;10955:419::-;11121:4;11159:2;11148:9;11144:18;11136:26;;11208:9;11202:4;11198:20;11194:1;11183:9;11179:17;11172:47;11236:131;11362:4;11236:131;:::i;:::-;11228:139;;10955:419;;;:::o;11380:180::-;11428:77;11425:1;11418:88;11525:4;11522:1;11515:15;11549:4;11546:1;11539:15;11566:180;11614:77;11611:1;11604:88;11711:4;11708:1;11701:15;11735:4;11732:1;11725:15;11752:185;11792:1;11809:20;11827:1;11809:20;:::i;:::-;11804:25;;11843:20;11861:1;11843:20;:::i;:::-;11838:25;;11882:1;11872:35;;11887:18;;:::i;:::-;11872:35;11929:1;11926;11922:9;11917:14;;11752:185;;;;:::o;11943:156::-;12083:8;12079:1;12071:6;12067:14;12060:32;11943:156;:::o;12105:365::-;12247:3;12268:66;12332:1;12327:3;12268:66;:::i;:::-;12261:73;;12343:93;12432:3;12343:93;:::i;:::-;12461:2;12456:3;12452:12;12445:19;;12105:365;;;:::o;12476:419::-;12642:4;12680:2;12669:9;12665:18;12657:26;;12729:9;12723:4;12719:20;12715:1;12704:9;12700:17;12693:47;12757:131;12883:4;12757:131;:::i;:::-;12749:139;;12476:419;;;:::o;12901:134::-;12959:9;12992:37;13023:5;12992:37;:::i;:::-;12979:50;;12901:134;;;:::o;13041:147::-;13136:45;13175:5;13136:45;:::i;:::-;13131:3;13124:58;13041:147;;:::o;13194:238::-;13295:4;13333:2;13322:9;13318:18;13310:26;;13346:79;13422:1;13411:9;13407:17;13398:6;13346:79;:::i;:::-;13194:238;;;;:::o;13438:191::-;13478:4;13498:20;13516:1;13498:20;:::i;:::-;13493:25;;13532:20;13550:1;13532:20;:::i;:::-;13527:25;;13571:1;13568;13565:8;13562:34;;;13576:18;;:::i;:::-;13562:34;13621:1;13618;13614:9;13606:17;;13438:191;;;;:::o;13635:305::-;13675:3;13694:20;13712:1;13694:20;:::i;:::-;13689:25;;13728:20;13746:1;13728:20;:::i;:::-;13723:25;;13882:1;13814:66;13810:74;13807:1;13804:81;13801:107;;;13888:18;;:::i;:::-;13801:107;13932:1;13929;13925:9;13918:16;;13635:305;;;;:::o;13946:224::-;14086:34;14082:1;14074:6;14070:14;14063:58;14155:7;14150:2;14142:6;14138:15;14131:32;13946:224;:::o;14176:366::-;14318:3;14339:67;14403:2;14398:3;14339:67;:::i;:::-;14332:74;;14415:93;14504:3;14415:93;:::i;:::-;14533:2;14528:3;14524:12;14517:19;;14176:366;;;:::o;14548:419::-;14714:4;14752:2;14741:9;14737:18;14729:26;;14801:9;14795:4;14791:20;14787:1;14776:9;14772:17;14765:47;14829:131;14955:4;14829:131;:::i;:::-;14821:139;;14548:419;;;:::o;14973:177::-;15113:29;15109:1;15101:6;15097:14;15090:53;14973:177;:::o;15156:366::-;15298:3;15319:67;15383:2;15378:3;15319:67;:::i;:::-;15312:74;;15395:93;15484:3;15395:93;:::i;:::-;15513:2;15508:3;15504:12;15497:19;;15156:366;;;:::o;15528:419::-;15694:4;15732:2;15721:9;15717:18;15709:26;;15781:9;15775:4;15771:20;15767:1;15756:9;15752:17;15745:47;15809:131;15935:4;15809:131;:::i;:::-;15801:139;;15528:419;;;:::o;15953:348::-;15993:7;16016:20;16034:1;16016:20;:::i;:::-;16011:25;;16050:20;16068:1;16050:20;:::i;:::-;16045:25;;16238:1;16170:66;16166:74;16163:1;16160:81;16155:1;16148:9;16141:17;16137:105;16134:131;;;16245:18;;:::i;:::-;16134:131;16293:1;16290;16286:9;16275:20;;15953:348;;;;:::o;16307:220::-;16447:34;16443:1;16435:6;16431:14;16424:58;16516:3;16511:2;16503:6;16499:15;16492:28;16307:220;:::o;16533:366::-;16675:3;16696:67;16760:2;16755:3;16696:67;:::i;:::-;16689:74;;16772:93;16861:3;16772:93;:::i;:::-;16890:2;16885:3;16881:12;16874:19;;16533:366;;;:::o;16905:419::-;17071:4;17109:2;17098:9;17094:18;17086:26;;17158:9;17152:4;17148:20;17144:1;17133:9;17129:17;17122:47;17186:131;17312:4;17186:131;:::i;:::-;17178:139;;16905:419;;;:::o;17330:167::-;17470:19;17466:1;17458:6;17454:14;17447:43;17330:167;:::o;17503:366::-;17645:3;17666:67;17730:2;17725:3;17666:67;:::i;:::-;17659:74;;17742:93;17831:3;17742:93;:::i;:::-;17860:2;17855:3;17851:12;17844:19;;17503:366;;;:::o;17875:419::-;18041:4;18079:2;18068:9;18064:18;18056:26;;18128:9;18122:4;18118:20;18114:1;18103:9;18099:17;18092:47;18156:131;18282:4;18156:131;:::i;:::-;18148:139;;17875:419;;;:::o;18300:180::-;18348:77;18345:1;18338:88;18445:4;18442:1;18435:15;18469:4;18466:1;18459:15;18486:180;18534:77;18531:1;18524:88;18631:4;18628:1;18621:15;18655:4;18652:1;18645:15;18672:85;18717:7;18746:5;18735:16;;18672:85;;;:::o;18763:158::-;18821:9;18854:61;18872:42;18881:32;18907:5;18881:32;:::i;:::-;18872:42;:::i;:::-;18854:61;:::i;:::-;18841:74;;18763:158;;;:::o;18927:147::-;19022:45;19061:5;19022:45;:::i;:::-;19017:3;19010:58;18927:147;;:::o;19080:114::-;19147:6;19181:5;19175:12;19165:22;;19080:114;;;:::o;19200:184::-;19299:11;19333:6;19328:3;19321:19;19373:4;19368:3;19364:14;19349:29;;19200:184;;;;:::o;19390:132::-;19457:4;19480:3;19472:11;;19510:4;19505:3;19501:14;19493:22;;19390:132;;;:::o;19528:108::-;19605:24;19623:5;19605:24;:::i;:::-;19600:3;19593:37;19528:108;;:::o;19642:179::-;19711:10;19732:46;19774:3;19766:6;19732:46;:::i;:::-;19810:4;19805:3;19801:14;19787:28;;19642:179;;;;:::o;19827:113::-;19897:4;19929;19924:3;19920:14;19912:22;;19827:113;;;:::o;19976:732::-;20095:3;20124:54;20172:5;20124:54;:::i;:::-;20194:86;20273:6;20268:3;20194:86;:::i;:::-;20187:93;;20304:56;20354:5;20304:56;:::i;:::-;20383:7;20414:1;20399:284;20424:6;20421:1;20418:13;20399:284;;;20500:6;20494:13;20527:63;20586:3;20571:13;20527:63;:::i;:::-;20520:70;;20613:60;20666:6;20613:60;:::i;:::-;20603:70;;20459:224;20446:1;20443;20439:9;20434:14;;20399:284;;;20403:14;20699:3;20692:10;;20100:608;;;19976:732;;;;:::o;20714:831::-;20977:4;21015:3;21004:9;21000:19;20992:27;;21029:71;21097:1;21086:9;21082:17;21073:6;21029:71;:::i;:::-;21110:80;21186:2;21175:9;21171:18;21162:6;21110:80;:::i;:::-;21237:9;21231:4;21227:20;21222:2;21211:9;21207:18;21200:48;21265:108;21368:4;21359:6;21265:108;:::i;:::-;21257:116;;21383:72;21451:2;21440:9;21436:18;21427:6;21383:72;:::i;:::-;21465:73;21533:3;21522:9;21518:19;21509:6;21465:73;:::i;:::-;20714:831;;;;;;;;:::o;21551:147::-;21652:11;21689:3;21674:18;;21551:147;;;;:::o;21704:114::-;;:::o;21824:398::-;21983:3;22004:83;22085:1;22080:3;22004:83;:::i;:::-;21997:90;;22096:93;22185:3;22096:93;:::i;:::-;22214:1;22209:3;22205:11;22198:18;;21824:398;;;:::o;22228:379::-;22412:3;22434:147;22577:3;22434:147;:::i;:::-;22427:154;;22598:3;22591:10;;22228:379;;;:::o;22613:180::-;22753:32;22749:1;22741:6;22737:14;22730:56;22613:180;:::o;22799:366::-;22941:3;22962:67;23026:2;23021:3;22962:67;:::i;:::-;22955:74;;23038:93;23127:3;23038:93;:::i;:::-;23156:2;23151:3;23147:12;23140:19;;22799:366;;;:::o;23171:419::-;23337:4;23375:2;23364:9;23360:18;23352:26;;23424:9;23418:4;23414:20;23410:1;23399:9;23395:17;23388:47;23452:131;23578:4;23452:131;:::i;:::-;23444:139;;23171:419;;;:::o;23596:807::-;23845:4;23883:3;23872:9;23868:19;23860:27;;23897:71;23965:1;23954:9;23950:17;23941:6;23897:71;:::i;:::-;23978:72;24046:2;24035:9;24031:18;24022:6;23978:72;:::i;:::-;24060:80;24136:2;24125:9;24121:18;24112:6;24060:80;:::i;:::-;24150;24226:2;24215:9;24211:18;24202:6;24150:80;:::i;:::-;24240:73;24308:3;24297:9;24293:19;24284:6;24240:73;:::i;:::-;24323;24391:3;24380:9;24376:19;24367:6;24323:73;:::i;:::-;23596:807;;;;;;;;;:::o;24409:143::-;24466:5;24497:6;24491:13;24482:22;;24513:33;24540:5;24513:33;:::i;:::-;24409:143;;;;:::o;24558:663::-;24646:6;24654;24662;24711:2;24699:9;24690:7;24686:23;24682:32;24679:119;;;24717:79;;:::i;:::-;24679:119;24837:1;24862:64;24918:7;24909:6;24898:9;24894:22;24862:64;:::i;:::-;24852:74;;24808:128;24975:2;25001:64;25057:7;25048:6;25037:9;25033:22;25001:64;:::i;:::-;24991:74;;24946:129;25114:2;25140:64;25196:7;25187:6;25176:9;25172:22;25140:64;:::i;:::-;25130:74;;25085:129;24558:663;;;;;:::o;25227:332::-;25348:4;25386:2;25375:9;25371:18;25363:26;;25399:71;25467:1;25456:9;25452:17;25443:6;25399:71;:::i;:::-;25480:72;25548:2;25537:9;25533:18;25524:6;25480:72;:::i;:::-;25227:332;;;;;:::o

Swarm Source

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