ETH Price: $3,895.92 (+0.29%)

Token

ERC-20: I fucking said you are a pussy ass hoe, go... (TALIBAN)
 

Overview

Max Total Supply

420,690,000,000,000 TALIBAN

Holders

151

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,071,827,524,648.458054351987482101 TALIBAN

Value
$0.00
0xc9B4edb7357b55142B1459f99645f0274Fa1ae9A
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:
TALIBAN

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
    $TALIBAN GANG

    T.me/WeDemBoyzPortal

    Twitter.com/TalibanSquad911

    https://talibaninthishoe.com/
*/

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

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

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

contract TALIBAN is IERC20, Auth {
    string private constant _name         = unicode"I fucking said you are a pussy ass hoe, got it? I’ll have YOU know we ran y’all bitch ass niggas out of Afghanistan. I was blowing y’all up to smithereens before sleepy Joe called it off and didn’t want you motherfuckers to keep dropping like flies so keep telling lies. And we ran your profile, you have 8 meals cooked and 3 bathrooms cleaned you pussy ass liar, why are you telling people you have 300 confirmed kills, we don’t kill and tell, we run the stat sheets. We got you beat. You’ve never even been on the field. I’ve been rocking an AK-47 since 13 years old protecting the homeland. Russia tried and got fucked! USA tried and got manhandled. What, y’all think y’all did something? Bitch ass nigga we them boys! Y’all motherfuckers can’t do anything except submit to the devil. I call you to islam, but until then we’re enemies. Buddy is talking about secret spies and some other bullshit about IP’s. You’re a keyboard warrior. Pussy ass nigga see me on the playing field. Bitch ass nigga we them boys, we took over the government and fucking televised it. Y’all niggas throwing money to Ukraine with nothing to show for it pussy ass nigga you not a navyseal, keep it real.";
    string private constant _symbol       = "TALIBAN";
    uint8 private constant _decimals      = 18;
    uint256 private constant _totalSupply = 420_690_000_000_000 * (10**_decimals);
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    address payable private _walletMarketing = payable(0xDD6c66e5dD9e8fFC67E824Cd307EA79b5758b597);
    uint256 private constant _taxSwapMin = _totalSupply *  1 / 10000;
    uint256 private constant _taxSwapMax = _totalSupply * 15 / 10000;
    uint256 private _maxTx;
    uint256 private _maxWallet;
    uint8 private _buyTaxRate;
    uint8 private _sellTaxRate;

    mapping (address => bool) private _noFees;
    mapping (address => bool) private _noLimits;
    mapping (address => bool) private _bots;

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

    uint256 private _antiSnipeBlock;
    bool private _tradingOpen;

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

    event TokensAirdropped(uint256 totalWallets, uint256 totalTokens);

    constructor() Auth(msg.sender) {
        address reservedWallet = address(0x92f964A2bcA69EA2aA0A62e01414B085665DA27F);
        _balances[reservedWallet] = _totalSupply * 120 / 1000;
        emit Transfer(address(0), reservedWallet, _balances[reservedWallet]);
        _balances[_owner] = _totalSupply - _balances[reservedWallet];
        emit Transfer(address(0), _owner, _balances[_owner]);

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

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

        _maxTx       = (_totalSupply * 5 / 1000) + (10**_decimals);
        _maxWallet   = (_totalSupply * 10 / 1000) + (10**_decimals);
        _buyTaxRate  = 2;
        _sellTaxRate = 3;
    }

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

    function taxBuy() external view returns (uint16) { return _buyTaxRate; }
    function taxSell() external view returns (uint16) { return _sellTaxRate; }
    function marketingWallet() external view returns (address) { return _walletMarketing; }
    function maxTransactionAmount() external view returns (uint256) { return _maxTx; }
    function maxWalletAmount() external view returns (uint256) { return _maxWallet; }
    function blacklists(address wallet) external view returns (bool) { return _bots[wallet]; }

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

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

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

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

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

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

    function _markSniper(address wallet) private {
        if ( !_isLP[wallet] && wallet != address(this) && wallet != _swapRouterAddress ) {
            _bots[wallet] = true; 
        }
    }

    function _antiSnipe(address from, address to) private returns (bool) {
        bool isSafe = true;
        if (block.number <= _antiSnipeBlock) {  // 3 blocks after adding liquidity
            if ( _isLP[from] || _bots[from] ) { _markSniper(to); }
        } else { isSafe = !_bots[from]; }
        return isSafe;
    }

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

        if (!_tradingOpen) { require(_noFees[sender], "Trading not open"); }
        else { require(_antiSnipe(sender, recipient), "Address restricted"); }

        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTax(); }

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

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

    function _limitCheck(address from, address to, uint256 amount) private view returns (bool) {
        bool txSize = true;
        if ( amount > _maxTx && !_noLimits[from] && !_noLimits[to] ) { txSize = false; }
        bool walletSize = true;
        uint256 newBalanceTo = _balances[to] + amount;
        if ( newBalanceTo > _maxWallet && !_noLimits[from] && !_noLimits[to] && !_isLP[to] ) { walletSize = false; } 
        return (txSize && walletSize);
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        uint256 taxBlock0 = _antiSnipeBlock; //  3 blocks after adding liquidity
        uint256 taxBlock1 = taxBlock0 + 12;   //  15 blocks after adding liquidity
        uint256 taxBlock2 = taxBlock1 + 35;   // 50 blocks after adding liquidity

        if ( _tradingOpen && !_noFees[sender] && !_noFees[recipient] ) { 
            uint8 taxRate;
            if ( _isLP[sender] ) {
                if (block.number > taxBlock2) { taxRate = _buyTaxRate; }
                else if (block.number > taxBlock1) { taxRate = 25; }
                else if (block.number > taxBlock0) { taxRate = 25; }
            } else if ( _isLP[recipient] ) {
                if (block.number > taxBlock2) { taxRate = _sellTaxRate; }
                else if (block.number > taxBlock1) { taxRate = 25; }
                else if (block.number > taxBlock0) { taxRate = 99; }
            }
            taxAmount = amount * taxRate / 100; 
        }
        return taxAmount;
    }

    function _swapTax() private lockTaxSwap {
        uint256 _tokensToSwap = balanceOf(address(this));
        if ( _tokensToSwap >= _taxSwapMin && _tradingOpen ) {
            if ( _tokensToSwap >= _taxSwapMax ) { _tokensToSwap = _taxSwapMax; }        
            _swapTaxTokensForEth(_tokensToSwap);
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { 
                (bool sent,) = _walletMarketing.call{value: _contractETHBalance}("");
            }
        }
    }

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

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

        uint256 airdropTotal = 0;
        for(uint i=0; i < addresses.length; i++){
            airdropTotal += (tokenAmounts[i] * 10**_decimals);
        }
        require(_balances[msg.sender] >= airdropTotal, "Token balance too low");

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

        emit TokensAirdropped(addresses.length, airdropTotal);
    }

    function blacklistBots(address[] calldata addresses, bool blacklisted) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){
            require(!_isLP[addresses[i]] && addresses[i] != _swapRouterAddress);
            _bots[addresses[i]] = blacklisted;
        }
    }

    function setLimits(uint16 maxTxPermille, uint16 maxWalletPermille) external onlyOwner {
        uint256 newMaxTx = _totalSupply * maxTxPermille / 1000;
        uint256 newMaxWallet = _totalSupply * maxWalletPermille / 1000; 
        require(newMaxTx >= _maxTx && newMaxWallet >= _maxWallet, "Cannot decrease limits");
        _maxTx = newMaxTx;
        _maxWallet = newMaxWallet;
    }

    function setTaxRates(uint8 taxBuyRate, uint8 taxSellRate) external onlyOwner {
        _buyTaxRate = taxBuyRate;
        _sellTaxRate = taxSellRate;
    }

    function setTaxWallet(address payable walletMarketing) external onlyOwner {
        require(!_isLP[walletMarketing] && walletMarketing != _swapRouterAddress && walletMarketing != address(this) && walletMarketing != address(0) );
        _noFees[walletMarketing] = true;
        _noLimits[walletMarketing] = true;
        _walletMarketing = walletMarketing;
    }
}


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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalWallets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"}],"name":"TokensAirdropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"blacklisted","type":"bool"}],"name":"blacklistBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"taxBuyRate","type":"uint8"},{"internalType":"uint8","name":"taxSellRate","type":"uint8"}],"name":"setTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"walletMarketing","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxBuy","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSell","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273dd6c66e5dd9e8ffc67e824cd307ea79b5758b597600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600e60016101000a81548160ff021916908315150217905550348015620000d657600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060007392f964a2bca69ea2aa0a62e01414b085665da27f90506103e860786012600a62000147919062000a26565b66017e9d8602b4006200015b919062000a77565b62000167919062000a77565b62000173919062000af1565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000255919062000b3a565b60405180910390a3600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546012600a620002ad919062000a26565b66017e9d8602b400620002c1919062000a77565b620002cd919062000b57565b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000411919062000b3a565b60405180910390a36001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506012600a62000797919062000a26565b6103e860056012600a620007ac919062000a26565b66017e9d8602b400620007c0919062000a77565b620007cc919062000a77565b620007d8919062000af1565b620007e4919062000b92565b6004819055506012600a620007fa919062000a26565b6103e8600a6012600a6200080f919062000a26565b66017e9d8602b40062000823919062000a77565b6200082f919062000a77565b6200083b919062000af1565b62000847919062000b92565b6005819055506002600660006101000a81548160ff021916908360ff1602179055506003600660016101000a81548160ff021916908360ff1602179055505062000bcd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200091a57808604811115620008f257620008f16200088c565b5b6001851615620009025780820291505b80810290506200091285620008bb565b9450620008d2565b94509492505050565b60008262000935576001905062000a08565b8162000945576000905062000a08565b81600181146200095e576002811462000969576200099f565b600191505062000a08565b60ff8411156200097e576200097d6200088c565b5b8360020a9150848211156200099857620009976200088c565b5b5062000a08565b5060208310610133831016604e8410600b8410161715620009d95782820a905083811115620009d357620009d26200088c565b5b62000a08565b620009e88484846001620008c8565b9250905081840481111562000a025762000a016200088c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a338262000a0f565b915062000a408362000a19565b925062000a6f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000923565b905092915050565b600062000a848262000a0f565b915062000a918362000a0f565b925082820262000aa18162000a0f565b9150828204841483151762000abb5762000aba6200088c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000afe8262000a0f565b915062000b0b8362000a0f565b92508262000b1e5762000b1d62000ac2565b5b828204905092915050565b62000b348162000a0f565b82525050565b600060208201905062000b51600083018462000b29565b92915050565b600062000b648262000a0f565b915062000b718362000a0f565b925082820390508181111562000b8c5762000b8b6200088c565b5b92915050565b600062000b9f8262000a0f565b915062000bac8362000a0f565b925082820190508082111562000bc75762000bc66200088c565b5b92915050565b6145708062000bdd6000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063aa4bde281161006f578063aa4bde281461046b578063c8c8ebe414610496578063dd62ed3e146104c1578063e8078d94146104fe578063ea414b2814610508578063fd965024146105315761014b565b806370a0823114610359578063715018a61461039657806375f0a874146103ad5780638da5cb5b146103d857806395d89b4114610403578063a9059cbb1461042e5761014b565b8063313ce56711610108578063313ce5671461025d578063368f48001461028857806339fba650146102b15780634790c321146102dc57806362290a931461030557806367243482146103305761014b565b806306fdde0314610150578063095ea7b31461017b57806316c02129146101b857806318160ddd146101f557806323b872dd146102205761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561055a565b6040516101729190612ee0565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612fa0565b61057d565b6040516101af9190612ffb565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190613016565b61066f565b6040516101ec9190612ffb565b60405180910390f35b34801561020157600080fd5b5061020a6106c5565b6040516102179190613052565b60405180910390f35b34801561022c57600080fd5b506102476004803603810190610242919061306d565b6106ec565b6040516102549190612ffb565b60405180910390f35b34801561026957600080fd5b506102726108f6565b60405161027f91906130dc565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190613131565b6108ff565b005b3480156102bd57600080fd5b506102c6610a74565b6040516102d39190613180565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe919061322c565b610a8e565b005b34801561031157600080fd5b5061031a610cb2565b6040516103279190613180565b60405180910390f35b34801561033c57600080fd5b50610357600480360381019061035291906132e2565b610ccc565b005b34801561036557600080fd5b50610380600480360381019061037b9190613016565b611124565b60405161038d9190613052565b60405180910390f35b3480156103a257600080fd5b506103ab61116d565b005b3480156103b957600080fd5b506103c2611276565b6040516103cf9190613372565b60405180910390f35b3480156103e457600080fd5b506103ed6112a0565b6040516103fa9190613372565b60405180910390f35b34801561040f57600080fd5b506104186112c9565b6040516104259190612ee0565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190612fa0565b611306565b6040516104629190612ffb565b60405180910390f35b34801561047757600080fd5b50610480611363565b60405161048d9190613052565b60405180910390f35b3480156104a257600080fd5b506104ab61136d565b6040516104b89190613052565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e3919061338d565b611377565b6040516104f59190613052565b60405180910390f35b6105066113fe565b005b34801561051457600080fd5b5061052f600480360381019061052a919061340b565b611944565b005b34801561053d57600080fd5b5061055860048036038101906105539190613464565b611bda565b005b6060604051806104e001604052806104bd815260200161407e6104bd9139905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161065d9190613052565b60405180910390a36001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006012600a6106d59190613606565b66017e9d8602b4006106e79190613651565b905090565b60006106f784611ca2565b610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d906136df565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108e25781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461086191906136ff565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108ed848484611d24565b90509392505050565b60006012905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109849061377f565b60405180910390fd5b60006103e88361ffff166012600a6109a59190613606565b66017e9d8602b4006109b79190613651565b6109c19190613651565b6109cb91906137ce565b905060006103e88361ffff166012600a6109e59190613606565b66017e9d8602b4006109f79190613651565b610a019190613651565b610a0b91906137ce565b90506004548210158015610a2157506005548110155b610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a579061384b565b60405180910390fd5b816004819055508060058190555050505050565b6000600660019054906101000a900460ff1660ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b139061377f565b60405180910390fd5b60005b83839050811015610cac57600c6000858584818110610b4157610b4061386b565b5b9050602002016020810190610b569190613016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610c125750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16848483818110610be457610be361386b565b5b9050602002016020810190610bf99190613016565b73ffffffffffffffffffffffffffffffffffffffff1614155b610c1b57600080fd5b8160096000868685818110610c3357610c3261386b565b5b9050602002016020810190610c489190613016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ca49061389a565b915050610b1f565b50505050565b6000600660009054906101000a900460ff1660ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d519061377f565b60405180910390fd5b60fa848490501115610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d989061392e565b60405180910390fd5b818190508484905014610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de09061399a565b60405180910390fd5b6000805b85859050811015610e4a576012600a610e069190613606565b848483818110610e1957610e1861386b565b5b90506020020135610e2a9190613651565b82610e3591906139ba565b91508080610e429061389a565b915050610ded565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490613a3a565b60405180910390fd5b60005b858590508110156110e0576012600a610ee99190613606565b848483818110610efc57610efb61386b565b5b90506020020135610f0d9190613651565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f5b91906136ff565b925050819055506012600a610f709190613606565b848483818110610f8357610f8261386b565b5b90506020020135610f949190613651565b60016000888885818110610fab57610faa61386b565b5b9050602002016020810190610fc09190613016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461100991906139ba565b925050819055508585828181106110235761102261386b565b5b90506020020160208101906110389190613016565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6110949190613606565b8787868181106110a7576110a661386b565b5b905060200201356110b89190613651565b6040516110c59190613052565b60405180910390a380806110d89061389a565b915050610ed0565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051611115929190613a5a565b60405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f29061377f565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163600060405161126c9190613372565b60405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f54414c4942414e00000000000000000000000000000000000000000000000000815250905090565b600061131133611ca2565b611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906136df565b60405180910390fd5b61135b338484611d24565b905092915050565b6000600554905090565b6000600454905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461148c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114839061377f565b60405180910390fd5b6001600e60016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f90613acf565b60405180910390fd5b600e60009054906101000a900460ff1615611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90613b3b565b60405180910390fd5b60003411806115975750600047115b6115d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cd90613ba7565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90613c13565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e99190613c48565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117969190613c48565b6040518363ffffffff1660e01b81526004016117b3929190613c75565b6020604051808303816000875af11580156117d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f69190613c48565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061187f600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476120d4565b6001600c6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060034361190691906139ba565b600d819055506001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c99061377f565b60405180910390fd5b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a6c5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa457503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611add5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611ae657600080fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f9061377f565b60405180910390fd5b81600660006101000a81548160ff021916908360ff16021790555080600660016101000a81548160ff021916908360ff1602179055505050565b600080600e60009054906101000a900460ff1615611cc35760019050611d1b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d1a57600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8b90613cea565b60405180910390fd5b611d9f8484846121ae565b611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd590613d56565b60405180910390fd5b600e60009054906101000a900460ff16611e8357600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e75906136df565b60405180910390fd5b611ecd565b611e8d84846123ec565b611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec390613dc2565b60405180910390fd5b5b600e60019054906101000a900460ff16158015611f335750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f4157611f4061250c565b5b6000611f4e8585856126cf565b905060008184611f5e91906136ff565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611faf91906136ff565b9250508190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461200591906139ba565b9250508190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461205b91906139ba565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516120bf9190613052565b60405180910390a36001925050509392505050565b6120dd82612914565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161216496959493929190613e27565b60606040518083038185885af1158015612182573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121a79190613e9d565b5050505050565b60008060019050600454831180156122105750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122665750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561227057600090505b600060019050600084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c391906139ba565b9050600554811180156123205750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123765750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123cc5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123d657600091505b8280156123e05750815b93505050509392505050565b60008060019050600d5443116124b157600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061249d5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124ac576124ab83612afe565b5b612502565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161590505b8091505092915050565b6001600e60016101000a81548160ff021916908315150217905550600061253230611124565b905061271060016012600a6125479190613606565b66017e9d8602b4006125599190613651565b6125639190613651565b61256d91906137ce565b81101580156125885750600e60009054906101000a900460ff165b156126b157612710600f6012600a6125a09190613606565b66017e9d8602b4006125b29190613651565b6125bc9190613651565b6125c691906137ce565b811061260857612710600f6012600a6125df9190613606565b66017e9d8602b4006125f19190613651565b6125fb9190613651565b61260591906137ce565b90505b61261181612c31565b600047905060008111156126af576000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161266790613f21565b60006040518083038185875af1925050503d80600081146126a4576040519150601f19603f3d011682016040523d82523d6000602084013e6126a9565b606091505b50509050505b505b506000600e60016101000a81548160ff021916908315150217905550565b6000806000600d5490506000600c826126e891906139ba565b905060006023826126f991906139ba565b9050600e60009054906101000a900460ff1680156127615750600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127b75750600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612906576000600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612854578143111561282f57600660009054906101000a900460ff16905061284f565b82431115612840576019905061284e565b8343111561284d57601990505b5b5b6128e7565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128e657814311156128c557600660019054906101000a900460ff1690506128e5565b824311156128d657601990506128e4565b834311156128e357606390505b5b5b5b5b60648160ff16886128f89190613651565b61290291906137ce565b9450505b839450505050509392505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612afb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051612af29190613052565b60405180910390a35b50565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b8457503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612bd05750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15612c2e576001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b612c3a81612914565b6000600267ffffffffffffffff811115612c5757612c56613f36565b5b604051908082528060200260200182016040528015612c855781602001602082028036833780820191505090505b5090503081600081518110612c9d57612c9c61386b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d689190613c48565b81600181518110612d7c57612d7b61386b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e1a959493929190614023565b600060405180830381600087803b158015612e3457600080fd5b505af1158015612e48573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e8a578082015181840152602081019050612e6f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612eb282612e50565b612ebc8185612e5b565b9350612ecc818560208601612e6c565b612ed581612e96565b840191505092915050565b60006020820190508181036000830152612efa8184612ea7565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f3782612f0c565b9050919050565b612f4781612f2c565b8114612f5257600080fd5b50565b600081359050612f6481612f3e565b92915050565b6000819050919050565b612f7d81612f6a565b8114612f8857600080fd5b50565b600081359050612f9a81612f74565b92915050565b60008060408385031215612fb757612fb6612f02565b5b6000612fc585828601612f55565b9250506020612fd685828601612f8b565b9150509250929050565b60008115159050919050565b612ff581612fe0565b82525050565b60006020820190506130106000830184612fec565b92915050565b60006020828403121561302c5761302b612f02565b5b600061303a84828501612f55565b91505092915050565b61304c81612f6a565b82525050565b60006020820190506130676000830184613043565b92915050565b60008060006060848603121561308657613085612f02565b5b600061309486828701612f55565b93505060206130a586828701612f55565b92505060406130b686828701612f8b565b9150509250925092565b600060ff82169050919050565b6130d6816130c0565b82525050565b60006020820190506130f160008301846130cd565b92915050565b600061ffff82169050919050565b61310e816130f7565b811461311957600080fd5b50565b60008135905061312b81613105565b92915050565b6000806040838503121561314857613147612f02565b5b60006131568582860161311c565b92505060206131678582860161311c565b9150509250929050565b61317a816130f7565b82525050565b60006020820190506131956000830184613171565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126131c0576131bf61319b565b5b8235905067ffffffffffffffff8111156131dd576131dc6131a0565b5b6020830191508360208202830111156131f9576131f86131a5565b5b9250929050565b61320981612fe0565b811461321457600080fd5b50565b60008135905061322681613200565b92915050565b60008060006040848603121561324557613244612f02565b5b600084013567ffffffffffffffff81111561326357613262612f07565b5b61326f868287016131aa565b9350935050602061328286828701613217565b9150509250925092565b60008083601f8401126132a2576132a161319b565b5b8235905067ffffffffffffffff8111156132bf576132be6131a0565b5b6020830191508360208202830111156132db576132da6131a5565b5b9250929050565b600080600080604085870312156132fc576132fb612f02565b5b600085013567ffffffffffffffff81111561331a57613319612f07565b5b613326878288016131aa565b9450945050602085013567ffffffffffffffff81111561334957613348612f07565b5b6133558782880161328c565b925092505092959194509250565b61336c81612f2c565b82525050565b60006020820190506133876000830184613363565b92915050565b600080604083850312156133a4576133a3612f02565b5b60006133b285828601612f55565b92505060206133c385828601612f55565b9150509250929050565b60006133d882612f0c565b9050919050565b6133e8816133cd565b81146133f357600080fd5b50565b600081359050613405816133df565b92915050565b60006020828403121561342157613420612f02565b5b600061342f848285016133f6565b91505092915050565b613441816130c0565b811461344c57600080fd5b50565b60008135905061345e81613438565b92915050565b6000806040838503121561347b5761347a612f02565b5b60006134898582860161344f565b925050602061349a8582860161344f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561352a57808604811115613506576135056134a4565b5b60018516156135155780820291505b8081029050613523856134d3565b94506134ea565b94509492505050565b60008261354357600190506135ff565b8161355157600090506135ff565b81600181146135675760028114613571576135a0565b60019150506135ff565b60ff841115613583576135826134a4565b5b8360020a91508482111561359a576135996134a4565b5b506135ff565b5060208310610133831016604e8410600b84101617156135d55782820a9050838111156135d0576135cf6134a4565b5b6135ff565b6135e284848460016134e0565b925090508184048111156135f9576135f86134a4565b5b81810290505b9392505050565b600061361182612f6a565b915061361c836130c0565b92506136497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613533565b905092915050565b600061365c82612f6a565b915061366783612f6a565b925082820261367581612f6a565b9150828204841483151761368c5761368b6134a4565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006136c9601083612e5b565b91506136d482613693565b602082019050919050565b600060208201905081810360008301526136f8816136bc565b9050919050565b600061370a82612f6a565b915061371583612f6a565b925082820390508181111561372d5761372c6134a4565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000613769601883612e5b565b915061377482613733565b602082019050919050565b600060208201905081810360008301526137988161375c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137d982612f6a565b91506137e483612f6a565b9250826137f4576137f361379f565b5b828204905092915050565b7f43616e6e6f74206465637265617365206c696d69747300000000000000000000600082015250565b6000613835601683612e5b565b9150613840826137ff565b602082019050919050565b6000602082019050818103600083015261386481613828565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006138a582612f6a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138d7576138d66134a4565b5b600182019050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b6000613918601583612e5b565b9150613923826138e2565b602082019050919050565b600060208201905081810360008301526139478161390b565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b6000613984601483612e5b565b915061398f8261394e565b602082019050919050565b600060208201905081810360008301526139b381613977565b9050919050565b60006139c582612f6a565b91506139d083612f6a565b92508282019050808211156139e8576139e76134a4565b5b92915050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000613a24601583612e5b565b9150613a2f826139ee565b602082019050919050565b60006020820190508181036000830152613a5381613a17565b9050919050565b6000604082019050613a6f6000830185613043565b613a7c6020830184613043565b9392505050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000613ab9600983612e5b565b9150613ac482613a83565b602082019050919050565b60006020820190508181036000830152613ae881613aac565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000613b25600f83612e5b565b9150613b3082613aef565b602082019050919050565b60006020820190508181036000830152613b5481613b18565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000613b91601d83612e5b565b9150613b9c82613b5b565b602082019050919050565b60006020820190508181036000830152613bc081613b84565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000613bfd601583612e5b565b9150613c0882613bc7565b602082019050919050565b60006020820190508181036000830152613c2c81613bf0565b9050919050565b600081519050613c4281612f3e565b92915050565b600060208284031215613c5e57613c5d612f02565b5b6000613c6c84828501613c33565b91505092915050565b6000604082019050613c8a6000830185613363565b613c976020830184613363565b9392505050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000613cd4601d83612e5b565b9150613cdf82613c9e565b602082019050919050565b60006020820190508181036000830152613d0381613cc7565b9050919050565b7f4c696d6974732065786365656465640000000000000000000000000000000000600082015250565b6000613d40600f83612e5b565b9150613d4b82613d0a565b602082019050919050565b60006020820190508181036000830152613d6f81613d33565b9050919050565b7f4164647265737320726573747269637465640000000000000000000000000000600082015250565b6000613dac601283612e5b565b9150613db782613d76565b602082019050919050565b60006020820190508181036000830152613ddb81613d9f565b9050919050565b6000819050919050565b6000819050919050565b6000613e11613e0c613e0784613de2565b613dec565b612f6a565b9050919050565b613e2181613df6565b82525050565b600060c082019050613e3c6000830189613363565b613e496020830188613043565b613e566040830187613e18565b613e636060830186613e18565b613e706080830185613363565b613e7d60a0830184613043565b979650505050505050565b600081519050613e9781612f74565b92915050565b600080600060608486031215613eb657613eb5612f02565b5b6000613ec486828701613e88565b9350506020613ed586828701613e88565b9250506040613ee686828701613e88565b9150509250925092565b600081905092915050565b50565b6000613f0b600083613ef0565b9150613f1682613efb565b600082019050919050565b6000613f2c82613efe565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f9a81612f2c565b82525050565b6000613fac8383613f91565b60208301905092915050565b6000602082019050919050565b6000613fd082613f65565b613fda8185613f70565b9350613fe583613f81565b8060005b83811015614016578151613ffd8882613fa0565b975061400883613fb8565b925050600181019050613fe9565b5085935050505092915050565b600060a0820190506140386000830188613043565b6140456020830187613e18565b81810360408301526140578186613fc5565b90506140666060830185613363565b6140736080830184613043565b969550505050505056fe49206675636b696e67207361696420796f752061726520612070757373792061737320686f652c20676f742069743f2049e280996c6c206861766520594f55206b6e6f772077652072616e2079e28099616c6c20626974636820617373206e6967676173206f7574206f662041666768616e697374616e2e20492077617320626c6f77696e672079e28099616c6c20757020746f20736d697468657265656e73206265666f726520736c65657079204a6f652063616c6c6564206974206f666620616e64206469646ee28099742077616e7420796f75206d6f746865726675636b65727320746f206b6565702064726f7070696e67206c696b6520666c69657320736f206b6565702074656c6c696e67206c6965732e20416e642077652072616e20796f75722070726f66696c652c20796f7520686176652038206d65616c7320636f6f6b656420616e6420332062617468726f6f6d7320636c65616e656420796f7520707573737920617373206c6961722c207768792061726520796f752074656c6c696e672070656f706c6520796f7520686176652033303020636f6e6669726d6564206b696c6c732c20776520646f6ee2809974206b696c6c20616e642074656c6c2c2077652072756e207468652073746174207368656574732e20576520676f7420796f7520626561742e20596f75e280997665206e65766572206576656e206265656e206f6e20746865206669656c642e2049e280997665206265656e20726f636b696e6720616e20414b2d34372073696e6365203133207965617273206f6c642070726f74656374696e672074686520686f6d656c616e642e2052757373696120747269656420616e6420676f74206675636b6564212055534120747269656420616e6420676f74206d616e68616e646c65642e20576861742c2079e28099616c6c207468696e6b2079e28099616c6c2064696420736f6d657468696e673f20426974636820617373206e69676761207765207468656d20626f7973212059e28099616c6c206d6f746865726675636b6572732063616ee280997420646f20616e797468696e6720657863657074207375626d697420746f2074686520646576696c2e20492063616c6c20796f7520746f2069736c616d2c2062757420756e74696c207468656e207765e28099726520656e656d6965732e2042756464792069732074616c6b696e672061626f75742073656372657420737069657320616e6420736f6d65206f746865722062756c6c736869742061626f7574204950e28099732e20596f75e2809972652061206b6579626f6172642077617272696f722e20507573737920617373206e6967676120736565206d65206f6e2074686520706c6179696e67206669656c642e20426974636820617373206e69676761207765207468656d20626f79732c20776520746f6f6b206f7665722074686520676f7665726e6d656e7420616e64206675636b696e672074656c6576697365642069742e2059e28099616c6c206e6967676173207468726f77696e67206d6f6e657920746f20556b7261696e652077697468206e6f7468696e6720746f2073686f7720666f7220697420707573737920617373206e6967676120796f75206e6f742061206e6176797365616c2c206b656570206974207265616c2ea26469706673582212205e66425603daa6083254444fd3522ec860690de7ede6ec5c07ad3e226b3f832b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806370a08231116100b6578063aa4bde281161006f578063aa4bde281461046b578063c8c8ebe414610496578063dd62ed3e146104c1578063e8078d94146104fe578063ea414b2814610508578063fd965024146105315761014b565b806370a0823114610359578063715018a61461039657806375f0a874146103ad5780638da5cb5b146103d857806395d89b4114610403578063a9059cbb1461042e5761014b565b8063313ce56711610108578063313ce5671461025d578063368f48001461028857806339fba650146102b15780634790c321146102dc57806362290a931461030557806367243482146103305761014b565b806306fdde0314610150578063095ea7b31461017b57806316c02129146101b857806318160ddd146101f557806323b872dd146102205761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561055a565b6040516101729190612ee0565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612fa0565b61057d565b6040516101af9190612ffb565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190613016565b61066f565b6040516101ec9190612ffb565b60405180910390f35b34801561020157600080fd5b5061020a6106c5565b6040516102179190613052565b60405180910390f35b34801561022c57600080fd5b506102476004803603810190610242919061306d565b6106ec565b6040516102549190612ffb565b60405180910390f35b34801561026957600080fd5b506102726108f6565b60405161027f91906130dc565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190613131565b6108ff565b005b3480156102bd57600080fd5b506102c6610a74565b6040516102d39190613180565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe919061322c565b610a8e565b005b34801561031157600080fd5b5061031a610cb2565b6040516103279190613180565b60405180910390f35b34801561033c57600080fd5b50610357600480360381019061035291906132e2565b610ccc565b005b34801561036557600080fd5b50610380600480360381019061037b9190613016565b611124565b60405161038d9190613052565b60405180910390f35b3480156103a257600080fd5b506103ab61116d565b005b3480156103b957600080fd5b506103c2611276565b6040516103cf9190613372565b60405180910390f35b3480156103e457600080fd5b506103ed6112a0565b6040516103fa9190613372565b60405180910390f35b34801561040f57600080fd5b506104186112c9565b6040516104259190612ee0565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190612fa0565b611306565b6040516104629190612ffb565b60405180910390f35b34801561047757600080fd5b50610480611363565b60405161048d9190613052565b60405180910390f35b3480156104a257600080fd5b506104ab61136d565b6040516104b89190613052565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e3919061338d565b611377565b6040516104f59190613052565b60405180910390f35b6105066113fe565b005b34801561051457600080fd5b5061052f600480360381019061052a919061340b565b611944565b005b34801561053d57600080fd5b5061055860048036038101906105539190613464565b611bda565b005b6060604051806104e001604052806104bd815260200161407e6104bd9139905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161065d9190613052565b60405180910390a36001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006012600a6106d59190613606565b66017e9d8602b4006106e79190613651565b905090565b60006106f784611ca2565b610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d906136df565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108e25781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461086191906136ff565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108ed848484611d24565b90509392505050565b60006012905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109849061377f565b60405180910390fd5b60006103e88361ffff166012600a6109a59190613606565b66017e9d8602b4006109b79190613651565b6109c19190613651565b6109cb91906137ce565b905060006103e88361ffff166012600a6109e59190613606565b66017e9d8602b4006109f79190613651565b610a019190613651565b610a0b91906137ce565b90506004548210158015610a2157506005548110155b610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a579061384b565b60405180910390fd5b816004819055508060058190555050505050565b6000600660019054906101000a900460ff1660ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b139061377f565b60405180910390fd5b60005b83839050811015610cac57600c6000858584818110610b4157610b4061386b565b5b9050602002016020810190610b569190613016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610c125750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16848483818110610be457610be361386b565b5b9050602002016020810190610bf99190613016565b73ffffffffffffffffffffffffffffffffffffffff1614155b610c1b57600080fd5b8160096000868685818110610c3357610c3261386b565b5b9050602002016020810190610c489190613016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ca49061389a565b915050610b1f565b50505050565b6000600660009054906101000a900460ff1660ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d519061377f565b60405180910390fd5b60fa848490501115610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d989061392e565b60405180910390fd5b818190508484905014610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de09061399a565b60405180910390fd5b6000805b85859050811015610e4a576012600a610e069190613606565b848483818110610e1957610e1861386b565b5b90506020020135610e2a9190613651565b82610e3591906139ba565b91508080610e429061389a565b915050610ded565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490613a3a565b60405180910390fd5b60005b858590508110156110e0576012600a610ee99190613606565b848483818110610efc57610efb61386b565b5b90506020020135610f0d9190613651565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f5b91906136ff565b925050819055506012600a610f709190613606565b848483818110610f8357610f8261386b565b5b90506020020135610f949190613651565b60016000888885818110610fab57610faa61386b565b5b9050602002016020810190610fc09190613016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461100991906139ba565b925050819055508585828181106110235761102261386b565b5b90506020020160208101906110389190613016565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6110949190613606565b8787868181106110a7576110a661386b565b5b905060200201356110b89190613651565b6040516110c59190613052565b60405180910390a380806110d89061389a565b915050610ed0565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051611115929190613a5a565b60405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f29061377f565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163600060405161126c9190613372565b60405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f54414c4942414e00000000000000000000000000000000000000000000000000815250905090565b600061131133611ca2565b611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906136df565b60405180910390fd5b61135b338484611d24565b905092915050565b6000600554905090565b6000600454905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461148c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114839061377f565b60405180910390fd5b6001600e60016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f90613acf565b60405180910390fd5b600e60009054906101000a900460ff1615611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90613b3b565b60405180910390fd5b60003411806115975750600047115b6115d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cd90613ba7565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90613c13565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e99190613c48565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117969190613c48565b6040518363ffffffff1660e01b81526004016117b3929190613c75565b6020604051808303816000875af11580156117d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f69190613c48565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061187f600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476120d4565b6001600c6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060034361190691906139ba565b600d819055506001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c99061377f565b60405180910390fd5b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a6c5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa457503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611add5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611ae657600080fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f9061377f565b60405180910390fd5b81600660006101000a81548160ff021916908360ff16021790555080600660016101000a81548160ff021916908360ff1602179055505050565b600080600e60009054906101000a900460ff1615611cc35760019050611d1b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d1a57600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8b90613cea565b60405180910390fd5b611d9f8484846121ae565b611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd590613d56565b60405180910390fd5b600e60009054906101000a900460ff16611e8357600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e75906136df565b60405180910390fd5b611ecd565b611e8d84846123ec565b611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec390613dc2565b60405180910390fd5b5b600e60019054906101000a900460ff16158015611f335750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f4157611f4061250c565b5b6000611f4e8585856126cf565b905060008184611f5e91906136ff565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611faf91906136ff565b9250508190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461200591906139ba565b9250508190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461205b91906139ba565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516120bf9190613052565b60405180910390a36001925050509392505050565b6120dd82612914565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161216496959493929190613e27565b60606040518083038185885af1158015612182573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121a79190613e9d565b5050505050565b60008060019050600454831180156122105750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122665750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561227057600090505b600060019050600084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c391906139ba565b9050600554811180156123205750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123765750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123cc5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123d657600091505b8280156123e05750815b93505050509392505050565b60008060019050600d5443116124b157600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061249d5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124ac576124ab83612afe565b5b612502565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161590505b8091505092915050565b6001600e60016101000a81548160ff021916908315150217905550600061253230611124565b905061271060016012600a6125479190613606565b66017e9d8602b4006125599190613651565b6125639190613651565b61256d91906137ce565b81101580156125885750600e60009054906101000a900460ff165b156126b157612710600f6012600a6125a09190613606565b66017e9d8602b4006125b29190613651565b6125bc9190613651565b6125c691906137ce565b811061260857612710600f6012600a6125df9190613606565b66017e9d8602b4006125f19190613651565b6125fb9190613651565b61260591906137ce565b90505b61261181612c31565b600047905060008111156126af576000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161266790613f21565b60006040518083038185875af1925050503d80600081146126a4576040519150601f19603f3d011682016040523d82523d6000602084013e6126a9565b606091505b50509050505b505b506000600e60016101000a81548160ff021916908315150217905550565b6000806000600d5490506000600c826126e891906139ba565b905060006023826126f991906139ba565b9050600e60009054906101000a900460ff1680156127615750600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127b75750600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612906576000600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612854578143111561282f57600660009054906101000a900460ff16905061284f565b82431115612840576019905061284e565b8343111561284d57601990505b5b5b6128e7565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128e657814311156128c557600660019054906101000a900460ff1690506128e5565b824311156128d657601990506128e4565b834311156128e357606390505b5b5b5b5b60648160ff16886128f89190613651565b61290291906137ce565b9450505b839450505050509392505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612afb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051612af29190613052565b60405180910390a35b50565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b8457503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612bd05750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15612c2e576001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b612c3a81612914565b6000600267ffffffffffffffff811115612c5757612c56613f36565b5b604051908082528060200260200182016040528015612c855781602001602082028036833780820191505090505b5090503081600081518110612c9d57612c9c61386b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d689190613c48565b81600181518110612d7c57612d7b61386b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e1a959493929190614023565b600060405180830381600087803b158015612e3457600080fd5b505af1158015612e48573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e8a578082015181840152602081019050612e6f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612eb282612e50565b612ebc8185612e5b565b9350612ecc818560208601612e6c565b612ed581612e96565b840191505092915050565b60006020820190508181036000830152612efa8184612ea7565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f3782612f0c565b9050919050565b612f4781612f2c565b8114612f5257600080fd5b50565b600081359050612f6481612f3e565b92915050565b6000819050919050565b612f7d81612f6a565b8114612f8857600080fd5b50565b600081359050612f9a81612f74565b92915050565b60008060408385031215612fb757612fb6612f02565b5b6000612fc585828601612f55565b9250506020612fd685828601612f8b565b9150509250929050565b60008115159050919050565b612ff581612fe0565b82525050565b60006020820190506130106000830184612fec565b92915050565b60006020828403121561302c5761302b612f02565b5b600061303a84828501612f55565b91505092915050565b61304c81612f6a565b82525050565b60006020820190506130676000830184613043565b92915050565b60008060006060848603121561308657613085612f02565b5b600061309486828701612f55565b93505060206130a586828701612f55565b92505060406130b686828701612f8b565b9150509250925092565b600060ff82169050919050565b6130d6816130c0565b82525050565b60006020820190506130f160008301846130cd565b92915050565b600061ffff82169050919050565b61310e816130f7565b811461311957600080fd5b50565b60008135905061312b81613105565b92915050565b6000806040838503121561314857613147612f02565b5b60006131568582860161311c565b92505060206131678582860161311c565b9150509250929050565b61317a816130f7565b82525050565b60006020820190506131956000830184613171565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126131c0576131bf61319b565b5b8235905067ffffffffffffffff8111156131dd576131dc6131a0565b5b6020830191508360208202830111156131f9576131f86131a5565b5b9250929050565b61320981612fe0565b811461321457600080fd5b50565b60008135905061322681613200565b92915050565b60008060006040848603121561324557613244612f02565b5b600084013567ffffffffffffffff81111561326357613262612f07565b5b61326f868287016131aa565b9350935050602061328286828701613217565b9150509250925092565b60008083601f8401126132a2576132a161319b565b5b8235905067ffffffffffffffff8111156132bf576132be6131a0565b5b6020830191508360208202830111156132db576132da6131a5565b5b9250929050565b600080600080604085870312156132fc576132fb612f02565b5b600085013567ffffffffffffffff81111561331a57613319612f07565b5b613326878288016131aa565b9450945050602085013567ffffffffffffffff81111561334957613348612f07565b5b6133558782880161328c565b925092505092959194509250565b61336c81612f2c565b82525050565b60006020820190506133876000830184613363565b92915050565b600080604083850312156133a4576133a3612f02565b5b60006133b285828601612f55565b92505060206133c385828601612f55565b9150509250929050565b60006133d882612f0c565b9050919050565b6133e8816133cd565b81146133f357600080fd5b50565b600081359050613405816133df565b92915050565b60006020828403121561342157613420612f02565b5b600061342f848285016133f6565b91505092915050565b613441816130c0565b811461344c57600080fd5b50565b60008135905061345e81613438565b92915050565b6000806040838503121561347b5761347a612f02565b5b60006134898582860161344f565b925050602061349a8582860161344f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561352a57808604811115613506576135056134a4565b5b60018516156135155780820291505b8081029050613523856134d3565b94506134ea565b94509492505050565b60008261354357600190506135ff565b8161355157600090506135ff565b81600181146135675760028114613571576135a0565b60019150506135ff565b60ff841115613583576135826134a4565b5b8360020a91508482111561359a576135996134a4565b5b506135ff565b5060208310610133831016604e8410600b84101617156135d55782820a9050838111156135d0576135cf6134a4565b5b6135ff565b6135e284848460016134e0565b925090508184048111156135f9576135f86134a4565b5b81810290505b9392505050565b600061361182612f6a565b915061361c836130c0565b92506136497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613533565b905092915050565b600061365c82612f6a565b915061366783612f6a565b925082820261367581612f6a565b9150828204841483151761368c5761368b6134a4565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006136c9601083612e5b565b91506136d482613693565b602082019050919050565b600060208201905081810360008301526136f8816136bc565b9050919050565b600061370a82612f6a565b915061371583612f6a565b925082820390508181111561372d5761372c6134a4565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000613769601883612e5b565b915061377482613733565b602082019050919050565b600060208201905081810360008301526137988161375c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137d982612f6a565b91506137e483612f6a565b9250826137f4576137f361379f565b5b828204905092915050565b7f43616e6e6f74206465637265617365206c696d69747300000000000000000000600082015250565b6000613835601683612e5b565b9150613840826137ff565b602082019050919050565b6000602082019050818103600083015261386481613828565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006138a582612f6a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138d7576138d66134a4565b5b600182019050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b6000613918601583612e5b565b9150613923826138e2565b602082019050919050565b600060208201905081810360008301526139478161390b565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b6000613984601483612e5b565b915061398f8261394e565b602082019050919050565b600060208201905081810360008301526139b381613977565b9050919050565b60006139c582612f6a565b91506139d083612f6a565b92508282019050808211156139e8576139e76134a4565b5b92915050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000613a24601583612e5b565b9150613a2f826139ee565b602082019050919050565b60006020820190508181036000830152613a5381613a17565b9050919050565b6000604082019050613a6f6000830185613043565b613a7c6020830184613043565b9392505050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000613ab9600983612e5b565b9150613ac482613a83565b602082019050919050565b60006020820190508181036000830152613ae881613aac565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000613b25600f83612e5b565b9150613b3082613aef565b602082019050919050565b60006020820190508181036000830152613b5481613b18565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000613b91601d83612e5b565b9150613b9c82613b5b565b602082019050919050565b60006020820190508181036000830152613bc081613b84565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000613bfd601583612e5b565b9150613c0882613bc7565b602082019050919050565b60006020820190508181036000830152613c2c81613bf0565b9050919050565b600081519050613c4281612f3e565b92915050565b600060208284031215613c5e57613c5d612f02565b5b6000613c6c84828501613c33565b91505092915050565b6000604082019050613c8a6000830185613363565b613c976020830184613363565b9392505050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000613cd4601d83612e5b565b9150613cdf82613c9e565b602082019050919050565b60006020820190508181036000830152613d0381613cc7565b9050919050565b7f4c696d6974732065786365656465640000000000000000000000000000000000600082015250565b6000613d40600f83612e5b565b9150613d4b82613d0a565b602082019050919050565b60006020820190508181036000830152613d6f81613d33565b9050919050565b7f4164647265737320726573747269637465640000000000000000000000000000600082015250565b6000613dac601283612e5b565b9150613db782613d76565b602082019050919050565b60006020820190508181036000830152613ddb81613d9f565b9050919050565b6000819050919050565b6000819050919050565b6000613e11613e0c613e0784613de2565b613dec565b612f6a565b9050919050565b613e2181613df6565b82525050565b600060c082019050613e3c6000830189613363565b613e496020830188613043565b613e566040830187613e18565b613e636060830186613e18565b613e706080830185613363565b613e7d60a0830184613043565b979650505050505050565b600081519050613e9781612f74565b92915050565b600080600060608486031215613eb657613eb5612f02565b5b6000613ec486828701613e88565b9350506020613ed586828701613e88565b9250506040613ee686828701613e88565b9150509250925092565b600081905092915050565b50565b6000613f0b600083613ef0565b9150613f1682613efb565b600082019050919050565b6000613f2c82613efe565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f9a81612f2c565b82525050565b6000613fac8383613f91565b60208301905092915050565b6000602082019050919050565b6000613fd082613f65565b613fda8185613f70565b9350613fe583613f81565b8060005b83811015614016578151613ffd8882613fa0565b975061400883613fb8565b925050600181019050613fe9565b5085935050505092915050565b600060a0820190506140386000830188613043565b6140456020830187613e18565b81810360408301526140578186613fc5565b90506140666060830185613363565b6140736080830184613043565b969550505050505056fe49206675636b696e67207361696420796f752061726520612070757373792061737320686f652c20676f742069743f2049e280996c6c206861766520594f55206b6e6f772077652072616e2079e28099616c6c20626974636820617373206e6967676173206f7574206f662041666768616e697374616e2e20492077617320626c6f77696e672079e28099616c6c20757020746f20736d697468657265656e73206265666f726520736c65657079204a6f652063616c6c6564206974206f666620616e64206469646ee28099742077616e7420796f75206d6f746865726675636b65727320746f206b6565702064726f7070696e67206c696b6520666c69657320736f206b6565702074656c6c696e67206c6965732e20416e642077652072616e20796f75722070726f66696c652c20796f7520686176652038206d65616c7320636f6f6b656420616e6420332062617468726f6f6d7320636c65616e656420796f7520707573737920617373206c6961722c207768792061726520796f752074656c6c696e672070656f706c6520796f7520686176652033303020636f6e6669726d6564206b696c6c732c20776520646f6ee2809974206b696c6c20616e642074656c6c2c2077652072756e207468652073746174207368656574732e20576520676f7420796f7520626561742e20596f75e280997665206e65766572206576656e206265656e206f6e20746865206669656c642e2049e280997665206265656e20726f636b696e6720616e20414b2d34372073696e6365203133207965617273206f6c642070726f74656374696e672074686520686f6d656c616e642e2052757373696120747269656420616e6420676f74206675636b6564212055534120747269656420616e6420676f74206d616e68616e646c65642e20576861742c2079e28099616c6c207468696e6b2079e28099616c6c2064696420736f6d657468696e673f20426974636820617373206e69676761207765207468656d20626f7973212059e28099616c6c206d6f746865726675636b6572732063616ee280997420646f20616e797468696e6720657863657074207375626d697420746f2074686520646576696c2e20492063616c6c20796f7520746f2069736c616d2c2062757420756e74696c207468656e207765e28099726520656e656d6965732e2042756464792069732074616c6b696e672061626f75742073656372657420737069657320616e6420736f6d65206f746865722062756c6c736869742061626f7574204950e28099732e20596f75e2809972652061206b6579626f6172642077617272696f722e20507573737920617373206e6967676120736565206d65206f6e2074686520706c6179696e67206669656c642e20426974636820617373206e69676761207765207468656d20626f79732c20776520746f6f6b206f7665722074686520676f7665726e6d656e7420616e64206675636b696e672074656c6576697365642069742e2059e28099616c6c206e6967676173207468726f77696e67206d6f6e657920746f20556b7261696e652077697468206e6f7468696e6720746f2073686f7720666f7220697420707573737920617373206e6967676120796f75206e6f742061206e6176797365616c2c206b656570206974207265616c2ea26469706673582212205e66425603daa6083254444fd3522ec860690de7ede6ec5c07ad3e226b3f832b64736f6c63430008130033

Deployed Bytecode Sourcemap

1526:13225:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5496:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6358:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6260:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5226:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6815:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5320:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13817:391;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5912:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13519:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5834:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12635:876;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5582:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1382:137;;;;;;;;;;;;;:::i;:::-;;5992:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1311:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5406:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6582:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6173:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6085:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5693:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7552:686;;;:::i;:::-;;14381:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14216:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5496:80;5544:13;5568:5;;;;;;;;;;;;;;;;;5561:12;;5496:80;:::o;6358:216::-;6433:4;6485:6;6450:11;:23;6462:10;6450:23;;;;;;;;;;;;;;;:32;6474:7;6450:32;;;;;;;;;;;;;;;:41;;;;6528:7;6507:37;;6516:10;6507:37;;;6537:6;6507:37;;;;;;:::i;:::-;;;;;;;;6562:4;6555:11;;6358:216;;;;:::o;6260:90::-;6319:4;6334:5;:13;6340:6;6334:13;;;;;;;;;;;;;;;;;;;;;;;;;6327:20;;6260:90;;;:::o;5226:88::-;5281:7;2931:2;3003;:13;;;;:::i;:::-;2980:19;:37;;;;:::i;:::-;5292:19;;5226:88;:::o;6815:404::-;6915:4;6940:25;6958:6;6940:17;:25::i;:::-;6932:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;7035:17;7000:11;:19;7012:6;7000:19;;;;;;;;;;;;;;;:31;7020:10;7000:31;;;;;;;;;;;;;;;;:52;6997:157;;7136:6;7102:11;:19;7114:6;7102:19;;;;;;;;;;;;;;;:31;7122:10;7102:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;7068:11;:19;7080:6;7068:19;;;;;;;;;;;;;;;:31;7088:10;7068:31;;;;;;;;;;;;;;;:74;;;;6997:157;7171:40;7185:6;7193:9;7204:6;7171:13;:40::i;:::-;7164:47;;6815:404;;;;;:::o;5320:80::-;5372:5;2931:2;5381:16;;5320:80;:::o;13817:391::-;1264:6;;;;;;;;;;1250:20;;:10;:20;;;1242:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13914:16:::1;13964:4;13948:13;13933:28;;2931:2;3003;:13;;;;:::i;:::-;2980:19;:37;;;;:::i;:::-;13933:28;;;;:::i;:::-;:35;;;;:::i;:::-;13914:54;;13979:20;14037:4;14017:17;14002:32;;2931:2;3003;:13;;;;:::i;:::-;2980:19;:37;;;;:::i;:::-;14002:32;;;;:::i;:::-;:39;;;;:::i;:::-;13979:62;;14073:6;;14061:8;:18;;:48;;;;;14099:10;;14083:12;:26;;14061:48;14053:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;14156:8;14147:6;:17;;;;14188:12;14175:10;:25;;;;13903:305;;13817:391:::0;;:::o;5912:74::-;5954:6;5971:12;;;;;;;;;;;5964:19;;;;5912:74;:::o;13519:290::-;1264:6;;;;;;;;;;1250:20;;:10;:20;;;1242:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13624:6:::1;13620:182;13638:9;;:16;;13634:1;:20;13620:182;;;13684:5;:19;13690:9;;13700:1;13690:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13684:19;;;;;;;;;;;;;;;;;;;;;;;;;13683:20;:58;;;;;3727:42;13707:34;;:9;;13717:1;13707:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:34;;;;13683:58;13675:67;;;::::0;::::1;;13779:11;13757:5;:19;13763:9;;13773:1;13763:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13757:19;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13656:3;;;;;:::i;:::-;;;;13620:182;;;;13519:290:::0;;;:::o;5834:72::-;5875:6;5892:11;;;;;;;;;;;5885:18;;;;5834:72;:::o;12635:876::-;1264:6;;;;;;;;;;1250:20;;:10;:20;;;1242:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12773:3:::1;12753:9;;:16;;:23;;12745:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;12840:12;;:19;;12820:9;;:16;;:39;12812:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12896:20;12935:6:::0;12931:116:::1;12949:9;;:16;;12945:1;:20;12931:116;;;2931:2;13021;:13;;;;:::i;:::-;13003:12;;13016:1;13003:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;12986:49;;;;;:::i;:::-;;;12967:3;;;;;:::i;:::-;;;;12931:116;;;;13090:12;13065:9;:21;13075:10;13065:21;;;;;;;;;;;;;;;;:37;;13057:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13145:6;13141:297;13159:9;;:16;;13155:1;:20;13141:297;;;2931:2;13240;:13;;;;:::i;:::-;13222:12;;13235:1;13222:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;13196:9;:21;13206:10;13196:21;;;;;;;;;;;;;;;;:58;;;;;;;:::i;:::-;;;;;;;;2931:2;13315;:13;;;;:::i;:::-;13297:12;;13310:1;13297:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;13269:9;:23;13279:9;;13289:1;13279:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13269:23;;;;;;;;;;;;;;;;:60;;;;;;;:::i;:::-;;;;;;;;13370:9;;13380:1;13370:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13349:70;;13358:10;13349:70;;;2931:2;13403;:13;;;;:::i;:::-;13385:12;;13398:1;13385:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;13349:70;;;;;;:::i;:::-;;;;;;;;13177:3;;;;;:::i;:::-;;;;13141:297;;;;13455:48;13472:9;;:16;;13490:12;13455:48;;;;;;;:::i;:::-;;;;;;;;12734:777;12635:876:::0;;;;:::o;5582:105::-;5648:7;5666:9;:18;5676:7;5666:18;;;;;;;;;;;;;;;;5659:25;;5582:105;;;:::o;1382:137::-;1264:6;;;;;;;;;;1250:20;;:10;:20;;;1242:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1459:1:::1;1442:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1478:32;1507:1;1478:32;;;;;;:::i;:::-;;;;;;;;1382:137::o:0;5992:87::-;6042:7;6060:16;;;;;;;;;;;6053:23;;5992:87;:::o;1311:65::-;1349:7;1367:6;;;;;;;;;;;1360:13;;1311:65;:::o;5406:84::-;5456:13;5480:7;;;;;;;;;;;;;;;;;5473:14;;5406:84;:::o;6582:225::-;6662:4;6687:29;6705:10;6687:17;:29::i;:::-;6679:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6755:44;6769:10;6781:9;6792:6;6755:13;:44::i;:::-;6748:51;;6582:225;;;;:::o;6173:81::-;6223:7;6241:10;;6234:17;;6173:81;:::o;6085:82::-;6140:7;6158:6;;6151:13;;6085:82;:::o;5693:133::-;5777:7;5795:11;:19;5807:6;5795:19;;;;;;;;;;;;;;;:28;5815:7;5795:28;;;;;;;;;;;;;;;;5788:35;;5693:133;;;;:::o;7552:686::-;1264:6;;;;;;;;;;1250:20;;:10;:20;;;1242:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4107:4:::1;4094:10;;:17;;;;;;;;;;;;;;;;;;7656:1:::2;7634:24;;:10;;;;;;;;;;;:24;;;7626:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7692:12;;;;;;;;;;;7691:13;7683:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;7755:1;7743:9;:13;:40;;;;7782:1;7760:21;:23;7743:40;7735:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;7861:1;7836:9;:24;7854:4;7836:24;;;;;;;;;;;;;;;;:26;7828:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7930:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7912:58;;;7979:4;7986:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7912:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7899:10;;:113;;;;;;;;;;;;;;;;;;8023:62;8037:9;:24;8055:4;8037:24;;;;;;;;;;;;;;;;8063:21;8023:13;:62::i;:::-;8116:4;8096:5;:17;8102:10;;;;;;;;;;;8096:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;8164:1;8149:12;:16;;;;:::i;:::-;8131:15;:34;;;;8226:4;8211:12;;:19;;;;;;;;;;;;;;;;;;4149:5:::1;4136:10;;:18;;;;;;;;;;;;;;;;;;7552:686::o:0;14381:367::-;1264:6;;;;;;;;;;1250:20;;:10;:20;;;1242:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14475:5:::1;:22;14481:15;14475:22;;;;;;;;;;;;;;;;;;;;;;;;;14474:23;:64;;;;;3727:42;14501:37;;:15;:37;;;;14474:64;:100;;;;;14569:4;14542:32;;:15;:32;;;;14474:100;:133;;;;;14605:1;14578:29;;:15;:29;;;;14474:133;14466:143;;;::::0;::::1;;14647:4;14620:7;:24;14628:15;14620:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;14691:4;14662:9;:26;14672:15;14662:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;14725:15;14706:16;;:34;;;;;;;;;;;;;;;;;;14381:367:::0;:::o;14216:157::-;1264:6;;;;;;;;;;1250:20;;:10;:20;;;1242:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14318:10:::1;14304:11;;:24;;;;;;;;;;;;;;;;;;14354:11;14339:12;;:26;;;;;;;;;;;;;;;;;;14216:157:::0;;:::o;9872:248::-;9937:4;9953:16;9985:12;;;;;;;;;;;9980:103;;;10016:4;10002:18;;9980:103;;;10043:7;:15;10051:6;10043:15;;;;;;;;;;;;;;;;;;;;;;;;;10039:44;;;10076:4;10062:18;;10039:44;9980:103;10101:11;10094:18;;;9872:248;;;:::o;9041:823::-;9133:4;9176:1;9158:20;;:6;:20;;;9150:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9231:38;9243:6;9251:9;9262:6;9231:11;:38::i;:::-;9223:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9307:12;;;;;;;;;;;9302:148;;9331:7;:15;9339:6;9331:15;;;;;;;;;;;;;;;;;;;;;;;;;9323:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;9302:148;;;9395:29;9406:6;9414:9;9395:10;:29::i;:::-;9387:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9302:148;9468:10;;;;;;;;;;;9467:11;:31;;;;;9482:5;:16;9488:9;9482:16;;;;;;;;;;;;;;;;;;;;;;;;;9467:31;9462:54;;;9503:10;:8;:10::i;:::-;9462:54;9528:18;9549:40;9563:6;9571:9;9582:6;9549:13;:40::i;:::-;9528:61;;9600:23;9635:10;9626:6;:19;;;;:::i;:::-;9600:45;;9677:6;9656:9;:17;9666:6;9656:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;9722:10;9694:9;:24;9712:4;9694:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;9768:15;9744:9;:20;9754:9;9744:20;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;9816:9;9799:35;;9808:6;9799:35;;;9827:6;9799:35;;;;;;:::i;:::-;;;;;;;;9852:4;9845:11;;;;9041:823;;;;;:::o;8246:254::-;8334:28;8349:12;8334:14;:28::i;:::-;8373:18;;;;;;;;;;;:34;;;8415:13;8440:4;8447:12;8461:1;8464;8467:6;;;;;;;;;;8475:15;8373:119;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8246:254;;:::o;10128:466::-;10213:4;10230:11;10244:4;10230:18;;10273:6;;10264;:15;:35;;;;;10284:9;:15;10294:4;10284:15;;;;;;;;;;;;;;;;;;;;;;;;;10283:16;10264:35;:53;;;;;10304:9;:13;10314:2;10304:13;;;;;;;;;;;;;;;;;;;;;;;;;10303:14;10264:53;10259:80;;;10331:5;10322:14;;10259:80;10349:15;10367:4;10349:22;;10382:20;10421:6;10405:9;:13;10415:2;10405:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;10382:45;;10458:10;;10443:12;:25;:45;;;;;10473:9;:15;10483:4;10473:15;;;;;;;;;;;;;;;;;;;;;;;;;10472:16;10443:45;:63;;;;;10493:9;:13;10503:2;10493:13;;;;;;;;;;;;;;;;;;;;;;;;;10492:14;10443:63;:77;;;;;10511:5;:9;10517:2;10511:9;;;;;;;;;;;;;;;;;;;;;;;;;10510:10;10443:77;10438:108;;;10538:5;10525:18;;10438:108;10565:6;:20;;;;;10575:10;10565:20;10557:29;;;;;10128:466;;;;;:::o;8708:325::-;8771:4;8788:11;8802:4;8788:18;;8837:15;;8821:12;:31;8817:185;;8910:5;:11;8916:4;8910:11;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;8925:5;:11;8931:4;8925:11;;;;;;;;;;;;;;;;;;;;;;;;;8910:26;8905:54;;;8941:15;8953:2;8941:11;:15::i;:::-;8905:54;8817:185;;;8988:5;:11;8994:4;8988:11;;;;;;;;;;;;;;;;;;;;;;;;;8987:12;8978:21;;8817:185;9019:6;9012:13;;;8708:325;;;;:::o;11720:533::-;4107:4;4094:10;;:17;;;;;;;;;;;;;;;;;;11771:21:::1;11795:24;11813:4;11795:9;:24::i;:::-;11771:48;;3315:5;3311:1;2931:2;3003;:13;;;;:::i;:::-;2980:19;:37;;;;:::i;:::-;3295:17;;;;:::i;:::-;:25;;;;:::i;:::-;11835:13;:28;;:44;;;;;11867:12;;;;;;;;;;;11835:44;11830:416;;;3386:5;3381:2;2931;3003;:13;;;;:::i;:::-;2980:19;:37;;;;:::i;:::-;3366:17;;;;:::i;:::-;:25;;;;:::i;:::-;11902:13;:28;11897:68;;3386:5;3381:2;2931;3003;:13;;;;:::i;:::-;2980:19;:37;;;;:::i;:::-;3366:17;;;;:::i;:::-;:25;;;;:::i;:::-;11935:27;;11897:68;11987:35;12008:13;11987:20;:35::i;:::-;12037:27;12067:21;12037:51;;12128:1;12106:19;:23;12103:132;;;12152:9;12166:16;;;;;;;;;;;:21;;12195:19;12166:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12151:68;;;12131:104;12103:132;11882:364;11830:416;11760:493;4149:5:::0;4136:10;;:18;;;;;;;;;;;;;;;;;;11720:533::o;10602:1110::-;10699:7;10719:17;10747;10767:15;;10747:35;;10829:17;10861:2;10849:9;:14;;;;:::i;:::-;10829:34;;10913:17;10945:2;10933:9;:14;;;;:::i;:::-;10913:34;;11003:12;;;;;;;;;;;:32;;;;;11020:7;:15;11028:6;11020:15;;;;;;;;;;;;;;;;;;;;;;;;;11019:16;11003:32;:55;;;;;11040:7;:18;11048:9;11040:18;;;;;;;;;;;;;;;;;;;;;;;;;11039:19;11003:55;10998:680;;;11077:13;11110:5;:13;11116:6;11110:13;;;;;;;;;;;;;;;;;;;;;;;;;11105:512;;;11164:9;11149:12;:24;11145:196;;;11187:11;;;;;;;;;;;11177:21;;11145:196;;;11243:9;11228:12;:24;11224:117;;;11266:2;11256:12;;11224:117;;;11313:9;11298:12;:24;11294:47;;;11336:2;11326:12;;11294:47;11224:117;11145:196;11105:512;;;11367:5;:16;11373:9;11367:16;;;;;;;;;;;;;;;;;;;;;;;;;11362:255;;;11424:9;11409:12;:24;11405:197;;;11447:12;;;;;;;;;;;11437:22;;11405:197;;;11504:9;11489:12;:24;11485:117;;;11527:2;11517:12;;11485:117;;;11574:9;11559:12;:24;11555:47;;;11597:2;11587:12;;11555:47;11485:117;11405:197;11362:255;11105:512;11662:3;11652:7;11643:16;;:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;11631:34;;11061:617;10998:680;11695:9;11688:16;;;;;;10602:1110;;;;;:::o;7227:317::-;7347:12;7298:11;:26;7318:4;7298:26;;;;;;;;;;;;;;;:46;3727:42;7298:46;;;;;;;;;;;;;;;;:61;7293:244;;;7426:17;7377:11;:26;7397:4;7377:26;;;;;;;;;;;;;;;:46;3727:42;7377:46;;;;;;;;;;;;;;;:66;;;;3727:42;7463:62;;7480:4;7463:62;;;7507:17;7463:62;;;;;;:::i;:::-;;;;;;;;7293:244;7227:317;:::o;8508:192::-;8570:5;:13;8576:6;8570:13;;;;;;;;;;;;;;;;;;;;;;;;;8569:14;:41;;;;;8605:4;8587:23;;:6;:23;;;;8569:41;:73;;;;;3727:42;8614:28;;:6;:28;;;;8569:73;8564:129;;;8676:4;8660:5;:13;8666:6;8660:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;8564:129;8508:192;:::o;12261:366::-;12331:27;12346:11;12331:14;:27::i;:::-;12369:21;12407:1;12393:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12369:40;;12438:4;12420;12425:1;12420:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12464:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12454:4;12459:1;12454:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;12500:18;;;;;;;;;;;:69;;;12570:11;12582:1;12584:4;12597;12603:15;12500:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12320:307;12261:366;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:89::-;5224:7;5264:6;5257:5;5253:18;5242:29;;5188:89;;;:::o;5283:120::-;5355:23;5372:5;5355:23;:::i;:::-;5348:5;5345:34;5335:62;;5393:1;5390;5383:12;5335:62;5283:120;:::o;5409:137::-;5454:5;5492:6;5479:20;5470:29;;5508:32;5534:5;5508:32;:::i;:::-;5409:137;;;;:::o;5552:470::-;5618:6;5626;5675:2;5663:9;5654:7;5650:23;5646:32;5643:119;;;5681:79;;:::i;:::-;5643:119;5801:1;5826:52;5870:7;5861:6;5850:9;5846:22;5826:52;:::i;:::-;5816:62;;5772:116;5927:2;5953:52;5997:7;5988:6;5977:9;5973:22;5953:52;:::i;:::-;5943:62;;5898:117;5552:470;;;;;:::o;6028:115::-;6113:23;6130:5;6113:23;:::i;:::-;6108:3;6101:36;6028:115;;:::o;6149:218::-;6240:4;6278:2;6267:9;6263:18;6255:26;;6291:69;6357:1;6346:9;6342:17;6333:6;6291:69;:::i;:::-;6149:218;;;;:::o;6373:117::-;6482:1;6479;6472:12;6496:117;6605:1;6602;6595:12;6619:117;6728:1;6725;6718:12;6759:568;6832:8;6842:6;6892:3;6885:4;6877:6;6873:17;6869:27;6859:122;;6900:79;;:::i;:::-;6859:122;7013:6;7000:20;6990:30;;7043:18;7035:6;7032:30;7029:117;;;7065:79;;:::i;:::-;7029:117;7179:4;7171:6;7167:17;7155:29;;7233:3;7225:4;7217:6;7213:17;7203:8;7199:32;7196:41;7193:128;;;7240:79;;:::i;:::-;7193:128;6759:568;;;;;:::o;7333:116::-;7403:21;7418:5;7403:21;:::i;:::-;7396:5;7393:32;7383:60;;7439:1;7436;7429:12;7383:60;7333:116;:::o;7455:133::-;7498:5;7536:6;7523:20;7514:29;;7552:30;7576:5;7552:30;:::i;:::-;7455:133;;;;:::o;7594:698::-;7686:6;7694;7702;7751:2;7739:9;7730:7;7726:23;7722:32;7719:119;;;7757:79;;:::i;:::-;7719:119;7905:1;7894:9;7890:17;7877:31;7935:18;7927:6;7924:30;7921:117;;;7957:79;;:::i;:::-;7921:117;8070:80;8142:7;8133:6;8122:9;8118:22;8070:80;:::i;:::-;8052:98;;;;7848:312;8199:2;8225:50;8267:7;8258:6;8247:9;8243:22;8225:50;:::i;:::-;8215:60;;8170:115;7594:698;;;;;:::o;8315:568::-;8388:8;8398:6;8448:3;8441:4;8433:6;8429:17;8425:27;8415:122;;8456:79;;:::i;:::-;8415:122;8569:6;8556:20;8546:30;;8599:18;8591:6;8588:30;8585:117;;;8621:79;;:::i;:::-;8585:117;8735:4;8727:6;8723:17;8711:29;;8789:3;8781:4;8773:6;8769:17;8759:8;8755:32;8752:41;8749:128;;;8796:79;;:::i;:::-;8749:128;8315:568;;;;;:::o;8889:934::-;9011:6;9019;9027;9035;9084:2;9072:9;9063:7;9059:23;9055:32;9052:119;;;9090:79;;:::i;:::-;9052:119;9238:1;9227:9;9223:17;9210:31;9268:18;9260:6;9257:30;9254:117;;;9290:79;;:::i;:::-;9254:117;9403:80;9475:7;9466:6;9455:9;9451:22;9403:80;:::i;:::-;9385:98;;;;9181:312;9560:2;9549:9;9545:18;9532:32;9591:18;9583:6;9580:30;9577:117;;;9613:79;;:::i;:::-;9577:117;9726:80;9798:7;9789:6;9778:9;9774:22;9726:80;:::i;:::-;9708:98;;;;9503:313;8889:934;;;;;;;:::o;9829:118::-;9916:24;9934:5;9916:24;:::i;:::-;9911:3;9904:37;9829:118;;:::o;9953:222::-;10046:4;10084:2;10073:9;10069:18;10061:26;;10097:71;10165:1;10154:9;10150:17;10141:6;10097:71;:::i;:::-;9953:222;;;;:::o;10181:474::-;10249:6;10257;10306:2;10294:9;10285:7;10281:23;10277:32;10274:119;;;10312:79;;:::i;:::-;10274:119;10432:1;10457:53;10502:7;10493:6;10482:9;10478:22;10457:53;:::i;:::-;10447:63;;10403:117;10559:2;10585:53;10630:7;10621:6;10610:9;10606:22;10585:53;:::i;:::-;10575:63;;10530:118;10181:474;;;;;:::o;10661:104::-;10706:7;10735:24;10753:5;10735:24;:::i;:::-;10724:35;;10661:104;;;:::o;10771:138::-;10852:32;10878:5;10852:32;:::i;:::-;10845:5;10842:43;10832:71;;10899:1;10896;10889:12;10832:71;10771:138;:::o;10915:155::-;10969:5;11007:6;10994:20;10985:29;;11023:41;11058:5;11023:41;:::i;:::-;10915:155;;;;:::o;11076:345::-;11143:6;11192:2;11180:9;11171:7;11167:23;11163:32;11160:119;;;11198:79;;:::i;:::-;11160:119;11318:1;11343:61;11396:7;11387:6;11376:9;11372:22;11343:61;:::i;:::-;11333:71;;11289:125;11076:345;;;;:::o;11427:118::-;11498:22;11514:5;11498:22;:::i;:::-;11491:5;11488:33;11478:61;;11535:1;11532;11525:12;11478:61;11427:118;:::o;11551:135::-;11595:5;11633:6;11620:20;11611:29;;11649:31;11674:5;11649:31;:::i;:::-;11551:135;;;;:::o;11692:466::-;11756:6;11764;11813:2;11801:9;11792:7;11788:23;11784:32;11781:119;;;11819:79;;:::i;:::-;11781:119;11939:1;11964:51;12007:7;11998:6;11987:9;11983:22;11964:51;:::i;:::-;11954:61;;11910:115;12064:2;12090:51;12133:7;12124:6;12113:9;12109:22;12090:51;:::i;:::-;12080:61;;12035:116;11692:466;;;;;:::o;12164:180::-;12212:77;12209:1;12202:88;12309:4;12306:1;12299:15;12333:4;12330:1;12323:15;12350:102;12392:8;12439:5;12436:1;12432:13;12411:34;;12350:102;;;:::o;12458:848::-;12519:5;12526:4;12550:6;12541:15;;12574:5;12565:14;;12588:712;12609:1;12599:8;12596:15;12588:712;;;12704:4;12699:3;12695:14;12689:4;12686:24;12683:50;;;12713:18;;:::i;:::-;12683:50;12763:1;12753:8;12749:16;12746:451;;;13178:4;13171:5;13167:16;13158:25;;12746:451;13228:4;13222;13218:15;13210:23;;13258:32;13281:8;13258:32;:::i;:::-;13246:44;;12588:712;;;12458:848;;;;;;;:::o;13312:1073::-;13366:5;13557:8;13547:40;;13578:1;13569:10;;13580:5;;13547:40;13606:4;13596:36;;13623:1;13614:10;;13625:5;;13596:36;13692:4;13740:1;13735:27;;;;13776:1;13771:191;;;;13685:277;;13735:27;13753:1;13744:10;;13755:5;;;13771:191;13816:3;13806:8;13803:17;13800:43;;;13823:18;;:::i;:::-;13800:43;13872:8;13869:1;13865:16;13856:25;;13907:3;13900:5;13897:14;13894:40;;;13914:18;;:::i;:::-;13894:40;13947:5;;;13685:277;;14071:2;14061:8;14058:16;14052:3;14046:4;14043:13;14039:36;14021:2;14011:8;14008:16;14003:2;13997:4;13994:12;13990:35;13974:111;13971:246;;;14127:8;14121:4;14117:19;14108:28;;14162:3;14155:5;14152:14;14149:40;;;14169:18;;:::i;:::-;14149:40;14202:5;;13971:246;14242:42;14280:3;14270:8;14264:4;14261:1;14242:42;:::i;:::-;14227:57;;;;14316:4;14311:3;14307:14;14300:5;14297:25;14294:51;;;14325:18;;:::i;:::-;14294:51;14374:4;14367:5;14363:16;14354:25;;13312:1073;;;;;;:::o;14391:281::-;14449:5;14473:23;14491:4;14473:23;:::i;:::-;14465:31;;14517:25;14533:8;14517:25;:::i;:::-;14505:37;;14561:104;14598:66;14588:8;14582:4;14561:104;:::i;:::-;14552:113;;14391:281;;;;:::o;14678:410::-;14718:7;14741:20;14759:1;14741:20;:::i;:::-;14736:25;;14775:20;14793:1;14775:20;:::i;:::-;14770:25;;14830:1;14827;14823:9;14852:30;14870:11;14852:30;:::i;:::-;14841:41;;15031:1;15022:7;15018:15;15015:1;15012:22;14992:1;14985:9;14965:83;14942:139;;15061:18;;:::i;:::-;14942:139;14726:362;14678:410;;;;:::o;15094:166::-;15234:18;15230:1;15222:6;15218:14;15211:42;15094:166;:::o;15266:366::-;15408:3;15429:67;15493:2;15488:3;15429:67;:::i;:::-;15422:74;;15505:93;15594:3;15505:93;:::i;:::-;15623:2;15618:3;15614:12;15607:19;;15266:366;;;:::o;15638:419::-;15804:4;15842:2;15831:9;15827:18;15819:26;;15891:9;15885:4;15881:20;15877:1;15866:9;15862:17;15855:47;15919:131;16045:4;15919:131;:::i;:::-;15911:139;;15638:419;;;:::o;16063:194::-;16103:4;16123:20;16141:1;16123:20;:::i;:::-;16118:25;;16157:20;16175:1;16157:20;:::i;:::-;16152:25;;16201:1;16198;16194:9;16186:17;;16225:1;16219:4;16216:11;16213:37;;;16230:18;;:::i;:::-;16213:37;16063:194;;;;:::o;16263:174::-;16403:26;16399:1;16391:6;16387:14;16380:50;16263:174;:::o;16443:366::-;16585:3;16606:67;16670:2;16665:3;16606:67;:::i;:::-;16599:74;;16682:93;16771:3;16682:93;:::i;:::-;16800:2;16795:3;16791:12;16784:19;;16443:366;;;:::o;16815:419::-;16981:4;17019:2;17008:9;17004:18;16996:26;;17068:9;17062:4;17058:20;17054:1;17043:9;17039:17;17032:47;17096:131;17222:4;17096:131;:::i;:::-;17088:139;;16815:419;;;:::o;17240:180::-;17288:77;17285:1;17278:88;17385:4;17382:1;17375:15;17409:4;17406:1;17399:15;17426:185;17466:1;17483:20;17501:1;17483:20;:::i;:::-;17478:25;;17517:20;17535:1;17517:20;:::i;:::-;17512:25;;17556:1;17546:35;;17561:18;;:::i;:::-;17546:35;17603:1;17600;17596:9;17591:14;;17426:185;;;;:::o;17617:172::-;17757:24;17753:1;17745:6;17741:14;17734:48;17617:172;:::o;17795:366::-;17937:3;17958:67;18022:2;18017:3;17958:67;:::i;:::-;17951:74;;18034:93;18123:3;18034:93;:::i;:::-;18152:2;18147:3;18143:12;18136:19;;17795:366;;;:::o;18167:419::-;18333:4;18371:2;18360:9;18356:18;18348:26;;18420:9;18414:4;18410:20;18406:1;18395:9;18391:17;18384:47;18448:131;18574:4;18448:131;:::i;:::-;18440:139;;18167:419;;;:::o;18592:180::-;18640:77;18637:1;18630:88;18737:4;18734:1;18727:15;18761:4;18758:1;18751:15;18778:233;18817:3;18840:24;18858:5;18840:24;:::i;:::-;18831:33;;18886:66;18879:5;18876:77;18873:103;;18956:18;;:::i;:::-;18873:103;19003:1;18996:5;18992:13;18985:20;;18778:233;;;:::o;19017:171::-;19157:23;19153:1;19145:6;19141:14;19134:47;19017:171;:::o;19194:366::-;19336:3;19357:67;19421:2;19416:3;19357:67;:::i;:::-;19350:74;;19433:93;19522:3;19433:93;:::i;:::-;19551:2;19546:3;19542:12;19535:19;;19194:366;;;:::o;19566:419::-;19732:4;19770:2;19759:9;19755:18;19747:26;;19819:9;19813:4;19809:20;19805:1;19794:9;19790:17;19783:47;19847:131;19973:4;19847:131;:::i;:::-;19839:139;;19566:419;;;:::o;19991:170::-;20131:22;20127:1;20119:6;20115:14;20108:46;19991:170;:::o;20167:366::-;20309:3;20330:67;20394:2;20389:3;20330:67;:::i;:::-;20323:74;;20406:93;20495:3;20406:93;:::i;:::-;20524:2;20519:3;20515:12;20508:19;;20167:366;;;:::o;20539:419::-;20705:4;20743:2;20732:9;20728:18;20720:26;;20792:9;20786:4;20782:20;20778:1;20767:9;20763:17;20756:47;20820:131;20946:4;20820:131;:::i;:::-;20812:139;;20539:419;;;:::o;20964:191::-;21004:3;21023:20;21041:1;21023:20;:::i;:::-;21018:25;;21057:20;21075:1;21057:20;:::i;:::-;21052:25;;21100:1;21097;21093:9;21086:16;;21121:3;21118:1;21115:10;21112:36;;;21128:18;;:::i;:::-;21112:36;20964:191;;;;:::o;21161:171::-;21301:23;21297:1;21289:6;21285:14;21278:47;21161:171;:::o;21338:366::-;21480:3;21501:67;21565:2;21560:3;21501:67;:::i;:::-;21494:74;;21577:93;21666:3;21577:93;:::i;:::-;21695:2;21690:3;21686:12;21679:19;;21338:366;;;:::o;21710:419::-;21876:4;21914:2;21903:9;21899:18;21891:26;;21963:9;21957:4;21953:20;21949:1;21938:9;21934:17;21927:47;21991:131;22117:4;21991:131;:::i;:::-;21983:139;;21710:419;;;:::o;22135:332::-;22256:4;22294:2;22283:9;22279:18;22271:26;;22307:71;22375:1;22364:9;22360:17;22351:6;22307:71;:::i;:::-;22388:72;22456:2;22445:9;22441:18;22432:6;22388:72;:::i;:::-;22135:332;;;;;:::o;22473:159::-;22613:11;22609:1;22601:6;22597:14;22590:35;22473:159;:::o;22638:365::-;22780:3;22801:66;22865:1;22860:3;22801:66;:::i;:::-;22794:73;;22876:93;22965:3;22876:93;:::i;:::-;22994:2;22989:3;22985:12;22978:19;;22638:365;;;:::o;23009:419::-;23175:4;23213:2;23202:9;23198:18;23190:26;;23262:9;23256:4;23252:20;23248:1;23237:9;23233:17;23226:47;23290:131;23416:4;23290:131;:::i;:::-;23282:139;;23009:419;;;:::o;23434:165::-;23574:17;23570:1;23562:6;23558:14;23551:41;23434:165;:::o;23605:366::-;23747:3;23768:67;23832:2;23827:3;23768:67;:::i;:::-;23761:74;;23844:93;23933:3;23844:93;:::i;:::-;23962:2;23957:3;23953:12;23946:19;;23605:366;;;:::o;23977:419::-;24143:4;24181:2;24170:9;24166:18;24158:26;;24230:9;24224:4;24220:20;24216:1;24205:9;24201:17;24194:47;24258:131;24384:4;24258:131;:::i;:::-;24250:139;;23977:419;;;:::o;24402:179::-;24542:31;24538:1;24530:6;24526:14;24519:55;24402:179;:::o;24587:366::-;24729:3;24750:67;24814:2;24809:3;24750:67;:::i;:::-;24743:74;;24826:93;24915:3;24826:93;:::i;:::-;24944:2;24939:3;24935:12;24928:19;;24587:366;;;:::o;24959:419::-;25125:4;25163:2;25152:9;25148:18;25140:26;;25212:9;25206:4;25202:20;25198:1;25187:9;25183:17;25176:47;25240:131;25366:4;25240:131;:::i;:::-;25232:139;;24959:419;;;:::o;25384:171::-;25524:23;25520:1;25512:6;25508:14;25501:47;25384:171;:::o;25561:366::-;25703:3;25724:67;25788:2;25783:3;25724:67;:::i;:::-;25717:74;;25800:93;25889:3;25800:93;:::i;:::-;25918:2;25913:3;25909:12;25902:19;;25561:366;;;:::o;25933:419::-;26099:4;26137:2;26126:9;26122:18;26114:26;;26186:9;26180:4;26176:20;26172:1;26161:9;26157:17;26150:47;26214:131;26340:4;26214:131;:::i;:::-;26206:139;;25933:419;;;:::o;26358:143::-;26415:5;26446:6;26440:13;26431:22;;26462:33;26489:5;26462:33;:::i;:::-;26358:143;;;;:::o;26507:351::-;26577:6;26626:2;26614:9;26605:7;26601:23;26597:32;26594:119;;;26632:79;;:::i;:::-;26594:119;26752:1;26777:64;26833:7;26824:6;26813:9;26809:22;26777:64;:::i;:::-;26767:74;;26723:128;26507:351;;;;:::o;26864:332::-;26985:4;27023:2;27012:9;27008:18;27000:26;;27036:71;27104:1;27093:9;27089:17;27080:6;27036:71;:::i;:::-;27117:72;27185:2;27174:9;27170:18;27161:6;27117:72;:::i;:::-;26864:332;;;;;:::o;27202:179::-;27342:31;27338:1;27330:6;27326:14;27319:55;27202:179;:::o;27387:366::-;27529:3;27550:67;27614:2;27609:3;27550:67;:::i;:::-;27543:74;;27626:93;27715:3;27626:93;:::i;:::-;27744:2;27739:3;27735:12;27728:19;;27387:366;;;:::o;27759:419::-;27925:4;27963:2;27952:9;27948:18;27940:26;;28012:9;28006:4;28002:20;27998:1;27987:9;27983:17;27976:47;28040:131;28166:4;28040:131;:::i;:::-;28032:139;;27759:419;;;:::o;28184:165::-;28324:17;28320:1;28312:6;28308:14;28301:41;28184:165;:::o;28355:366::-;28497:3;28518:67;28582:2;28577:3;28518:67;:::i;:::-;28511:74;;28594:93;28683:3;28594:93;:::i;:::-;28712:2;28707:3;28703:12;28696:19;;28355:366;;;:::o;28727:419::-;28893:4;28931:2;28920:9;28916:18;28908:26;;28980:9;28974:4;28970:20;28966:1;28955:9;28951:17;28944:47;29008:131;29134:4;29008:131;:::i;:::-;29000:139;;28727:419;;;:::o;29152:168::-;29292:20;29288:1;29280:6;29276:14;29269:44;29152:168;:::o;29326:366::-;29468:3;29489:67;29553:2;29548:3;29489:67;:::i;:::-;29482:74;;29565:93;29654:3;29565:93;:::i;:::-;29683:2;29678:3;29674:12;29667:19;;29326:366;;;:::o;29698:419::-;29864:4;29902:2;29891:9;29887:18;29879:26;;29951:9;29945:4;29941:20;29937:1;29926:9;29922:17;29915:47;29979:131;30105:4;29979:131;:::i;:::-;29971:139;;29698:419;;;:::o;30123:85::-;30168:7;30197:5;30186:16;;30123:85;;;:::o;30214:60::-;30242:3;30263:5;30256:12;;30214:60;;;:::o;30280:158::-;30338:9;30371:61;30389:42;30398:32;30424:5;30398:32;:::i;:::-;30389:42;:::i;:::-;30371:61;:::i;:::-;30358:74;;30280:158;;;:::o;30444:147::-;30539:45;30578:5;30539:45;:::i;:::-;30534:3;30527:58;30444:147;;:::o;30597:807::-;30846:4;30884:3;30873:9;30869:19;30861:27;;30898:71;30966:1;30955:9;30951:17;30942:6;30898:71;:::i;:::-;30979:72;31047:2;31036:9;31032:18;31023:6;30979:72;:::i;:::-;31061:80;31137:2;31126:9;31122:18;31113:6;31061:80;:::i;:::-;31151;31227:2;31216:9;31212:18;31203:6;31151:80;:::i;:::-;31241:73;31309:3;31298:9;31294:19;31285:6;31241:73;:::i;:::-;31324;31392:3;31381:9;31377:19;31368:6;31324:73;:::i;:::-;30597:807;;;;;;;;;:::o;31410:143::-;31467:5;31498:6;31492:13;31483:22;;31514:33;31541:5;31514:33;:::i;:::-;31410:143;;;;:::o;31559:663::-;31647:6;31655;31663;31712:2;31700:9;31691:7;31687:23;31683:32;31680:119;;;31718:79;;:::i;:::-;31680:119;31838:1;31863:64;31919:7;31910:6;31899:9;31895:22;31863:64;:::i;:::-;31853:74;;31809:128;31976:2;32002:64;32058:7;32049:6;32038:9;32034:22;32002:64;:::i;:::-;31992:74;;31947:129;32115:2;32141:64;32197:7;32188:6;32177:9;32173:22;32141:64;:::i;:::-;32131:74;;32086:129;31559:663;;;;;:::o;32228:147::-;32329:11;32366:3;32351:18;;32228:147;;;;:::o;32381:114::-;;:::o;32501:398::-;32660:3;32681:83;32762:1;32757:3;32681:83;:::i;:::-;32674:90;;32773:93;32862:3;32773:93;:::i;:::-;32891:1;32886:3;32882:11;32875:18;;32501:398;;;:::o;32905:379::-;33089:3;33111:147;33254:3;33111:147;:::i;:::-;33104:154;;33275:3;33268:10;;32905:379;;;:::o;33290:180::-;33338:77;33335:1;33328:88;33435:4;33432:1;33425:15;33459:4;33456:1;33449:15;33476:114;33543:6;33577:5;33571:12;33561:22;;33476:114;;;:::o;33596:184::-;33695:11;33729:6;33724:3;33717:19;33769:4;33764:3;33760:14;33745:29;;33596:184;;;;:::o;33786:132::-;33853:4;33876:3;33868:11;;33906:4;33901:3;33897:14;33889:22;;33786:132;;;:::o;33924:108::-;34001:24;34019:5;34001:24;:::i;:::-;33996:3;33989:37;33924:108;;:::o;34038:179::-;34107:10;34128:46;34170:3;34162:6;34128:46;:::i;:::-;34206:4;34201:3;34197:14;34183:28;;34038:179;;;;:::o;34223:113::-;34293:4;34325;34320:3;34316:14;34308:22;;34223:113;;;:::o;34372:732::-;34491:3;34520:54;34568:5;34520:54;:::i;:::-;34590:86;34669:6;34664:3;34590:86;:::i;:::-;34583:93;;34700:56;34750:5;34700:56;:::i;:::-;34779:7;34810:1;34795:284;34820:6;34817:1;34814:13;34795:284;;;34896:6;34890:13;34923:63;34982:3;34967:13;34923:63;:::i;:::-;34916:70;;35009:60;35062:6;35009:60;:::i;:::-;34999:70;;34855:224;34842:1;34839;34835:9;34830:14;;34795:284;;;34799:14;35095:3;35088:10;;34496:608;;;34372:732;;;;:::o;35110:831::-;35373:4;35411:3;35400:9;35396:19;35388:27;;35425:71;35493:1;35482:9;35478:17;35469:6;35425:71;:::i;:::-;35506:80;35582:2;35571:9;35567:18;35558:6;35506:80;:::i;:::-;35633:9;35627:4;35623:20;35618:2;35607:9;35603:18;35596:48;35661:108;35764:4;35755:6;35661:108;:::i;:::-;35653:116;;35779:72;35847:2;35836:9;35832:18;35823:6;35779:72;:::i;:::-;35861:73;35929:3;35918:9;35914:19;35905:6;35861:73;:::i;:::-;35110:831;;;;;;;;:::o

Swarm Source

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