ETH Price: $3,366.12 (+2.78%)
Gas: 5 Gwei

Token

TWitter SHiba inu (TWSHIB)
 

Overview

Max Total Supply

10,000,000 TWSHIB

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000002973862 TWSHIB

Value
$0.00
0x40525dc38b17f3e9aaf5e022b09b453b967537af
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:
TWitterShiba

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity ^0.8.17;
//SPDX-License-Identifier: UNLICENCED
/*
    TokenContract
    7% tax on buy and sell, 7% tax on transfers
    
    
    Telegram:
    https://t.me/twittershibaerc20
    TWITTER:https://twitter.com/Twshibinu/status/1587797567961645057
    website:https://twshib.com/
    
*/

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

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

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

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

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

        return c;
    }
}

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

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

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

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

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

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

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

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

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

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

    event OwnershipTransferred(address owner);
}

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

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

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

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

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

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}


contract TWitterShiba is IERC20, Auth {

    using SafeMath for uint256;
    // fees. all uint8 for gas efficiency and storage.
    /* @dev   
        all fees are set with 1 decimal places added, please remember this when setting fees.
    */
    uint8 public liquidityFee = 10;
    uint8 public marketingFee = 40;
    uint8 public burnFee = 20;
    uint8 public totalFee = 70;

    uint8 public initialSellFee = 250;
    uint8 public initialBuyFee = 200;


    // denominator. uint 16 for storage efficiency - makes the above fees all to 1 dp.
    uint16 public AllfeeDenominator = 1000;
    
    // trading control;
    bool public canTrade = false;
    uint256 public launchedAt;
    
    
    // tokenomics - uint256 BN but located here fro storage efficiency
    uint256 _totalSupply = 1 * 10**7 * (10 **_decimals); //10 mil
    uint256 public _maxTxAmount = _totalSupply / 100; // 1%
    uint256 public _maxHoldAmount = _totalSupply / 50; // 2%
    uint256 public swapThreshold = _totalSupply / 500; // 0.2%

    //Important addresses    
    address USDT = 0xdAC17F958D2ee523a2206206994597C13D831ec7; // mainnet tether, used to get price;
    //address USDT = 0xF99a0CbEa2799f8d4b51709024454F74eD63a86D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    address public pair;

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

    mapping (address => bool) public pairs;

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

    IDEXRouter public router;


    bool public swapEnabled = true;
    bool inSwap;

    
    address[] public subbedUsers;
    uint public totalSubs;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    string constant _name = "TWitter SHiba inu";
    string constant _symbol = "TWSHIB";
    uint8 constant _decimals = 18;

    bool public initialTaxesEnabled = true;

    constructor (address tokenOwner) Auth(tokenOwner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Mainnet Uniswap
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); // ETH pair
        pairs[pair] = true;
        _allowances[address(this)][address(router)] = _totalSupply;
        isMaxHoldExempt[pair] = true;
        isMaxHoldExempt[DEAD] = true;
        isMaxHoldExempt[ZERO] = true;
        
        owner = tokenOwner;
        isTxLimitExempt[owner] = true;
        isFeeExempt[owner] = true;
        authorizations[owner] = true;
        isMaxHoldExempt[owner] = true;
        autoLiquidityReceiver = owner;
        marketingFeeReceiver = owner;

        _balances[owner] = _totalSupply;

        emit Transfer(address(0), owner, _totalSupply);
    }

    receive() external payable { }

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

    
    function getEstimatedTokenForUSDT(uint USDTAmount) public view returns (uint) {
            address[] memory path = new address[](3);
                path[0] = USDT;
                path[1] = router.WETH();
                path[2] = address(this);
            return router.getAmountsOut(USDTAmount, path)[2];
    }
    
    function setBlacklistedStatus(address walletToBlacklist, bool isBlacklistedBool)external authorized{
        isBlacklisted[walletToBlacklist] = isBlacklistedBool;
    }

    function setBlacklistArray(address[] calldata walletToBlacklistArray)external authorized{
        for(uint i = 0; i < walletToBlacklistArray.length; i++){
            isBlacklisted[walletToBlacklistArray[i]] = true;
        }
    }

    function getSubbedUsersLength()external view returns (uint SubbedUsersLength){
        return subbedUsers.length;
    }

   

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

    function setSwapThresholdDivisor(uint divisor)external authorized {
        require(divisor >= 100, "TokenContract: max sell percent is 1%");
        swapThreshold = _totalSupply / divisor;
    }
    
    function approveMax(address spender) external returns (bool) {
        return approve(spender, _totalSupply);
    }
    
    function setmaxholdpercentage(uint256 percentageMul10) external authorized {
        require(percentageMul10 >= 5, "TokenContract, max hold cannot be less than 0.5%"); // cant change percentage below 0.5%, so everyone can hold the percentage
        _maxHoldAmount = _totalSupply * percentageMul10 / 1000; // percentage based on amount
    }
    
    function allowtrading()external authorized {
        canTrade = true;
    }
    
    function addNewPair(address newPair)external authorized{
        pairs[newPair] = true;
        isMaxHoldExempt[newPair] = true;
    }
    
    function removePair(address pairToRemove)external authorized{
        pairs[pairToRemove] = false;
        isMaxHoldExempt[pairToRemove] = false;
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        if(!canTrade){
            require(sender == owner, "TokenContract, Only owner or presale Contract allowed to add LP"); // only owner allowed to trade or add liquidity
        }
        if(sender != owner && recipient != owner){
            if(!pairs[recipient] && !isMaxHoldExempt[recipient]){
                require (balanceOf(recipient) + amount <= _maxHoldAmount, "TokenContract, cant hold more than max hold dude, sorry");
            }
        }
        
        checkTxLimit(sender, recipient, amount);
        require(!isBlacklisted[sender] && !isBlacklisted[recipient], "TokenContract, Sorry bro, youre blacklisted");
        if(!launched() && pairs[recipient]){ require(_balances[sender] > 0); launch(); }
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        _balances[sender] = _balances[sender].sub(amount, "TokenContract, Insufficient Balance");


        uint256 amountReceived = 0;
        if(!shouldTakeFee(sender) || !shouldTakeFee(recipient)){
            amountReceived = amount;
        }else{
            bool isbuy = pairs[sender];
            amountReceived = takeFee(sender, isbuy, amount);
        }

        if(shouldSwapBack(recipient)){ swapBack(); }

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

        emit Transfer(sender, recipient, amountReceived);
        return true;

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

    function checkTxLimit(address sender, address reciever, uint256 amount) internal view {
        if(sender != owner && reciever != owner){
            require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        }
    }

    function shouldTakeFee(address endpt) internal view returns (bool) {
        
        return !isFeeExempt[endpt];
    }

    function takeFee(address sender, bool isBuy, uint256 amount) internal returns (uint256) {
        uint fee = totalFee;
        if(initialTaxesEnabled){
            fee = initialSellFee;
            if(isBuy){
                fee = initialBuyFee;
            }
        }

        uint256 feeAmount = amount.mul(fee).div(AllfeeDenominator);
        
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function setInitialfees(uint8 _initialBuyFeePercentMul10, uint8 _initialSellFeePercentMul10) external authorized {
        if(initialBuyFee >= _initialBuyFeePercentMul10){initialBuyFee = _initialBuyFeePercentMul10;}else{initialTaxesEnabled = false;}
        if(initialSellFee >= _initialSellFeePercentMul10){initialSellFee = _initialSellFeePercentMul10;}else{initialTaxesEnabled = false;}
    }

    // returns any mis-sent tokens to the marketing wallet
    function claimtokensback(IERC20 tokenAddress) external authorized {
        payable(marketingFeeReceiver).transfer(address(this).balance);
        tokenAddress.transfer(marketingFeeReceiver, tokenAddress.balanceOf(address(this)));
    }

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

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

    function stopInitialTax()external authorized{
        // this can only ever be called once
        initialTaxesEnabled = false;
    }

    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 200, "TokenContract, must be higher than 0.5%");
        require(amount > _maxTxAmount, "TokenContract, can only ever increase the tx limit");
        _maxTxAmount = amount;
    }

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


    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }
    /*
    Dev sets the individual buy fees
    */
    function setFees(uint8 _liquidityFeeMul10, uint8 _marketingFeeMul10, uint8 _burnFeeMul10) external authorized {
        require(_liquidityFeeMul10 + _marketingFeeMul10 + _burnFeeMul10 <= 80, "TokenContract taxes can never exceed 8%");
        require(_liquidityFeeMul10 + _marketingFeeMul10 <= totalFee, "TokenContract, taxes can only ever change ratio");
        liquidityFee = _liquidityFeeMul10;
        marketingFee = _marketingFeeMul10;
        burnFee = _burnFeeMul10;
       
        totalFee = _liquidityFeeMul10 + _marketingFeeMul10 + _burnFeeMul10 ;
    }
    
    function swapBack() internal swapping {
        uint256 amountToLiquify = 0;
        if(liquidityFee > 0){
            amountToLiquify = swapThreshold.mul(liquidityFee).div(totalFee).div(2); // leave some tokens for liquidity addition
        }
        uint amountToBurn = swapThreshold.mul(burnFee).div(totalFee);
        _basicTransfer(address(this), DEAD, amountToBurn);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify).sub(amountToBurn); // swap everything bar the liquidity tokens. we need to add a pair
        

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        uint256 balanceBefore = address(this).balance;
        
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp + 100
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);
        
        uint256 totalETHFee = totalFee - (liquidityFee /2);
        if(totalETHFee > 0){
            uint256 amountETHMarketing = 0;
            if(marketingFee > 0){
                amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
                payable(marketingFeeReceiver).transfer(amountETHMarketing);
            }
            if(amountToLiquify > 0){
                
                uint256 amountETHLiquidity = amountETH - amountETHMarketing;
                router.addLiquidityETH{value: amountETHLiquidity}(
                    address(this),
                    amountToLiquify,
                    0,
                    0,
                    autoLiquidityReceiver,
                    block.timestamp
                );
                emit AutoLiquify(amountETHLiquidity, amountToLiquify);
            }
        }
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }
    
    function shouldSwapBack(address recipient) internal view returns (bool) {
        return !inSwap
        && swapEnabled
        && pairs[recipient]
        && _balances[address(this)] >= swapThreshold;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    event AutoLiquify(uint256 amountPairToken, uint256 amountToken);

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountPairToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AllfeeDenominator","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxHoldAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"addNewPair","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":[],"name":"allowtrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenAddress","type":"address"}],"name":"claimtokensback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"USDTAmount","type":"uint256"}],"name":"getEstimatedTokenForUSDT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSubbedUsersLength","outputs":[{"internalType":"uint256","name":"SubbedUsersLength","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialBuyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialSellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialTaxesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pairToRemove","type":"address"}],"name":"removePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"walletToBlacklistArray","type":"address[]"}],"name":"setBlacklistArray","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletToBlacklist","type":"address"},{"internalType":"bool","name":"isBlacklistedBool","type":"bool"}],"name":"setBlacklistedStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_liquidityFeeMul10","type":"uint8"},{"internalType":"uint8","name":"_marketingFeeMul10","type":"uint8"},{"internalType":"uint8","name":"_burnFeeMul10","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_initialBuyFeePercentMul10","type":"uint8"},{"internalType":"uint8","name":"_initialSellFeePercentMul10","type":"uint8"}],"name":"setInitialfees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setSwapThresholdDivisor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentageMul10","type":"uint256"}],"name":"setmaxholdpercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopInitialTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"subbedUsers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSubs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a600260006101000a81548160ff021916908360ff1602179055506028600260016101000a81548160ff021916908360ff16021790555060146002806101000a81548160ff021916908360ff1602179055506046600260036101000a81548160ff021916908360ff16021790555060fa600260046101000a81548160ff021916908360ff16021790555060c8600260056101000a81548160ff021916908360ff1602179055506103e8600260066101000a81548161ffff021916908361ffff1602179055506000600260086101000a81548160ff0219169083151502179055506012600a620000f5919062000d63565b6298968062000105919062000db4565b600455606460045462000119919062000e2e565b60055560326004546200012d919062000e2e565b6006556101f460045462000142919062000e2e565b60075573dac17f958d2ee523a2206206994597c13d831ec7600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff0219169083151502179055506001601860006101000a81548160ff0219169083151502179055503480156200026257600080fd5b506040516200616c3803806200616c833981810160405281019062000288919062000ed0565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040a919062000ed0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000493573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b9919062000ed0565b306040518363ffffffff1660e01b8152600401620004d992919062000f13565b6020604051808303816000875af1158015620004f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200051f919062000ed0565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160136000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600e60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000bba919062000f51565b60405180910390a35062000f6e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c575780860481111562000c2f5762000c2e62000bc9565b5b600185161562000c3f5780820291505b808102905062000c4f8562000bf8565b945062000c0f565b94509492505050565b60008262000c72576001905062000d45565b8162000c82576000905062000d45565b816001811462000c9b576002811462000ca65762000cdc565b600191505062000d45565b60ff84111562000cbb5762000cba62000bc9565b5b8360020a91508482111562000cd55762000cd462000bc9565b5b5062000d45565b5060208310610133831016604e8410600b841016171562000d165782820a90508381111562000d105762000d0f62000bc9565b5b62000d45565b62000d25848484600162000c05565b9250905081840481111562000d3f5762000d3e62000bc9565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d708262000d4c565b915062000d7d8362000d56565b925062000dac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c60565b905092915050565b600062000dc18262000d4c565b915062000dce8362000d4c565b925082820262000dde8162000d4c565b9150828204841483151762000df85762000df762000bc9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e3b8262000d4c565b915062000e488362000d4c565b92508262000e5b5762000e5a62000dff565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e988262000e6b565b9050919050565b62000eaa8162000e8b565b811462000eb657600080fd5b50565b60008151905062000eca8162000e9f565b92915050565b60006020828403121562000ee95762000ee862000e66565b5b600062000ef98482850162000eb9565b91505092915050565b62000f0d8162000e8b565b82525050565b600060408201905062000f2a600083018562000f02565b62000f39602083018462000f02565b9392505050565b62000f4b8162000d4c565b82525050565b600060208201905062000f68600083018462000f40565b92915050565b6151ee8062000f7e6000396000f3fe60806040526004361061036f5760003560e01c80637d1db4a5116101c6578063df20fd49116100f7578063f5676f8f11610095578063f887ea401161006f578063f887ea4014610c8f578063fce589d814610cba578063fe33b30214610ce5578063fe9fbb8014610d2257610376565b8063f5676f8f14610c12578063f6794fdb14610c3d578063f84ba65d14610c6657610376565b8063ee8969c5116100d1578063ee8969c514610b5a578063f0b37c0414610b97578063f1366d9a14610bc0578063f2fde38b14610be957610376565b8063df20fd4914610add578063e405be2914610b06578063e96fada214610b2f57610376565b8063a8aa1b3111610164578063b6a5d7de1161013e578063b6a5d7de14610a21578063bf56b37114610a4a578063ca33e64c14610a75578063dd62ed3e14610aa057610376565b8063a8aa1b3114610990578063a9059cbb146109bb578063af6c9c1d146109f857610376565b806398118cb4116101a057806398118cb4146108fc578063a41d40e114610927578063a4b45c0014610950578063a63342311461097957610376565b80637d1db4a51461087b578063893d20e8146108a657806395d89b41146108d157610376565b806332406b35116102a05780636b67c4df1161023e5780636f2a4914116102185780636f2a4914146107d557806370a08231146107ec578063715b1c3b14610829578063759f62a61461085257610376565b80636b67c4df146107545780636bad6a6a1461077f5780636ddd1713146107aa57610376565b8063571ac8b01161027a578063571ac8b01461069c5780635c85974f146106d9578063658d4b7f1461070257806366bb5dd31461072b57610376565b806332406b351461061d5780633ab045de1461064857806342c7a6f71461067357610376565b806323b872dd1161030d5780632f05205c116102e75780632f05205c1461055f5780632f54bf6e1461058a578063313ce567146105c757806331e02e0b146105f257610376565b806323b872dd146104cc5780632b112e49146105095780632b36a6d21461053457610376565b806318160ddd1161034957806318160ddd1461040e5780631936d368146104395780631df4ccfc146104765780631fc9efa1146104a157610376565b80630445b6671461037b57806306fdde03146103a6578063095ea7b3146103d157610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d5f565b60405161039d9190613c00565b60405180910390f35b3480156103b257600080fd5b506103bb610d65565b6040516103c89190613cab565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f39190613d6b565b610da2565b6040516104059190613dc6565b60405180910390f35b34801561041a57600080fd5b50610423610e94565b6040516104309190613c00565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190613de1565b610e9e565b60405161046d9190613e1d565b60405180910390f35b34801561048257600080fd5b5061048b610edd565b6040516104989190613e54565b60405180910390f35b3480156104ad57600080fd5b506104b6610ef0565b6040516104c39190613c00565b60405180910390f35b3480156104d857600080fd5b506104f360048036038101906104ee9190613e6f565b610ef6565b6040516105009190613dc6565b60405180910390f35b34801561051557600080fd5b5061051e6110d8565b60405161052b9190613c00565b60405180910390f35b34801561054057600080fd5b5061054961115a565b6040516105569190613e54565b60405180910390f35b34801561056b57600080fd5b5061057461116d565b6040516105819190613dc6565b60405180910390f35b34801561059657600080fd5b506105b160048036038101906105ac9190613ec2565b611180565b6040516105be9190613dc6565b60405180910390f35b3480156105d357600080fd5b506105dc6111d9565b6040516105e99190613e54565b60405180910390f35b3480156105fe57600080fd5b506106076111e2565b6040516106149190613e54565b60405180910390f35b34801561062957600080fd5b506106326111f5565b60405161063f9190613dc6565b60405180910390f35b34801561065457600080fd5b5061065d611208565b60405161066a9190613f0c565b60405180910390f35b34801561067f57600080fd5b5061069a60048036038101906106959190613f53565b61121c565b005b3480156106a857600080fd5b506106c360048036038101906106be9190613ec2565b611318565b6040516106d09190613dc6565b60405180910390f35b3480156106e557600080fd5b5061070060048036038101906106fb9190613de1565b61132d565b005b34801561070e57600080fd5b5061072960048036038101906107249190613fbf565b611414565b005b34801561073757600080fd5b50610752600480360381019061074d919061403d565b6114b7565b005b34801561076057600080fd5b50610769611685565b6040516107769190613e54565b60405180910390f35b34801561078b57600080fd5b50610794611698565b6040516107a19190613c00565b60405180910390f35b3480156107b657600080fd5b506107bf6116a5565b6040516107cc9190613dc6565b60405180910390f35b3480156107e157600080fd5b506107ea6116b8565b005b3480156107f857600080fd5b50610813600480360381019061080e9190613ec2565b61171d565b6040516108209190613c00565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190613de1565b611766565b005b34801561085e57600080fd5b5061087960048036038101906108749190613fbf565b611816565b005b34801561088757600080fd5b506108906118b9565b60405161089d9190613c00565b60405180910390f35b3480156108b257600080fd5b506108bb6118bf565b6040516108c89190613e1d565b60405180910390f35b3480156108dd57600080fd5b506108e66118e8565b6040516108f39190613cab565b60405180910390f35b34801561090857600080fd5b50610911611925565b60405161091e9190613e54565b60405180910390f35b34801561093357600080fd5b5061094e60048036038101906109499190613ec2565b611938565b005b34801561095c57600080fd5b506109776004803603810190610972919061406a565b611a33565b005b34801561098557600080fd5b5061098e611b01565b005b34801561099c57600080fd5b506109a5611b66565b6040516109b29190613e1d565b60405180910390f35b3480156109c757600080fd5b506109e260048036038101906109dd9190613d6b565b611b8c565b6040516109ef9190613dc6565b60405180910390f35b348015610a0457600080fd5b50610a1f6004803603810190610a1a9190613ec2565b611ba1565b005b348015610a2d57600080fd5b50610a486004803603810190610a439190613ec2565b611c9c565b005b348015610a5657600080fd5b50610a5f611d3e565b604051610a6c9190613c00565b60405180910390f35b348015610a8157600080fd5b50610a8a611d44565b604051610a979190613e1d565b60405180910390f35b348015610aac57600080fd5b50610ac76004803603810190610ac2919061406a565b611d6a565b604051610ad49190613c00565b60405180910390f35b348015610ae957600080fd5b50610b046004803603810190610aff91906140aa565b611df1565b005b348015610b1257600080fd5b50610b2d6004803603810190610b28919061414f565b611e5e565b005b348015610b3b57600080fd5b50610b44611f4b565b604051610b519190613e1d565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613de1565b611f71565b604051610b8e9190613c00565b60405180910390f35b348015610ba357600080fd5b50610bbe6004803603810190610bb99190613ec2565b612225565b005b348015610bcc57600080fd5b50610be76004803603810190610be29190613de1565b6122c8565b005b348015610bf557600080fd5b50610c106004803603810190610c0b91906141da565b61236b565b005b348015610c1e57600080fd5b50610c27612484565b604051610c349190613c00565b60405180910390f35b348015610c4957600080fd5b50610c646004803603810190610c5f9190614207565b61248a565b005b348015610c7257600080fd5b50610c8d6004803603810190610c889190613fbf565b612618565b005b348015610c9b57600080fd5b50610ca46126bb565b604051610cb191906142b9565b60405180910390f35b348015610cc657600080fd5b50610ccf6126e1565b604051610cdc9190613e54565b60405180910390f35b348015610cf157600080fd5b50610d0c6004803603810190610d079190613ec2565b6126f2565b604051610d199190613dc6565b60405180910390f35b348015610d2e57600080fd5b50610d496004803603810190610d449190613ec2565b612712565b604051610d569190613dc6565b60405180910390f35b60075481565b60606040518060400160405280601181526020017f5457697474657220534869626120696e75000000000000000000000000000000815250905090565b600081600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e829190613c00565b60405180910390a36001905092915050565b6000600454905090565b60168181548110610eae57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260039054906101000a900460ff1681565b60065481565b6000600454600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110c457611043826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127689092919063ffffffff16565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110cf8484846127cc565b90509392505050565b6000611155611108600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661171d565b611147611136600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661171d565b600454612e4390919063ffffffff16565b612e4390919063ffffffff16565b905090565b600260049054906101000a900460ff1681565b600260089054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b600260059054906101000a900460ff1681565b601860009054906101000a900460ff1681565b600260069054906101000a900461ffff1681565b61122533612712565b611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90614320565b60405180910390fd5b8160ff16600260059054906101000a900460ff1660ff16106112a05781600260056101000a81548160ff021916908360ff1602179055506112bc565b6000601860006101000a81548160ff0219169083151502179055505b8060ff16600260049054906101000a900460ff1660ff16106112f85780600260046101000a81548160ff021916908360ff160217905550611314565b6000601860006101000a81548160ff0219169083151502179055505b5050565b600061132682600454610da2565b9050919050565b61133633612712565b611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90614320565b60405180910390fd5b60c8600454611384919061439e565b8110156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd90614441565b60405180910390fd5b600554811161140a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611401906144d3565b60405180910390fd5b8060058190555050565b61141d33612712565b61145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145390614320565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114c033612712565b6114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690614320565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611567573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115e09190613e1d565b602060405180830381865afa1580156115fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116219190614508565b6040518363ffffffff1660e01b815260040161163e929190614535565b6020604051808303816000875af115801561165d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116819190614573565b5050565b600260019054906101000a900460ff1681565b6000601680549050905090565b601560149054906101000a900460ff1681565b6116c133612712565b611700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f790614320565b60405180910390fd5b6000601860006101000a81548160ff021916908315150217905550565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61176f33612712565b6117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590614320565b60405180910390fd5b60058110156117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e990614612565b60405180910390fd5b6103e8816004546118039190614632565b61180d919061439e565b60068190555050565b61181f33612712565b61185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590614320565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5457534849420000000000000000000000000000000000000000000000000000815250905090565b600260009054906101000a900460ff1681565b61194133612712565b611980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197790614320565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a3c33612712565b611a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7290614320565b60405180910390fd5b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611b0a33612712565b611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090614320565b60405180910390fd5b6001600260086101000a81548160ff021916908315150217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b993384846127cc565b905092915050565b611baa33612712565b611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090614320565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ca533611180565b611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb906146c0565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60035481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611dfa33612712565b611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3090614320565b60405180910390fd5b81601560146101000a81548160ff021916908315150217905550806007819055505050565b611e6733612712565b611ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9d90614320565b60405180910390fd5b60005b82829050811015611f4657600160146000858585818110611ecd57611ecc6146e0565b5b9050602002016020810190611ee29190613ec2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611f3e9061470f565b915050611ea9565b505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600367ffffffffffffffff811115611f8f57611f8e614757565b5b604051908082528060200260200182016040528015611fbd5781602001602082028036833780820191505090505b509050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110611ff757611ff66146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c2919061479b565b816001815181106120d6576120d56146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600281518110612125576121246146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f84836040518363ffffffff1660e01b81526004016121bc929190614886565b600060405180830381865afa1580156121d9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061220291906149c5565b600281518110612215576122146146e0565b5b6020026020010151915050919050565b61222e33611180565b61226d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612264906146c0565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6122d133612712565b612310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230790614320565b60405180910390fd5b6064811015612354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234b90614a80565b60405180910390fd5b80600454612362919061439e565b60078190555050565b61237433611180565b6123b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123aa906146c0565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516124799190614ac1565b60405180910390a150565b60175481565b61249333612712565b6124d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c990614320565b60405180910390fd5b60508183856124e19190614adc565b6124eb9190614adc565b60ff16111561252f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252690614b83565b60405180910390fd5b600260039054906101000a900460ff1660ff16828461254e9190614adc565b60ff161115612592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258990614c15565b60405180910390fd5b82600260006101000a81548160ff021916908360ff16021790555081600260016101000a81548160ff021916908360ff160217905550806002806101000a81548160ff021916908360ff1602179055508082846125ef9190614adc565b6125f99190614adc565b600260036101000a81548160ff021916908360ff160217905550505050565b61262133612712565b612660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265790614320565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008383111582906127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a79190613cab565b60405180910390fd5b50600083856127bf9190614c35565b9050809150509392505050565b6000600260089054906101000a900460ff166128715760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286790614cdb565b60405180910390fd5b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612919575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612a2157601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129c25750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a2057600654826129d48561171d565b6129de9190614cfb565b1115612a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1690614da1565b60405180910390fd5b5b5b612a2c848484612e8d565b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ad05750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0690614e33565b60405180910390fd5b612b17612fd9565b158015612b6d5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612bc7576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612bbe57600080fd5b612bc6612fe6565b5b60158054906101000a900460ff1615612bec57612be5848484612fef565b9050612e3c565b612c588260405180606001604052806023815260200161519660239139600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127689092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612ca6856131c2565b1580612cb85750612cb6846131c2565b155b15612cc557829050612d25565b6000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050612d21868286613219565b9150505b612d2e846133cd565b15612d3c57612d3b61349f565b5b612d8e81600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a6290919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e2e9190613c00565b60405180910390a360019150505b9392505050565b6000612e8583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612768565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612f35575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612fd45760055481111580612f945750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fca90614e9f565b60405180910390fd5b5b505050565b6000806003541415905090565b42600381905550565b600061307a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127689092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061310f82600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a6290919063ffffffff16565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131af9190613c00565b60405180910390a3600190509392505050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600260039054906101000a900460ff1660ff169050601860009054906101000a900460ff161561327857600260049054906101000a900460ff1660ff169050831561327757600260059054906101000a900460ff1660ff1690505b5b60006132b3600260069054906101000a900461ffff1661ffff166132a58487613ac090919063ffffffff16565b613b3a90919063ffffffff16565b905061330781600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a6290919063ffffffff16565b600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133a79190613c00565b60405180910390a36133c28185612e4390919063ffffffff16565b925050509392505050565b600060158054906101000a900460ff161580156133f65750601560149054906101000a900460ff165b801561344b5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156134985750600754600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b60016015806101000a81548160ff021916908315150217905550600080600260009054906101000a900460ff1660ff161115613536576135336002613525600260039054906101000a900460ff1660ff16613517600260009054906101000a900460ff1660ff16600754613ac090919063ffffffff16565b613b3a90919063ffffffff16565b613b3a90919063ffffffff16565b90505b6000613581600260039054906101000a900460ff1660ff1661357360028054906101000a900460ff1660ff16600754613ac090919063ffffffff16565b613b3a90919063ffffffff16565b90506135b030600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612fef565b5060006135da826135cc85600754612e4390919063ffffffff16565b612e4390919063ffffffff16565b90506000600267ffffffffffffffff8111156135f9576135f8614757565b5b6040519080825280602002602001820160405280156136275781602001602082028036833780820191505090505b509050308160008151811061363f5761363e6146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061370a919061479b565b8160018151811061371e5761371d6146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94784600085306064426137ad9190614cfb565b6040518663ffffffff1660e01b81526004016137cd959493929190614efa565b600060405180830381600087803b1580156137e757600080fd5b505af11580156137fb573d6000803e3d6000fd5b5050505060006138148247612e4390919063ffffffff16565b9050600060028060009054906101000a900460ff166138339190614f54565b600260039054906101000a900460ff1661384d9190614f85565b60ff1690506000811115613a3f57600080600260019054906101000a900460ff1660ff16111561391a576138ae826138a0600260019054906101000a900460ff1660ff1686613ac090919063ffffffff16565b613b3a90919063ffffffff16565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613918573d6000803e3d6000fd5b505b6000881115613a3d57600081846139319190614c35565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308c600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016139bc96959493929190614fba565b60606040518083038185885af11580156139da573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906139ff919061501b565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506818a604051613a3392919061506e565b60405180910390a1505b505b5050505050505060006015806101000a81548160ff021916908315150217905550565b6000808284613a719190614cfb565b905083811015613ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aad906150e3565b60405180910390fd5b8091505092915050565b6000808303613ad25760009050613b34565b60008284613ae09190614632565b9050828482613aef919061439e565b14613b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b2690615175565b60405180910390fd5b809150505b92915050565b6000613b7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b84565b905092915050565b60008083118290613bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bc29190613cab565b60405180910390fd5b5060008385613bda919061439e565b9050809150509392505050565b6000819050919050565b613bfa81613be7565b82525050565b6000602082019050613c156000830184613bf1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c55578082015181840152602081019050613c3a565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c7d82613c1b565b613c878185613c26565b9350613c97818560208601613c37565b613ca081613c61565b840191505092915050565b60006020820190508181036000830152613cc58184613c72565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d0c82613ce1565b9050919050565b613d1c81613d01565b8114613d2757600080fd5b50565b600081359050613d3981613d13565b92915050565b613d4881613be7565b8114613d5357600080fd5b50565b600081359050613d6581613d3f565b92915050565b60008060408385031215613d8257613d81613cd7565b5b6000613d9085828601613d2a565b9250506020613da185828601613d56565b9150509250929050565b60008115159050919050565b613dc081613dab565b82525050565b6000602082019050613ddb6000830184613db7565b92915050565b600060208284031215613df757613df6613cd7565b5b6000613e0584828501613d56565b91505092915050565b613e1781613d01565b82525050565b6000602082019050613e326000830184613e0e565b92915050565b600060ff82169050919050565b613e4e81613e38565b82525050565b6000602082019050613e696000830184613e45565b92915050565b600080600060608486031215613e8857613e87613cd7565b5b6000613e9686828701613d2a565b9350506020613ea786828701613d2a565b9250506040613eb886828701613d56565b9150509250925092565b600060208284031215613ed857613ed7613cd7565b5b6000613ee684828501613d2a565b91505092915050565b600061ffff82169050919050565b613f0681613eef565b82525050565b6000602082019050613f216000830184613efd565b92915050565b613f3081613e38565b8114613f3b57600080fd5b50565b600081359050613f4d81613f27565b92915050565b60008060408385031215613f6a57613f69613cd7565b5b6000613f7885828601613f3e565b9250506020613f8985828601613f3e565b9150509250929050565b613f9c81613dab565b8114613fa757600080fd5b50565b600081359050613fb981613f93565b92915050565b60008060408385031215613fd657613fd5613cd7565b5b6000613fe485828601613d2a565b9250506020613ff585828601613faa565b9150509250929050565b600061400a82613d01565b9050919050565b61401a81613fff565b811461402557600080fd5b50565b60008135905061403781614011565b92915050565b60006020828403121561405357614052613cd7565b5b600061406184828501614028565b91505092915050565b6000806040838503121561408157614080613cd7565b5b600061408f85828601613d2a565b92505060206140a085828601613d2a565b9150509250929050565b600080604083850312156140c1576140c0613cd7565b5b60006140cf85828601613faa565b92505060206140e085828601613d56565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261410f5761410e6140ea565b5b8235905067ffffffffffffffff81111561412c5761412b6140ef565b5b602083019150836020820283011115614148576141476140f4565b5b9250929050565b6000806020838503121561416657614165613cd7565b5b600083013567ffffffffffffffff81111561418457614183613cdc565b5b614190858286016140f9565b92509250509250929050565b60006141a782613ce1565b9050919050565b6141b78161419c565b81146141c257600080fd5b50565b6000813590506141d4816141ae565b92915050565b6000602082840312156141f0576141ef613cd7565b5b60006141fe848285016141c5565b91505092915050565b6000806000606084860312156142205761421f613cd7565b5b600061422e86828701613f3e565b935050602061423f86828701613f3e565b925050604061425086828701613f3e565b9150509250925092565b6000819050919050565b600061427f61427a61427584613ce1565b61425a565b613ce1565b9050919050565b600061429182614264565b9050919050565b60006142a382614286565b9050919050565b6142b381614298565b82525050565b60006020820190506142ce60008301846142aa565b92915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061430a600b83613c26565b9150614315826142d4565b602082019050919050565b60006020820190508181036000830152614339816142fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006143a982613be7565b91506143b483613be7565b9250826143c4576143c3614340565b5b828204905092915050565b7f546f6b656e436f6e74726163742c206d7573742062652068696768657220746860008201527f616e20302e352500000000000000000000000000000000000000000000000000602082015250565b600061442b602783613c26565b9150614436826143cf565b604082019050919050565b6000602082019050818103600083015261445a8161441e565b9050919050565b7f546f6b656e436f6e74726163742c2063616e206f6e6c79206576657220696e6360008201527f726561736520746865207478206c696d69740000000000000000000000000000602082015250565b60006144bd603283613c26565b91506144c882614461565b604082019050919050565b600060208201905081810360008301526144ec816144b0565b9050919050565b60008151905061450281613d3f565b92915050565b60006020828403121561451e5761451d613cd7565b5b600061452c848285016144f3565b91505092915050565b600060408201905061454a6000830185613e0e565b6145576020830184613bf1565b9392505050565b60008151905061456d81613f93565b92915050565b60006020828403121561458957614588613cd7565b5b60006145978482850161455e565b91505092915050565b7f546f6b656e436f6e74726163742c206d617820686f6c642063616e6e6f74206260008201527f65206c657373207468616e20302e352500000000000000000000000000000000602082015250565b60006145fc603083613c26565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b600061463d82613be7565b915061464883613be7565b925082820261465681613be7565b9150828204841483151761466d5761466c61436f565b5b5092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006146aa600683613c26565b91506146b582614674565b602082019050919050565b600060208201905081810360008301526146d98161469d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061471a82613be7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361474c5761474b61436f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061479581613d13565b92915050565b6000602082840312156147b1576147b0613cd7565b5b60006147bf84828501614786565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147fd81613d01565b82525050565b600061480f83836147f4565b60208301905092915050565b6000602082019050919050565b6000614833826147c8565b61483d81856147d3565b9350614848836147e4565b8060005b838110156148795781516148608882614803565b975061486b8361481b565b92505060018101905061484c565b5085935050505092915050565b600060408201905061489b6000830185613bf1565b81810360208301526148ad8184614828565b90509392505050565b6148bf82613c61565b810181811067ffffffffffffffff821117156148de576148dd614757565b5b80604052505050565b60006148f1613ccd565b90506148fd82826148b6565b919050565b600067ffffffffffffffff82111561491d5761491c614757565b5b602082029050602081019050919050565b600061494161493c84614902565b6148e7565b90508083825260208201905060208402830185811115614964576149636140f4565b5b835b8181101561498d578061497988826144f3565b845260208401935050602081019050614966565b5050509392505050565b600082601f8301126149ac576149ab6140ea565b5b81516149bc84826020860161492e565b91505092915050565b6000602082840312156149db576149da613cd7565b5b600082015167ffffffffffffffff8111156149f9576149f8613cdc565b5b614a0584828501614997565b91505092915050565b7f546f6b656e436f6e74726163743a206d61782073656c6c2070657263656e742060008201527f6973203125000000000000000000000000000000000000000000000000000000602082015250565b6000614a6a602583613c26565b9150614a7582614a0e565b604082019050919050565b60006020820190508181036000830152614a9981614a5d565b9050919050565b6000614aab82614286565b9050919050565b614abb81614aa0565b82525050565b6000602082019050614ad66000830184614ab2565b92915050565b6000614ae782613e38565b9150614af283613e38565b9250828201905060ff811115614b0b57614b0a61436f565b5b92915050565b7f546f6b656e436f6e74726163742074617865732063616e206e6576657220657860008201527f6365656420382500000000000000000000000000000000000000000000000000602082015250565b6000614b6d602783613c26565b9150614b7882614b11565b604082019050919050565b60006020820190508181036000830152614b9c81614b60565b9050919050565b7f546f6b656e436f6e74726163742c2074617865732063616e206f6e6c7920657660008201527f6572206368616e676520726174696f0000000000000000000000000000000000602082015250565b6000614bff602f83613c26565b9150614c0a82614ba3565b604082019050919050565b60006020820190508181036000830152614c2e81614bf2565b9050919050565b6000614c4082613be7565b9150614c4b83613be7565b9250828203905081811115614c6357614c6261436f565b5b92915050565b7f546f6b656e436f6e74726163742c204f6e6c79206f776e6572206f722070726560008201527f73616c6520436f6e747261637420616c6c6f77656420746f20616464204c5000602082015250565b6000614cc5603f83613c26565b9150614cd082614c69565b604082019050919050565b60006020820190508181036000830152614cf481614cb8565b9050919050565b6000614d0682613be7565b9150614d1183613be7565b9250828201905080821115614d2957614d2861436f565b5b92915050565b7f546f6b656e436f6e74726163742c2063616e7420686f6c64206d6f726520746860008201527f616e206d617820686f6c6420647564652c20736f727279000000000000000000602082015250565b6000614d8b603783613c26565b9150614d9682614d2f565b604082019050919050565b60006020820190508181036000830152614dba81614d7e565b9050919050565b7f546f6b656e436f6e74726163742c20536f7272792062726f2c20796f7572652060008201527f626c61636b6c6973746564000000000000000000000000000000000000000000602082015250565b6000614e1d602b83613c26565b9150614e2882614dc1565b604082019050919050565b60006020820190508181036000830152614e4c81614e10565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614e89601183613c26565b9150614e9482614e53565b602082019050919050565b60006020820190508181036000830152614eb881614e7c565b9050919050565b6000819050919050565b6000614ee4614edf614eda84614ebf565b61425a565b613be7565b9050919050565b614ef481614ec9565b82525050565b600060a082019050614f0f6000830188613bf1565b614f1c6020830187614eeb565b8181036040830152614f2e8186614828565b9050614f3d6060830185613e0e565b614f4a6080830184613bf1565b9695505050505050565b6000614f5f82613e38565b9150614f6a83613e38565b925082614f7a57614f79614340565b5b828204905092915050565b6000614f9082613e38565b9150614f9b83613e38565b9250828203905060ff811115614fb457614fb361436f565b5b92915050565b600060c082019050614fcf6000830189613e0e565b614fdc6020830188613bf1565b614fe96040830187614eeb565b614ff66060830186614eeb565b6150036080830185613e0e565b61501060a0830184613bf1565b979650505050505050565b60008060006060848603121561503457615033613cd7565b5b6000615042868287016144f3565b9350506020615053868287016144f3565b9250506040615064868287016144f3565b9150509250925092565b60006040820190506150836000830185613bf1565b6150906020830184613bf1565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006150cd601b83613c26565b91506150d882615097565b602082019050919050565b600060208201905081810360008301526150fc816150c0565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061515f602183613c26565b915061516a82615103565b604082019050919050565b6000602082019050818103600083015261518e81615152565b905091905056fe546f6b656e436f6e74726163742c20496e73756666696369656e742042616c616e6365a2646970667358221220957899e04d4c830b04f1702c40539790a76e109bd4b6ab7108a8ce417692f93164736f6c63430008110033000000000000000000000000c6c2aac7996d6670c25ea821816d67aadb6e89e3

Deployed Bytecode

0x60806040526004361061036f5760003560e01c80637d1db4a5116101c6578063df20fd49116100f7578063f5676f8f11610095578063f887ea401161006f578063f887ea4014610c8f578063fce589d814610cba578063fe33b30214610ce5578063fe9fbb8014610d2257610376565b8063f5676f8f14610c12578063f6794fdb14610c3d578063f84ba65d14610c6657610376565b8063ee8969c5116100d1578063ee8969c514610b5a578063f0b37c0414610b97578063f1366d9a14610bc0578063f2fde38b14610be957610376565b8063df20fd4914610add578063e405be2914610b06578063e96fada214610b2f57610376565b8063a8aa1b3111610164578063b6a5d7de1161013e578063b6a5d7de14610a21578063bf56b37114610a4a578063ca33e64c14610a75578063dd62ed3e14610aa057610376565b8063a8aa1b3114610990578063a9059cbb146109bb578063af6c9c1d146109f857610376565b806398118cb4116101a057806398118cb4146108fc578063a41d40e114610927578063a4b45c0014610950578063a63342311461097957610376565b80637d1db4a51461087b578063893d20e8146108a657806395d89b41146108d157610376565b806332406b35116102a05780636b67c4df1161023e5780636f2a4914116102185780636f2a4914146107d557806370a08231146107ec578063715b1c3b14610829578063759f62a61461085257610376565b80636b67c4df146107545780636bad6a6a1461077f5780636ddd1713146107aa57610376565b8063571ac8b01161027a578063571ac8b01461069c5780635c85974f146106d9578063658d4b7f1461070257806366bb5dd31461072b57610376565b806332406b351461061d5780633ab045de1461064857806342c7a6f71461067357610376565b806323b872dd1161030d5780632f05205c116102e75780632f05205c1461055f5780632f54bf6e1461058a578063313ce567146105c757806331e02e0b146105f257610376565b806323b872dd146104cc5780632b112e49146105095780632b36a6d21461053457610376565b806318160ddd1161034957806318160ddd1461040e5780631936d368146104395780631df4ccfc146104765780631fc9efa1146104a157610376565b80630445b6671461037b57806306fdde03146103a6578063095ea7b3146103d157610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d5f565b60405161039d9190613c00565b60405180910390f35b3480156103b257600080fd5b506103bb610d65565b6040516103c89190613cab565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f39190613d6b565b610da2565b6040516104059190613dc6565b60405180910390f35b34801561041a57600080fd5b50610423610e94565b6040516104309190613c00565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190613de1565b610e9e565b60405161046d9190613e1d565b60405180910390f35b34801561048257600080fd5b5061048b610edd565b6040516104989190613e54565b60405180910390f35b3480156104ad57600080fd5b506104b6610ef0565b6040516104c39190613c00565b60405180910390f35b3480156104d857600080fd5b506104f360048036038101906104ee9190613e6f565b610ef6565b6040516105009190613dc6565b60405180910390f35b34801561051557600080fd5b5061051e6110d8565b60405161052b9190613c00565b60405180910390f35b34801561054057600080fd5b5061054961115a565b6040516105569190613e54565b60405180910390f35b34801561056b57600080fd5b5061057461116d565b6040516105819190613dc6565b60405180910390f35b34801561059657600080fd5b506105b160048036038101906105ac9190613ec2565b611180565b6040516105be9190613dc6565b60405180910390f35b3480156105d357600080fd5b506105dc6111d9565b6040516105e99190613e54565b60405180910390f35b3480156105fe57600080fd5b506106076111e2565b6040516106149190613e54565b60405180910390f35b34801561062957600080fd5b506106326111f5565b60405161063f9190613dc6565b60405180910390f35b34801561065457600080fd5b5061065d611208565b60405161066a9190613f0c565b60405180910390f35b34801561067f57600080fd5b5061069a60048036038101906106959190613f53565b61121c565b005b3480156106a857600080fd5b506106c360048036038101906106be9190613ec2565b611318565b6040516106d09190613dc6565b60405180910390f35b3480156106e557600080fd5b5061070060048036038101906106fb9190613de1565b61132d565b005b34801561070e57600080fd5b5061072960048036038101906107249190613fbf565b611414565b005b34801561073757600080fd5b50610752600480360381019061074d919061403d565b6114b7565b005b34801561076057600080fd5b50610769611685565b6040516107769190613e54565b60405180910390f35b34801561078b57600080fd5b50610794611698565b6040516107a19190613c00565b60405180910390f35b3480156107b657600080fd5b506107bf6116a5565b6040516107cc9190613dc6565b60405180910390f35b3480156107e157600080fd5b506107ea6116b8565b005b3480156107f857600080fd5b50610813600480360381019061080e9190613ec2565b61171d565b6040516108209190613c00565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190613de1565b611766565b005b34801561085e57600080fd5b5061087960048036038101906108749190613fbf565b611816565b005b34801561088757600080fd5b506108906118b9565b60405161089d9190613c00565b60405180910390f35b3480156108b257600080fd5b506108bb6118bf565b6040516108c89190613e1d565b60405180910390f35b3480156108dd57600080fd5b506108e66118e8565b6040516108f39190613cab565b60405180910390f35b34801561090857600080fd5b50610911611925565b60405161091e9190613e54565b60405180910390f35b34801561093357600080fd5b5061094e60048036038101906109499190613ec2565b611938565b005b34801561095c57600080fd5b506109776004803603810190610972919061406a565b611a33565b005b34801561098557600080fd5b5061098e611b01565b005b34801561099c57600080fd5b506109a5611b66565b6040516109b29190613e1d565b60405180910390f35b3480156109c757600080fd5b506109e260048036038101906109dd9190613d6b565b611b8c565b6040516109ef9190613dc6565b60405180910390f35b348015610a0457600080fd5b50610a1f6004803603810190610a1a9190613ec2565b611ba1565b005b348015610a2d57600080fd5b50610a486004803603810190610a439190613ec2565b611c9c565b005b348015610a5657600080fd5b50610a5f611d3e565b604051610a6c9190613c00565b60405180910390f35b348015610a8157600080fd5b50610a8a611d44565b604051610a979190613e1d565b60405180910390f35b348015610aac57600080fd5b50610ac76004803603810190610ac2919061406a565b611d6a565b604051610ad49190613c00565b60405180910390f35b348015610ae957600080fd5b50610b046004803603810190610aff91906140aa565b611df1565b005b348015610b1257600080fd5b50610b2d6004803603810190610b28919061414f565b611e5e565b005b348015610b3b57600080fd5b50610b44611f4b565b604051610b519190613e1d565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613de1565b611f71565b604051610b8e9190613c00565b60405180910390f35b348015610ba357600080fd5b50610bbe6004803603810190610bb99190613ec2565b612225565b005b348015610bcc57600080fd5b50610be76004803603810190610be29190613de1565b6122c8565b005b348015610bf557600080fd5b50610c106004803603810190610c0b91906141da565b61236b565b005b348015610c1e57600080fd5b50610c27612484565b604051610c349190613c00565b60405180910390f35b348015610c4957600080fd5b50610c646004803603810190610c5f9190614207565b61248a565b005b348015610c7257600080fd5b50610c8d6004803603810190610c889190613fbf565b612618565b005b348015610c9b57600080fd5b50610ca46126bb565b604051610cb191906142b9565b60405180910390f35b348015610cc657600080fd5b50610ccf6126e1565b604051610cdc9190613e54565b60405180910390f35b348015610cf157600080fd5b50610d0c6004803603810190610d079190613ec2565b6126f2565b604051610d199190613dc6565b60405180910390f35b348015610d2e57600080fd5b50610d496004803603810190610d449190613ec2565b612712565b604051610d569190613dc6565b60405180910390f35b60075481565b60606040518060400160405280601181526020017f5457697474657220534869626120696e75000000000000000000000000000000815250905090565b600081600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e829190613c00565b60405180910390a36001905092915050565b6000600454905090565b60168181548110610eae57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260039054906101000a900460ff1681565b60065481565b6000600454600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110c457611043826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127689092919063ffffffff16565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110cf8484846127cc565b90509392505050565b6000611155611108600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661171d565b611147611136600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661171d565b600454612e4390919063ffffffff16565b612e4390919063ffffffff16565b905090565b600260049054906101000a900460ff1681565b600260089054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b600260059054906101000a900460ff1681565b601860009054906101000a900460ff1681565b600260069054906101000a900461ffff1681565b61122533612712565b611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90614320565b60405180910390fd5b8160ff16600260059054906101000a900460ff1660ff16106112a05781600260056101000a81548160ff021916908360ff1602179055506112bc565b6000601860006101000a81548160ff0219169083151502179055505b8060ff16600260049054906101000a900460ff1660ff16106112f85780600260046101000a81548160ff021916908360ff160217905550611314565b6000601860006101000a81548160ff0219169083151502179055505b5050565b600061132682600454610da2565b9050919050565b61133633612712565b611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90614320565b60405180910390fd5b60c8600454611384919061439e565b8110156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd90614441565b60405180910390fd5b600554811161140a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611401906144d3565b60405180910390fd5b8060058190555050565b61141d33612712565b61145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145390614320565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114c033612712565b6114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690614320565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611567573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115e09190613e1d565b602060405180830381865afa1580156115fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116219190614508565b6040518363ffffffff1660e01b815260040161163e929190614535565b6020604051808303816000875af115801561165d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116819190614573565b5050565b600260019054906101000a900460ff1681565b6000601680549050905090565b601560149054906101000a900460ff1681565b6116c133612712565b611700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f790614320565b60405180910390fd5b6000601860006101000a81548160ff021916908315150217905550565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61176f33612712565b6117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590614320565b60405180910390fd5b60058110156117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e990614612565b60405180910390fd5b6103e8816004546118039190614632565b61180d919061439e565b60068190555050565b61181f33612712565b61185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590614320565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5457534849420000000000000000000000000000000000000000000000000000815250905090565b600260009054906101000a900460ff1681565b61194133612712565b611980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197790614320565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a3c33612712565b611a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7290614320565b60405180910390fd5b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611b0a33612712565b611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090614320565b60405180910390fd5b6001600260086101000a81548160ff021916908315150217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b993384846127cc565b905092915050565b611baa33612712565b611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090614320565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ca533611180565b611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb906146c0565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60035481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611dfa33612712565b611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3090614320565b60405180910390fd5b81601560146101000a81548160ff021916908315150217905550806007819055505050565b611e6733612712565b611ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9d90614320565b60405180910390fd5b60005b82829050811015611f4657600160146000858585818110611ecd57611ecc6146e0565b5b9050602002016020810190611ee29190613ec2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611f3e9061470f565b915050611ea9565b505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600367ffffffffffffffff811115611f8f57611f8e614757565b5b604051908082528060200260200182016040528015611fbd5781602001602082028036833780820191505090505b509050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110611ff757611ff66146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c2919061479b565b816001815181106120d6576120d56146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600281518110612125576121246146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f84836040518363ffffffff1660e01b81526004016121bc929190614886565b600060405180830381865afa1580156121d9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061220291906149c5565b600281518110612215576122146146e0565b5b6020026020010151915050919050565b61222e33611180565b61226d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612264906146c0565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6122d133612712565b612310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230790614320565b60405180910390fd5b6064811015612354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234b90614a80565b60405180910390fd5b80600454612362919061439e565b60078190555050565b61237433611180565b6123b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123aa906146c0565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516124799190614ac1565b60405180910390a150565b60175481565b61249333612712565b6124d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c990614320565b60405180910390fd5b60508183856124e19190614adc565b6124eb9190614adc565b60ff16111561252f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252690614b83565b60405180910390fd5b600260039054906101000a900460ff1660ff16828461254e9190614adc565b60ff161115612592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258990614c15565b60405180910390fd5b82600260006101000a81548160ff021916908360ff16021790555081600260016101000a81548160ff021916908360ff160217905550806002806101000a81548160ff021916908360ff1602179055508082846125ef9190614adc565b6125f99190614adc565b600260036101000a81548160ff021916908360ff160217905550505050565b61262133612712565b612660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265790614320565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008383111582906127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a79190613cab565b60405180910390fd5b50600083856127bf9190614c35565b9050809150509392505050565b6000600260089054906101000a900460ff166128715760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286790614cdb565b60405180910390fd5b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612919575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612a2157601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129c25750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a2057600654826129d48561171d565b6129de9190614cfb565b1115612a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1690614da1565b60405180910390fd5b5b5b612a2c848484612e8d565b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ad05750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0690614e33565b60405180910390fd5b612b17612fd9565b158015612b6d5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612bc7576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612bbe57600080fd5b612bc6612fe6565b5b60158054906101000a900460ff1615612bec57612be5848484612fef565b9050612e3c565b612c588260405180606001604052806023815260200161519660239139600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127689092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612ca6856131c2565b1580612cb85750612cb6846131c2565b155b15612cc557829050612d25565b6000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050612d21868286613219565b9150505b612d2e846133cd565b15612d3c57612d3b61349f565b5b612d8e81600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a6290919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e2e9190613c00565b60405180910390a360019150505b9392505050565b6000612e8583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612768565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612f35575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612fd45760055481111580612f945750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fca90614e9f565b60405180910390fd5b5b505050565b6000806003541415905090565b42600381905550565b600061307a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127689092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061310f82600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a6290919063ffffffff16565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131af9190613c00565b60405180910390a3600190509392505050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600260039054906101000a900460ff1660ff169050601860009054906101000a900460ff161561327857600260049054906101000a900460ff1660ff169050831561327757600260059054906101000a900460ff1660ff1690505b5b60006132b3600260069054906101000a900461ffff1661ffff166132a58487613ac090919063ffffffff16565b613b3a90919063ffffffff16565b905061330781600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a6290919063ffffffff16565b600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133a79190613c00565b60405180910390a36133c28185612e4390919063ffffffff16565b925050509392505050565b600060158054906101000a900460ff161580156133f65750601560149054906101000a900460ff165b801561344b5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156134985750600754600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b60016015806101000a81548160ff021916908315150217905550600080600260009054906101000a900460ff1660ff161115613536576135336002613525600260039054906101000a900460ff1660ff16613517600260009054906101000a900460ff1660ff16600754613ac090919063ffffffff16565b613b3a90919063ffffffff16565b613b3a90919063ffffffff16565b90505b6000613581600260039054906101000a900460ff1660ff1661357360028054906101000a900460ff1660ff16600754613ac090919063ffffffff16565b613b3a90919063ffffffff16565b90506135b030600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612fef565b5060006135da826135cc85600754612e4390919063ffffffff16565b612e4390919063ffffffff16565b90506000600267ffffffffffffffff8111156135f9576135f8614757565b5b6040519080825280602002602001820160405280156136275781602001602082028036833780820191505090505b509050308160008151811061363f5761363e6146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061370a919061479b565b8160018151811061371e5761371d6146e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94784600085306064426137ad9190614cfb565b6040518663ffffffff1660e01b81526004016137cd959493929190614efa565b600060405180830381600087803b1580156137e757600080fd5b505af11580156137fb573d6000803e3d6000fd5b5050505060006138148247612e4390919063ffffffff16565b9050600060028060009054906101000a900460ff166138339190614f54565b600260039054906101000a900460ff1661384d9190614f85565b60ff1690506000811115613a3f57600080600260019054906101000a900460ff1660ff16111561391a576138ae826138a0600260019054906101000a900460ff1660ff1686613ac090919063ffffffff16565b613b3a90919063ffffffff16565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613918573d6000803e3d6000fd5b505b6000881115613a3d57600081846139319190614c35565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308c600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016139bc96959493929190614fba565b60606040518083038185885af11580156139da573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906139ff919061501b565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506818a604051613a3392919061506e565b60405180910390a1505b505b5050505050505060006015806101000a81548160ff021916908315150217905550565b6000808284613a719190614cfb565b905083811015613ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aad906150e3565b60405180910390fd5b8091505092915050565b6000808303613ad25760009050613b34565b60008284613ae09190614632565b9050828482613aef919061439e565b14613b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b2690615175565b60405180910390fd5b809150505b92915050565b6000613b7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b84565b905092915050565b60008083118290613bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bc29190613cab565b60405180910390fd5b5060008385613bda919061439e565b9050809150509392505050565b6000819050919050565b613bfa81613be7565b82525050565b6000602082019050613c156000830184613bf1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c55578082015181840152602081019050613c3a565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c7d82613c1b565b613c878185613c26565b9350613c97818560208601613c37565b613ca081613c61565b840191505092915050565b60006020820190508181036000830152613cc58184613c72565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d0c82613ce1565b9050919050565b613d1c81613d01565b8114613d2757600080fd5b50565b600081359050613d3981613d13565b92915050565b613d4881613be7565b8114613d5357600080fd5b50565b600081359050613d6581613d3f565b92915050565b60008060408385031215613d8257613d81613cd7565b5b6000613d9085828601613d2a565b9250506020613da185828601613d56565b9150509250929050565b60008115159050919050565b613dc081613dab565b82525050565b6000602082019050613ddb6000830184613db7565b92915050565b600060208284031215613df757613df6613cd7565b5b6000613e0584828501613d56565b91505092915050565b613e1781613d01565b82525050565b6000602082019050613e326000830184613e0e565b92915050565b600060ff82169050919050565b613e4e81613e38565b82525050565b6000602082019050613e696000830184613e45565b92915050565b600080600060608486031215613e8857613e87613cd7565b5b6000613e9686828701613d2a565b9350506020613ea786828701613d2a565b9250506040613eb886828701613d56565b9150509250925092565b600060208284031215613ed857613ed7613cd7565b5b6000613ee684828501613d2a565b91505092915050565b600061ffff82169050919050565b613f0681613eef565b82525050565b6000602082019050613f216000830184613efd565b92915050565b613f3081613e38565b8114613f3b57600080fd5b50565b600081359050613f4d81613f27565b92915050565b60008060408385031215613f6a57613f69613cd7565b5b6000613f7885828601613f3e565b9250506020613f8985828601613f3e565b9150509250929050565b613f9c81613dab565b8114613fa757600080fd5b50565b600081359050613fb981613f93565b92915050565b60008060408385031215613fd657613fd5613cd7565b5b6000613fe485828601613d2a565b9250506020613ff585828601613faa565b9150509250929050565b600061400a82613d01565b9050919050565b61401a81613fff565b811461402557600080fd5b50565b60008135905061403781614011565b92915050565b60006020828403121561405357614052613cd7565b5b600061406184828501614028565b91505092915050565b6000806040838503121561408157614080613cd7565b5b600061408f85828601613d2a565b92505060206140a085828601613d2a565b9150509250929050565b600080604083850312156140c1576140c0613cd7565b5b60006140cf85828601613faa565b92505060206140e085828601613d56565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261410f5761410e6140ea565b5b8235905067ffffffffffffffff81111561412c5761412b6140ef565b5b602083019150836020820283011115614148576141476140f4565b5b9250929050565b6000806020838503121561416657614165613cd7565b5b600083013567ffffffffffffffff81111561418457614183613cdc565b5b614190858286016140f9565b92509250509250929050565b60006141a782613ce1565b9050919050565b6141b78161419c565b81146141c257600080fd5b50565b6000813590506141d4816141ae565b92915050565b6000602082840312156141f0576141ef613cd7565b5b60006141fe848285016141c5565b91505092915050565b6000806000606084860312156142205761421f613cd7565b5b600061422e86828701613f3e565b935050602061423f86828701613f3e565b925050604061425086828701613f3e565b9150509250925092565b6000819050919050565b600061427f61427a61427584613ce1565b61425a565b613ce1565b9050919050565b600061429182614264565b9050919050565b60006142a382614286565b9050919050565b6142b381614298565b82525050565b60006020820190506142ce60008301846142aa565b92915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061430a600b83613c26565b9150614315826142d4565b602082019050919050565b60006020820190508181036000830152614339816142fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006143a982613be7565b91506143b483613be7565b9250826143c4576143c3614340565b5b828204905092915050565b7f546f6b656e436f6e74726163742c206d7573742062652068696768657220746860008201527f616e20302e352500000000000000000000000000000000000000000000000000602082015250565b600061442b602783613c26565b9150614436826143cf565b604082019050919050565b6000602082019050818103600083015261445a8161441e565b9050919050565b7f546f6b656e436f6e74726163742c2063616e206f6e6c79206576657220696e6360008201527f726561736520746865207478206c696d69740000000000000000000000000000602082015250565b60006144bd603283613c26565b91506144c882614461565b604082019050919050565b600060208201905081810360008301526144ec816144b0565b9050919050565b60008151905061450281613d3f565b92915050565b60006020828403121561451e5761451d613cd7565b5b600061452c848285016144f3565b91505092915050565b600060408201905061454a6000830185613e0e565b6145576020830184613bf1565b9392505050565b60008151905061456d81613f93565b92915050565b60006020828403121561458957614588613cd7565b5b60006145978482850161455e565b91505092915050565b7f546f6b656e436f6e74726163742c206d617820686f6c642063616e6e6f74206260008201527f65206c657373207468616e20302e352500000000000000000000000000000000602082015250565b60006145fc603083613c26565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b600061463d82613be7565b915061464883613be7565b925082820261465681613be7565b9150828204841483151761466d5761466c61436f565b5b5092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006146aa600683613c26565b91506146b582614674565b602082019050919050565b600060208201905081810360008301526146d98161469d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061471a82613be7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361474c5761474b61436f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061479581613d13565b92915050565b6000602082840312156147b1576147b0613cd7565b5b60006147bf84828501614786565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147fd81613d01565b82525050565b600061480f83836147f4565b60208301905092915050565b6000602082019050919050565b6000614833826147c8565b61483d81856147d3565b9350614848836147e4565b8060005b838110156148795781516148608882614803565b975061486b8361481b565b92505060018101905061484c565b5085935050505092915050565b600060408201905061489b6000830185613bf1565b81810360208301526148ad8184614828565b90509392505050565b6148bf82613c61565b810181811067ffffffffffffffff821117156148de576148dd614757565b5b80604052505050565b60006148f1613ccd565b90506148fd82826148b6565b919050565b600067ffffffffffffffff82111561491d5761491c614757565b5b602082029050602081019050919050565b600061494161493c84614902565b6148e7565b90508083825260208201905060208402830185811115614964576149636140f4565b5b835b8181101561498d578061497988826144f3565b845260208401935050602081019050614966565b5050509392505050565b600082601f8301126149ac576149ab6140ea565b5b81516149bc84826020860161492e565b91505092915050565b6000602082840312156149db576149da613cd7565b5b600082015167ffffffffffffffff8111156149f9576149f8613cdc565b5b614a0584828501614997565b91505092915050565b7f546f6b656e436f6e74726163743a206d61782073656c6c2070657263656e742060008201527f6973203125000000000000000000000000000000000000000000000000000000602082015250565b6000614a6a602583613c26565b9150614a7582614a0e565b604082019050919050565b60006020820190508181036000830152614a9981614a5d565b9050919050565b6000614aab82614286565b9050919050565b614abb81614aa0565b82525050565b6000602082019050614ad66000830184614ab2565b92915050565b6000614ae782613e38565b9150614af283613e38565b9250828201905060ff811115614b0b57614b0a61436f565b5b92915050565b7f546f6b656e436f6e74726163742074617865732063616e206e6576657220657860008201527f6365656420382500000000000000000000000000000000000000000000000000602082015250565b6000614b6d602783613c26565b9150614b7882614b11565b604082019050919050565b60006020820190508181036000830152614b9c81614b60565b9050919050565b7f546f6b656e436f6e74726163742c2074617865732063616e206f6e6c7920657660008201527f6572206368616e676520726174696f0000000000000000000000000000000000602082015250565b6000614bff602f83613c26565b9150614c0a82614ba3565b604082019050919050565b60006020820190508181036000830152614c2e81614bf2565b9050919050565b6000614c4082613be7565b9150614c4b83613be7565b9250828203905081811115614c6357614c6261436f565b5b92915050565b7f546f6b656e436f6e74726163742c204f6e6c79206f776e6572206f722070726560008201527f73616c6520436f6e747261637420616c6c6f77656420746f20616464204c5000602082015250565b6000614cc5603f83613c26565b9150614cd082614c69565b604082019050919050565b60006020820190508181036000830152614cf481614cb8565b9050919050565b6000614d0682613be7565b9150614d1183613be7565b9250828201905080821115614d2957614d2861436f565b5b92915050565b7f546f6b656e436f6e74726163742c2063616e7420686f6c64206d6f726520746860008201527f616e206d617820686f6c6420647564652c20736f727279000000000000000000602082015250565b6000614d8b603783613c26565b9150614d9682614d2f565b604082019050919050565b60006020820190508181036000830152614dba81614d7e565b9050919050565b7f546f6b656e436f6e74726163742c20536f7272792062726f2c20796f7572652060008201527f626c61636b6c6973746564000000000000000000000000000000000000000000602082015250565b6000614e1d602b83613c26565b9150614e2882614dc1565b604082019050919050565b60006020820190508181036000830152614e4c81614e10565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614e89601183613c26565b9150614e9482614e53565b602082019050919050565b60006020820190508181036000830152614eb881614e7c565b9050919050565b6000819050919050565b6000614ee4614edf614eda84614ebf565b61425a565b613be7565b9050919050565b614ef481614ec9565b82525050565b600060a082019050614f0f6000830188613bf1565b614f1c6020830187614eeb565b8181036040830152614f2e8186614828565b9050614f3d6060830185613e0e565b614f4a6080830184613bf1565b9695505050505050565b6000614f5f82613e38565b9150614f6a83613e38565b925082614f7a57614f79614340565b5b828204905092915050565b6000614f9082613e38565b9150614f9b83613e38565b9250828203905060ff811115614fb457614fb361436f565b5b92915050565b600060c082019050614fcf6000830189613e0e565b614fdc6020830188613bf1565b614fe96040830187614eeb565b614ff66060830186614eeb565b6150036080830185613e0e565b61501060a0830184613bf1565b979650505050505050565b60008060006060848603121561503457615033613cd7565b5b6000615042868287016144f3565b9350506020615053868287016144f3565b9250506040615064868287016144f3565b9150509250925092565b60006040820190506150836000830185613bf1565b6150906020830184613bf1565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006150cd601b83613c26565b91506150d882615097565b602082019050919050565b600060208201905081810360008301526150fc816150c0565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061515f602183613c26565b915061516a82615103565b604082019050919050565b6000602082019050818103600083015261518e81615152565b905091905056fe546f6b656e436f6e74726163742c20496e73756666696369656e742042616c616e6365a2646970667358221220957899e04d4c830b04f1702c40539790a76e109bd4b6ab7108a8ce417692f93164736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c6c2aac7996d6670c25ea821816d67aadb6e89e3

-----Decoded View---------------
Arg [0] : tokenOwner (address): 0xC6c2aac7996d6670C25Ea821816D67AaDB6e89e3

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c6c2aac7996d6670c25ea821816d67aadb6e89e3


Deployed Bytecode Sourcemap

6160:14373:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7144:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9563:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10881:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9293:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8102:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6521:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7082:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12368:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20314:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6556:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6803:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3486:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9387:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6596:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8359:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6727;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15555:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11315:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16591:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16881:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16020:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6452:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10745:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8039:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16447:136;;;;;;;;;;;;;:::i;:::-;;9733:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11444:344;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10324:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7021:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9649:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9473:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6415:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11889:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19686:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11800:77;;;;;;;;;;;;;:::i;:::-;;7626:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12204:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12038:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3159:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6838:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7539:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9844:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19922:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10502:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7582:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9991:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3329:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11105:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3886:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8137:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17199:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17011:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8004:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6489:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7769:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3660:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7144:49;;;;:::o;9563:80::-;9611:13;9635:5;;;;;;;;;;;;;;;;;9628:12;;9563:80;:::o;10881:216::-;10956:4;11008:6;10973:11;:23;10985:10;10973:23;;;;;;;;;;;;;;;:32;10997:7;10973:32;;;;;;;;;;;;;;;:41;;;;11051:7;11030:37;;11039:10;11030:37;;;11060:6;11030:37;;;;;;:::i;:::-;;;;;;;;11085:4;11078:11;;10881:216;;;;:::o;9293:88::-;9348:7;9366:12;;9359:19;;9293:88;:::o;8102:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6521:26::-;;;;;;;;;;;;;:::o;7082:49::-;;;;:::o;12368:374::-;12468:4;12531:12;;12488:11;:19;12500:6;12488:19;;;;;;;;;;;;;;;:31;12508:10;12488:31;;;;;;;;;;;;;;;;:56;12485:190;;12594:69;12630:6;12594:69;;;;;;;;;;;;;;;;;:11;:19;12606:6;12594:19;;;;;;;;;;;;;;;:31;12614:10;12594:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;12560:11;:19;12572:6;12560:19;;;;;;;;;;;;;;;:31;12580:10;12560:31;;;;;;;;;;;;;;;:103;;;;12485:190;12694:40;12708:6;12716:9;12727:6;12694:13;:40::i;:::-;12687:47;;12368:374;;;;;:::o;20314:142::-;20367:7;20394:54;20432:15;20442:4;;;;;;;;;;;20432:9;:15::i;:::-;20394:33;20411:15;20421:4;;;;;;;;;;;20411:9;:15::i;:::-;20394:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;20387:61;;20314:142;:::o;6556:33::-;;;;;;;;;;;;;:::o;6803:28::-;;;;;;;;;;;;;:::o;3486:103::-;3541:4;3576:5;;;;;;;;;;;3565:16;;:7;:16;;;3558:23;;3486:103;;;:::o;9387:80::-;9439:5;8348:2;9448:16;;9387:80;:::o;6596:32::-;;;;;;;;;;;;;:::o;8359:38::-;;;;;;;;;;;;;:::o;6727:::-;;;;;;;;;;;;;:::o;15555:397::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15699:26:::1;15682:43;;:13;;;;;;;;;;;:43;;;15679:126;;15743:26;15727:13;;:42;;;;;;;;;;;;;;;;;;15679:126;;;15798:5;15776:19;;:27;;;;;;;;;;;;;;;;;;15679:126;15836:27;15818:45;;:14;;;;;;;;;;;:45;;;15815:130;;15882:27;15865:14;;:44;;;;;;;;;;;;;;;;;;15815:130;;;15938:5;15916:19;;:27;;;;;;;;;;;;;;;;;;15815:130;15555:397:::0;;:::o;11315:117::-;11370:4;11394:30;11402:7;11411:12;;11394:7;:30::i;:::-;11387:37;;11315:117;;;:::o;16591:282::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16691:3:::1;16676:12;;:18;;;;:::i;:::-;16666:6;:28;;16658:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;16766:12;;16757:6;:21;16749:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;16859:6;16844:12;:21;;;;16591:282:::0;:::o;16881:120::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16987:6:::1;16965:11;:19;16977:6;16965:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16881:120:::0;;:::o;16020:239::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16105:20:::1;;;;;;;;;;;16097:38;;:61;16136:21;16097:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16169:12;:21;;;16191:20;;;;;;;;;;;16213:12;:22;;;16244:4;16213:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16169:82;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16020:239:::0;:::o;6452:30::-;;;;;;;;;;;;;:::o;10745:121::-;10799:22;10840:11;:18;;;;10833:25;;10745:121;:::o;8039:30::-;;;;;;;;;;;;;:::o;16447:136::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16570:5:::1;16548:19;;:27;;;;;;;;;;;;;;;;;;16447:136::o:0;9733:105::-;9799:7;9817:9;:18;9827:7;9817:18;;;;;;;;;;;;;;;;9810:25;;9733:105;;;:::o;11444:344::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11557:1:::1;11538:15;:20;;11530:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11746:4;11728:15;11713:12;;:30;;;;:::i;:::-;:37;;;;:::i;:::-;11696:14;:54;;;;11444:344:::0;:::o;10324:170::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10469:17:::1;10434:13;:32;10448:17;10434:32;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;10324:170:::0;;:::o;7021:48::-;;;;:::o;9649:78::-;9701:7;9719:5;;;;;;;;;;;9712:12;;9649:78;:::o;9473:84::-;9523:13;9547:7;;;;;;;;;;;;;;;;;9540:14;;9473:84;:::o;6415:30::-;;;;;;;;;;;;;:::o;11889:137::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11972:4:::1;11955:5;:14;11961:7;11955:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12014:4;11987:15;:24;12003:7;11987:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;11889:137:::0;:::o;19686:228::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19829:22:::1;19805:21;;:46;;;;;;;;;;;;;;;;;;19885:21;19862:20;;:44;;;;;;;;;;;;;;;;;;19686:228:::0;;:::o;11800:77::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11865:4:::1;11854:8;;:15;;;;;;;;;;;;;;;;;;11800:77::o:0;7626:19::-;;;;;;;;;;;;;:::o;12204:156::-;12284:4;12308:44;12322:10;12334:9;12345:6;12308:13;:44::i;:::-;12301:51;;12204:156;;;;:::o;12038:154::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12131:5:::1;12109;:19;12115:12;12109:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12179:5;12147:15;:29;12163:12;12147:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;12038:154:::0;:::o;3159:94::-;2875:19;2883:10;2875:7;:19::i;:::-;2867:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3241:4:::1;3219:14:::0;:19:::1;3234:3;3219:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3159:94:::0;:::o;6838:25::-;;;;:::o;7539:36::-;;;;;;;;;;;;;:::o;9844:132::-;9928:7;9946:11;:19;9958:6;9946:19;;;;;;;;;;;;;;;:28;9966:7;9946:28;;;;;;;;;;;;;;;;9939:35;;9844:132;;;;:::o;19922:156::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;20028:8:::1;20014:11;;:22;;;;;;;;;;;;;;;;;;20063:7;20047:13;:23;;;;19922:156:::0;;:::o;10502:235::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10605:6:::1;10601:129;10621:22;;:29;;10617:1;:33;10601:129;;;10714:4;10671:13;:40;10685:22;;10708:1;10685:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10671:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;10652:3;;;;;:::i;:::-;;;;10601:129;;;;10502:235:::0;;:::o;7582:35::-;;;;;;;;;;;;;:::o;9991:321::-;10063:4;10084:21;10122:1;10108:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10084:40;;10153:4;;;;;;;;;;;10143;10148:1;10143:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;10186:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10176:4;10181:1;10176:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10236:4;10218;10223:1;10218:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10263:6;;;;;;;;;;;:20;;;10284:10;10296:4;10263:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10302:1;10263:41;;;;;;;;:::i;:::-;;;;;;;;10256:48;;;9991:321;;;:::o;3329:97::-;2875:19;2883:10;2875:7;:19::i;:::-;2867:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3413:5:::1;3391:14;:19;3406:3;3391:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3329:97:::0;:::o;11105:198::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11201:3:::1;11190:7;:14;;11182:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11288:7;11273:12;;:22;;;;:::i;:::-;11257:13;:38;;;;11105:198:::0;:::o;3886:173::-;2875:19;2883:10;2875:7;:19::i;:::-;2867:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3970:3:::1;3962:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4006:4;3984:14:::0;:19:::1;3999:3;3984:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4026:25;4047:3;4026:25;;;;;;:::i;:::-;;;;;;;;3886:173:::0;:::o;8137:21::-;;;;:::o;17199:573::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17387:2:::1;17370:13;17349:18;17328;:39;;;;:::i;:::-;:55;;;;:::i;:::-;:61;;;;17320:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;17495:8;;;;;;;;;;;17452:51;;17473:18;17452;:39;;;;:::i;:::-;:51;;;;17444:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;17581:18;17566:12;;:33;;;;;;;;;;;;;;;;;;17625:18;17610:12;;:33;;;;;;;;;;;;;;;;;;17664:13;17654:7;::::0;:23:::1;;;;;;;;;;;;;;;;;;17750:13;17729:18;17708;:39;;;;:::i;:::-;:55;;;;:::i;:::-;17697:8;;:66;;;;;;;;;;;;;;;;;;17199:573:::0;;;:::o;17011:128::-;3044:24;3057:10;3044:12;:24::i;:::-;3036:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17125:6:::1;17099:15;:23;17115:6;17099:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17011:128:::0;;:::o;8004:24::-;;;;;;;;;;;;;:::o;6489:25::-;;;;;;;;;;;;:::o;7769:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;3660:107::-;3716:4;3740:14;:19;3755:3;3740:19;;;;;;;;;;;;;;;;;;;;;;;;;3733:26;;3660:107;;;:::o;668:192::-;754:7;787:1;782;:6;;790:12;774:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;814:9;830:1;826;:5;;;;:::i;:::-;814:17;;851:1;844:8;;;668:192;;;;;:::o;12750:1519::-;12842:4;12865:8;;;;;;;;;;;12861:179;;12907:5;;;;;;;;;;12897:15;;:6;:15;;;12889:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12861:179;13063:5;;;;;;;;;;13053:15;;:6;:15;;;;:37;;;;;13085:5;;;;;;;;;;13072:18;;:9;:18;;;;13053:37;13050:270;;;13110:5;:16;13116:9;13110:16;;;;;;;;;;;;;;;;;;;;;;;;;13109:17;:48;;;;;13131:15;:26;13147:9;13131:26;;;;;;;;;;;;;;;;;;;;;;;;;13130:27;13109:48;13106:203;;;13219:14;;13209:6;13186:20;13196:9;13186;:20::i;:::-;:29;;;;:::i;:::-;:47;;13177:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;13106:203;13050:270;13340:39;13353:6;13361:9;13372:6;13340:12;:39::i;:::-;13399:13;:21;13413:6;13399:21;;;;;;;;;;;;;;;;;;;;;;;;;13398:22;:51;;;;;13425:13;:24;13439:9;13425:24;;;;;;;;;;;;;;;;;;;;;;;;;13424:25;13398:51;13390:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;13512:10;:8;:10::i;:::-;13511:11;:31;;;;;13526:5;:16;13532:9;13526:16;;;;;;;;;;;;;;;;;;;;;;;;;13511:31;13508:80;;;13573:1;13553:9;:17;13563:6;13553:17;;;;;;;;;;;;;;;;:21;13545:30;;;;;;13577:8;:6;:8::i;:::-;13508:80;13601:6;;;;;;;;;;13598:63;;;13617:41;13632:6;13640:9;13651:6;13617:14;:41::i;:::-;13610:48;;;;13598:63;13701:68;13723:6;13701:68;;;;;;;;;;;;;;;;;:9;:17;13711:6;13701:17;;;;;;;;;;;;;;;;:21;;:68;;;;;:::i;:::-;13681:9;:17;13691:6;13681:17;;;;;;;;;;;;;;;:88;;;;13784:22;13825:21;13839:6;13825:13;:21::i;:::-;13824:22;:51;;;;13851:24;13865:9;13851:13;:24::i;:::-;13850:25;13824:51;13821:224;;;13908:6;13891:23;;13821:224;;;13945:10;13958:5;:13;13964:6;13958:13;;;;;;;;;;;;;;;;;;;;;;;;;13945:26;;14003:30;14011:6;14019:5;14026:6;14003:7;:30::i;:::-;13986:47;;13930:115;13821:224;14060:25;14075:9;14060:14;:25::i;:::-;14057:44;;;14088:10;:8;:10::i;:::-;14057:44;14136:40;14161:14;14136:9;:20;14146:9;14136:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;14113:9;:20;14123:9;14113:20;;;;;;;;;;;;;;;:63;;;;14211:9;14194:43;;14203:6;14194:43;;;14222:14;14194:43;;;;;;:::i;:::-;;;;;;;;14255:4;14248:11;;;12750:1519;;;;;;:::o;526:136::-;584:7;611:43;615:1;618;611:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;604:50;;526:136;;;;:::o;14619:250::-;14729:5;;;;;;;;;;14719:15;;:6;:15;;;;:36;;;;;14750:5;;;;;;;;;;14738:17;;:8;:17;;;;14719:36;14716:146;;;14789:12;;14779:6;:22;;:49;;;;14805:15;:23;14821:6;14805:23;;;;;;;;;;;;;;;;;;;;;;;;;14779:49;14771:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14716:146;14619:250;;;:::o;16267:90::-;16310:4;16348:1;16334:10;;:15;;16327:22;;16267:90;:::o;16365:74::-;16416:15;16403:10;:28;;;;16365:74::o;14281:330::-;14374:4;14411:53;14433:6;14411:53;;;;;;;;;;;;;;;;;:9;:17;14421:6;14411:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14391:9;:17;14401:6;14391:17;;;;;;;;;;;;;;;:73;;;;14498:32;14523:6;14498:9;:20;14508:9;14498:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14475:9;:20;14485:9;14475:20;;;;;;;;;;;;;;;:55;;;;14563:9;14546:35;;14555:6;14546:35;;;14574:6;14546:35;;;;;;:::i;:::-;;;;;;;;14599:4;14592:11;;14281:330;;;;;:::o;14877:122::-;14938:4;14973:11;:18;14985:5;14973:18;;;;;;;;;;;;;;;;;;;;;;;;;14972:19;14965:26;;14877:122;;;:::o;15007:540::-;15086:7;15106:8;15117;;;;;;;;;;;15106:19;;;;15139;;;;;;;;;;;15136:147;;;15180:14;;;;;;;;;;;15174:20;;;;15212:5;15209:63;;;15243:13;;;;;;;;;;;15237:19;;;;15209:63;15136:147;15295:17;15315:38;15335:17;;;;;;;;;;;15315:38;;:15;15326:3;15315:6;:10;;:15;;;;:::i;:::-;:19;;:38;;;;:::i;:::-;15295:58;;15401:39;15430:9;15401;:24;15419:4;15401:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15374:9;:24;15392:4;15374:24;;;;;;;;;;;;;;;:66;;;;15481:4;15456:42;;15465:6;15456:42;;;15488:9;15456:42;;;;;;:::i;:::-;;;;;;;;15518:21;15529:9;15518:6;:10;;:21;;;;:::i;:::-;15511:28;;;;15007:540;;;;;:::o;20090:212::-;20156:4;20181:6;;;;;;;;;;20180:7;:31;;;;;20200:11;;;;;;;;;;;20180:31;:60;;;;;20224:5;:16;20230:9;20224:16;;;;;;;;;;;;;;;;;;;;;;;;;20180:60;:114;;;;;20281:13;;20253:9;:24;20271:4;20253:24;;;;;;;;;;;;;;;;:41;;20180:114;20173:121;;20090:212;;;:::o;17784:1894::-;8196:4;8187:6;;:13;;;;;;;;;;;;;;;;;;17833:23:::1;17889:1:::0;17874:12:::1;;;;;;;;;;;:16;;;17871:161;;;17924:52;17974:1;17924:45;17960:8;;;;;;;;;;;17924:45;;:31;17942:12;;;;;;;;;;;17924:31;;:13;;:17;;:31;;;;:::i;:::-;:35;;:45;;;;:::i;:::-;:49;;:52;;;;:::i;:::-;17906:70;;17871:161;18042:17;18062:40;18093:8;;;;;;;;;;;18062:40;;:26;18080:7;::::0;::::1;;;;;;;;18062:26;;:13;;:17;;:26;;;;:::i;:::-;:30;;:40;;;;:::i;:::-;18042:60;;18113:49;18136:4;18143;;;;;;;;;;;18149:12;18113:14;:49::i;:::-;;18173:20;18196:52;18235:12;18196:34;18214:15;18196:13;;:17;;:34;;;;:::i;:::-;:38;;:52;;;;:::i;:::-;18173:75;;18338:21;18376:1;18362:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18338:40;;18407:4;18389;18394:1;18389:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18433:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18423:4;18428:1;18423:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18457:21;18481;18457:45;;18523:6;;;;;;;;;;;:57;;;18595:12;18622:1;18638:4;18665;18703:3;18685:15;:21;;;;:::i;:::-;18523:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18730:17;18750:40;18776:13;18750:21;:25;;:40;;;;:::i;:::-;18730:60;;18811:19;18859:1;18845:12:::0;::::1;;;;;;;;;;:15;;;;:::i;:::-;18833:8;;;;;;;;;;;:28;;;;:::i;:::-;18811:50;;;;18889:1;18875:11;:15;18872:799;;;18906:26;18969:1:::0;18954:12:::1;;;;;;;;;;;:16;;;18951:197;;;19011:44;19043:11;19011:27;19025:12;;;;;;;;;;;19011:27;;:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;18990:65;;19082:20;;;;;;;;;;;19074:38;;:58;19113:18;19074:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18951:197;19183:1;19165:15;:19;19162:498;;;19222:26;19263:18;19251:9;:30;;;;:::i;:::-;19222:59;;19300:6;;;;;;;;;;;:22;;;19330:18;19380:4;19408:15;19446:1;19470::::0;19494:21:::1;;;;;;;;;;;19538:15;19300:272;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19596:48;19608:18;19628:15;19596:48;;;;;;;:::i;:::-;;;;;;;;19185:475;19162:498;18891:780;18872:799;17822:1856;;;;;;;8214:5:::0;8205:6;;:14;;;;;;;;;;;;;;;;;;17784:1894::o;339:181::-;397:7;417:9;433:1;429;:5;;;;:::i;:::-;417:17;;458:1;453;:6;;445:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;511:1;504:8;;;339:181;;;;:::o;866:250::-;924:7;953:1;948;:6;944:47;;978:1;971:8;;;;944:47;1003:9;1019:1;1015;:5;;;;:::i;:::-;1003:17;;1048:1;1043;1039;:5;;;;:::i;:::-;:10;1031:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1107:1;1100:8;;;866:250;;;;;:::o;1122:132::-;1180:7;1207:39;1211:1;1214;1207:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1200:46;;1122:132;;;;:::o;1260:345::-;1346:7;1445:1;1441;:5;1448:12;1433:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1472:9;1488:1;1484;:5;;;;:::i;:::-;1472:17;;1596:1;1589:8;;;1260:345;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:118::-;4220:24;4238:5;4220:24;:::i;:::-;4215:3;4208:37;4133:118;;:::o;4257:222::-;4350:4;4388:2;4377:9;4373:18;4365:26;;4401:71;4469:1;4458:9;4454:17;4445:6;4401:71;:::i;:::-;4257:222;;;;:::o;4485:86::-;4520:7;4560:4;4553:5;4549:16;4538:27;;4485:86;;;:::o;4577:112::-;4660:22;4676:5;4660:22;:::i;:::-;4655:3;4648:35;4577:112;;:::o;4695:214::-;4784:4;4822:2;4811:9;4807:18;4799:26;;4835:67;4899:1;4888:9;4884:17;4875:6;4835:67;:::i;:::-;4695:214;;;;:::o;4915:619::-;4992:6;5000;5008;5057:2;5045:9;5036:7;5032:23;5028:32;5025:119;;;5063:79;;:::i;:::-;5025:119;5183:1;5208:53;5253:7;5244:6;5233:9;5229:22;5208:53;:::i;:::-;5198:63;;5154:117;5310:2;5336:53;5381:7;5372:6;5361:9;5357:22;5336:53;:::i;:::-;5326:63;;5281:118;5438:2;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5409:118;4915:619;;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:89::-;5911:7;5951:6;5944:5;5940:18;5929:29;;5875:89;;;:::o;5970:115::-;6055:23;6072:5;6055:23;:::i;:::-;6050:3;6043:36;5970:115;;:::o;6091:218::-;6182:4;6220:2;6209:9;6205:18;6197:26;;6233:69;6299:1;6288:9;6284:17;6275:6;6233:69;:::i;:::-;6091:218;;;;:::o;6315:118::-;6386:22;6402:5;6386:22;:::i;:::-;6379:5;6376:33;6366:61;;6423:1;6420;6413:12;6366:61;6315:118;:::o;6439:135::-;6483:5;6521:6;6508:20;6499:29;;6537:31;6562:5;6537:31;:::i;:::-;6439:135;;;;:::o;6580:466::-;6644:6;6652;6701:2;6689:9;6680:7;6676:23;6672:32;6669:119;;;6707:79;;:::i;:::-;6669:119;6827:1;6852:51;6895:7;6886:6;6875:9;6871:22;6852:51;:::i;:::-;6842:61;;6798:115;6952:2;6978:51;7021:7;7012:6;7001:9;6997:22;6978:51;:::i;:::-;6968:61;;6923:116;6580:466;;;;;:::o;7052:116::-;7122:21;7137:5;7122:21;:::i;:::-;7115:5;7112:32;7102:60;;7158:1;7155;7148:12;7102:60;7052:116;:::o;7174:133::-;7217:5;7255:6;7242:20;7233:29;;7271:30;7295:5;7271:30;:::i;:::-;7174:133;;;;:::o;7313:468::-;7378:6;7386;7435:2;7423:9;7414:7;7410:23;7406:32;7403:119;;;7441:79;;:::i;:::-;7403:119;7561:1;7586:53;7631:7;7622:6;7611:9;7607:22;7586:53;:::i;:::-;7576:63;;7532:117;7688:2;7714:50;7756:7;7747:6;7736:9;7732:22;7714:50;:::i;:::-;7704:60;;7659:115;7313:468;;;;;:::o;7787:110::-;7838:7;7867:24;7885:5;7867:24;:::i;:::-;7856:35;;7787:110;;;:::o;7903:150::-;7990:38;8022:5;7990:38;:::i;:::-;7983:5;7980:49;7970:77;;8043:1;8040;8033:12;7970:77;7903:150;:::o;8059:167::-;8119:5;8157:6;8144:20;8135:29;;8173:47;8214:5;8173:47;:::i;:::-;8059:167;;;;:::o;8232:357::-;8305:6;8354:2;8342:9;8333:7;8329:23;8325:32;8322:119;;;8360:79;;:::i;:::-;8322:119;8480:1;8505:67;8564:7;8555:6;8544:9;8540:22;8505:67;:::i;:::-;8495:77;;8451:131;8232:357;;;;:::o;8595:474::-;8663:6;8671;8720:2;8708:9;8699:7;8695:23;8691:32;8688:119;;;8726:79;;:::i;:::-;8688:119;8846:1;8871:53;8916:7;8907:6;8896:9;8892:22;8871:53;:::i;:::-;8861:63;;8817:117;8973:2;8999:53;9044:7;9035:6;9024:9;9020:22;8999:53;:::i;:::-;8989:63;;8944:118;8595:474;;;;;:::o;9075:468::-;9140:6;9148;9197:2;9185:9;9176:7;9172:23;9168:32;9165:119;;;9203:79;;:::i;:::-;9165:119;9323:1;9348:50;9390:7;9381:6;9370:9;9366:22;9348:50;:::i;:::-;9338:60;;9294:114;9447:2;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9418:118;9075:468;;;;;:::o;9549:117::-;9658:1;9655;9648:12;9672:117;9781:1;9778;9771:12;9795:117;9904:1;9901;9894:12;9935:568;10008:8;10018:6;10068:3;10061:4;10053:6;10049:17;10045:27;10035:122;;10076:79;;:::i;:::-;10035:122;10189:6;10176:20;10166:30;;10219:18;10211:6;10208:30;10205:117;;;10241:79;;:::i;:::-;10205:117;10355:4;10347:6;10343:17;10331:29;;10409:3;10401:4;10393:6;10389:17;10379:8;10375:32;10372:41;10369:128;;;10416:79;;:::i;:::-;10369:128;9935:568;;;;;:::o;10509:559::-;10595:6;10603;10652:2;10640:9;10631:7;10627:23;10623:32;10620:119;;;10658:79;;:::i;:::-;10620:119;10806:1;10795:9;10791:17;10778:31;10836:18;10828:6;10825:30;10822:117;;;10858:79;;:::i;:::-;10822:117;10971:80;11043:7;11034:6;11023:9;11019:22;10971:80;:::i;:::-;10953:98;;;;10749:312;10509:559;;;;;:::o;11074:104::-;11119:7;11148:24;11166:5;11148:24;:::i;:::-;11137:35;;11074:104;;;:::o;11184:138::-;11265:32;11291:5;11265:32;:::i;:::-;11258:5;11255:43;11245:71;;11312:1;11309;11302:12;11245:71;11184:138;:::o;11328:155::-;11382:5;11420:6;11407:20;11398:29;;11436:41;11471:5;11436:41;:::i;:::-;11328:155;;;;:::o;11489:345::-;11556:6;11605:2;11593:9;11584:7;11580:23;11576:32;11573:119;;;11611:79;;:::i;:::-;11573:119;11731:1;11756:61;11809:7;11800:6;11789:9;11785:22;11756:61;:::i;:::-;11746:71;;11702:125;11489:345;;;;:::o;11840:607::-;11911:6;11919;11927;11976:2;11964:9;11955:7;11951:23;11947:32;11944:119;;;11982:79;;:::i;:::-;11944:119;12102:1;12127:51;12170:7;12161:6;12150:9;12146:22;12127:51;:::i;:::-;12117:61;;12073:115;12227:2;12253:51;12296:7;12287:6;12276:9;12272:22;12253:51;:::i;:::-;12243:61;;12198:116;12353:2;12379:51;12422:7;12413:6;12402:9;12398:22;12379:51;:::i;:::-;12369:61;;12324:116;11840:607;;;;;:::o;12453:60::-;12481:3;12502:5;12495:12;;12453:60;;;:::o;12519:142::-;12569:9;12602:53;12620:34;12629:24;12647:5;12629:24;:::i;:::-;12620:34;:::i;:::-;12602:53;:::i;:::-;12589:66;;12519:142;;;:::o;12667:126::-;12717:9;12750:37;12781:5;12750:37;:::i;:::-;12737:50;;12667:126;;;:::o;12799:144::-;12867:9;12900:37;12931:5;12900:37;:::i;:::-;12887:50;;12799:144;;;:::o;12949:167::-;13054:55;13103:5;13054:55;:::i;:::-;13049:3;13042:68;12949:167;;:::o;13122:258::-;13233:4;13271:2;13260:9;13256:18;13248:26;;13284:89;13370:1;13359:9;13355:17;13346:6;13284:89;:::i;:::-;13122:258;;;;:::o;13386:161::-;13526:13;13522:1;13514:6;13510:14;13503:37;13386:161;:::o;13553:366::-;13695:3;13716:67;13780:2;13775:3;13716:67;:::i;:::-;13709:74;;13792:93;13881:3;13792:93;:::i;:::-;13910:2;13905:3;13901:12;13894:19;;13553:366;;;:::o;13925:419::-;14091:4;14129:2;14118:9;14114:18;14106:26;;14178:9;14172:4;14168:20;14164:1;14153:9;14149:17;14142:47;14206:131;14332:4;14206:131;:::i;:::-;14198:139;;13925:419;;;:::o;14350:180::-;14398:77;14395:1;14388:88;14495:4;14492:1;14485:15;14519:4;14516:1;14509:15;14536:180;14584:77;14581:1;14574:88;14681:4;14678:1;14671:15;14705:4;14702:1;14695:15;14722:185;14762:1;14779:20;14797:1;14779:20;:::i;:::-;14774:25;;14813:20;14831:1;14813:20;:::i;:::-;14808:25;;14852:1;14842:35;;14857:18;;:::i;:::-;14842:35;14899:1;14896;14892:9;14887:14;;14722:185;;;;:::o;14913:226::-;15053:34;15049:1;15041:6;15037:14;15030:58;15122:9;15117:2;15109:6;15105:15;15098:34;14913:226;:::o;15145:366::-;15287:3;15308:67;15372:2;15367:3;15308:67;:::i;:::-;15301:74;;15384:93;15473:3;15384:93;:::i;:::-;15502:2;15497:3;15493:12;15486:19;;15145:366;;;:::o;15517:419::-;15683:4;15721:2;15710:9;15706:18;15698:26;;15770:9;15764:4;15760:20;15756:1;15745:9;15741:17;15734:47;15798:131;15924:4;15798:131;:::i;:::-;15790:139;;15517:419;;;:::o;15942:237::-;16082:34;16078:1;16070:6;16066:14;16059:58;16151:20;16146:2;16138:6;16134:15;16127:45;15942:237;:::o;16185:366::-;16327:3;16348:67;16412:2;16407:3;16348:67;:::i;:::-;16341:74;;16424:93;16513:3;16424:93;:::i;:::-;16542:2;16537:3;16533:12;16526:19;;16185:366;;;:::o;16557:419::-;16723:4;16761:2;16750:9;16746:18;16738:26;;16810:9;16804:4;16800:20;16796:1;16785:9;16781:17;16774:47;16838:131;16964:4;16838:131;:::i;:::-;16830:139;;16557:419;;;:::o;16982:143::-;17039:5;17070:6;17064:13;17055:22;;17086:33;17113:5;17086:33;:::i;:::-;16982:143;;;;:::o;17131:351::-;17201:6;17250:2;17238:9;17229:7;17225:23;17221:32;17218:119;;;17256:79;;:::i;:::-;17218:119;17376:1;17401:64;17457:7;17448:6;17437:9;17433:22;17401:64;:::i;:::-;17391:74;;17347:128;17131:351;;;;:::o;17488:332::-;17609:4;17647:2;17636:9;17632:18;17624:26;;17660:71;17728:1;17717:9;17713:17;17704:6;17660:71;:::i;:::-;17741:72;17809:2;17798:9;17794:18;17785:6;17741:72;:::i;:::-;17488:332;;;;;:::o;17826:137::-;17880:5;17911:6;17905:13;17896:22;;17927:30;17951:5;17927:30;:::i;:::-;17826:137;;;;:::o;17969:345::-;18036:6;18085:2;18073:9;18064:7;18060:23;18056:32;18053:119;;;18091:79;;:::i;:::-;18053:119;18211:1;18236:61;18289:7;18280:6;18269:9;18265:22;18236:61;:::i;:::-;18226:71;;18182:125;17969:345;;;;:::o;18320:235::-;18460:34;18456:1;18448:6;18444:14;18437:58;18529:18;18524:2;18516:6;18512:15;18505:43;18320:235;:::o;18561:366::-;18703:3;18724:67;18788:2;18783:3;18724:67;:::i;:::-;18717:74;;18800:93;18889:3;18800:93;:::i;:::-;18918:2;18913:3;18909:12;18902:19;;18561:366;;;:::o;18933:419::-;19099:4;19137:2;19126:9;19122:18;19114:26;;19186:9;19180:4;19176:20;19172:1;19161:9;19157:17;19150:47;19214:131;19340:4;19214:131;:::i;:::-;19206:139;;18933:419;;;:::o;19358:410::-;19398:7;19421:20;19439:1;19421:20;:::i;:::-;19416:25;;19455:20;19473:1;19455:20;:::i;:::-;19450:25;;19510:1;19507;19503:9;19532:30;19550:11;19532:30;:::i;:::-;19521:41;;19711:1;19702:7;19698:15;19695:1;19692:22;19672:1;19665:9;19645:83;19622:139;;19741:18;;:::i;:::-;19622:139;19406:362;19358:410;;;;:::o;19774:156::-;19914:8;19910:1;19902:6;19898:14;19891:32;19774:156;:::o;19936:365::-;20078:3;20099:66;20163:1;20158:3;20099:66;:::i;:::-;20092:73;;20174:93;20263:3;20174:93;:::i;:::-;20292:2;20287:3;20283:12;20276:19;;19936:365;;;:::o;20307:419::-;20473:4;20511:2;20500:9;20496:18;20488:26;;20560:9;20554:4;20550:20;20546:1;20535:9;20531:17;20524:47;20588:131;20714:4;20588:131;:::i;:::-;20580:139;;20307:419;;;:::o;20732:180::-;20780:77;20777:1;20770:88;20877:4;20874:1;20867:15;20901:4;20898:1;20891:15;20918:233;20957:3;20980:24;20998:5;20980:24;:::i;:::-;20971:33;;21026:66;21019:5;21016:77;21013:103;;21096:18;;:::i;:::-;21013:103;21143:1;21136:5;21132:13;21125:20;;20918:233;;;:::o;21157:180::-;21205:77;21202:1;21195:88;21302:4;21299:1;21292:15;21326:4;21323:1;21316:15;21343:143;21400:5;21431:6;21425:13;21416:22;;21447:33;21474:5;21447:33;:::i;:::-;21343:143;;;;:::o;21492:351::-;21562:6;21611:2;21599:9;21590:7;21586:23;21582:32;21579:119;;;21617:79;;:::i;:::-;21579:119;21737:1;21762:64;21818:7;21809:6;21798:9;21794:22;21762:64;:::i;:::-;21752:74;;21708:128;21492:351;;;;:::o;21849:114::-;21916:6;21950:5;21944:12;21934:22;;21849:114;;;:::o;21969:184::-;22068:11;22102:6;22097:3;22090:19;22142:4;22137:3;22133:14;22118:29;;21969:184;;;;:::o;22159:132::-;22226:4;22249:3;22241:11;;22279:4;22274:3;22270:14;22262:22;;22159:132;;;:::o;22297:108::-;22374:24;22392:5;22374:24;:::i;:::-;22369:3;22362:37;22297:108;;:::o;22411:179::-;22480:10;22501:46;22543:3;22535:6;22501:46;:::i;:::-;22579:4;22574:3;22570:14;22556:28;;22411:179;;;;:::o;22596:113::-;22666:4;22698;22693:3;22689:14;22681:22;;22596:113;;;:::o;22745:732::-;22864:3;22893:54;22941:5;22893:54;:::i;:::-;22963:86;23042:6;23037:3;22963:86;:::i;:::-;22956:93;;23073:56;23123:5;23073:56;:::i;:::-;23152:7;23183:1;23168:284;23193:6;23190:1;23187:13;23168:284;;;23269:6;23263:13;23296:63;23355:3;23340:13;23296:63;:::i;:::-;23289:70;;23382:60;23435:6;23382:60;:::i;:::-;23372:70;;23228:224;23215:1;23212;23208:9;23203:14;;23168:284;;;23172:14;23468:3;23461:10;;22869:608;;;22745:732;;;;:::o;23483:483::-;23654:4;23692:2;23681:9;23677:18;23669:26;;23705:71;23773:1;23762:9;23758:17;23749:6;23705:71;:::i;:::-;23823:9;23817:4;23813:20;23808:2;23797:9;23793:18;23786:48;23851:108;23954:4;23945:6;23851:108;:::i;:::-;23843:116;;23483:483;;;;;:::o;23972:281::-;24055:27;24077:4;24055:27;:::i;:::-;24047:6;24043:40;24185:6;24173:10;24170:22;24149:18;24137:10;24134:34;24131:62;24128:88;;;24196:18;;:::i;:::-;24128:88;24236:10;24232:2;24225:22;24015:238;23972:281;;:::o;24259:129::-;24293:6;24320:20;;:::i;:::-;24310:30;;24349:33;24377:4;24369:6;24349:33;:::i;:::-;24259:129;;;:::o;24394:311::-;24471:4;24561:18;24553:6;24550:30;24547:56;;;24583:18;;:::i;:::-;24547:56;24633:4;24625:6;24621:17;24613:25;;24693:4;24687;24683:15;24675:23;;24394:311;;;:::o;24728:732::-;24835:5;24860:81;24876:64;24933:6;24876:64;:::i;:::-;24860:81;:::i;:::-;24851:90;;24961:5;24990:6;24983:5;24976:21;25024:4;25017:5;25013:16;25006:23;;25077:4;25069:6;25065:17;25057:6;25053:30;25106:3;25098:6;25095:15;25092:122;;;25125:79;;:::i;:::-;25092:122;25240:6;25223:231;25257:6;25252:3;25249:15;25223:231;;;25332:3;25361:48;25405:3;25393:10;25361:48;:::i;:::-;25356:3;25349:61;25439:4;25434:3;25430:14;25423:21;;25299:155;25283:4;25278:3;25274:14;25267:21;;25223:231;;;25227:21;24841:619;;24728:732;;;;;:::o;25483:385::-;25565:5;25614:3;25607:4;25599:6;25595:17;25591:27;25581:122;;25622:79;;:::i;:::-;25581:122;25732:6;25726:13;25757:105;25858:3;25850:6;25843:4;25835:6;25831:17;25757:105;:::i;:::-;25748:114;;25571:297;25483:385;;;;:::o;25874:554::-;25969:6;26018:2;26006:9;25997:7;25993:23;25989:32;25986:119;;;26024:79;;:::i;:::-;25986:119;26165:1;26154:9;26150:17;26144:24;26195:18;26187:6;26184:30;26181:117;;;26217:79;;:::i;:::-;26181:117;26322:89;26403:7;26394:6;26383:9;26379:22;26322:89;:::i;:::-;26312:99;;26115:306;25874:554;;;;:::o;26434:224::-;26574:34;26570:1;26562:6;26558:14;26551:58;26643:7;26638:2;26630:6;26626:15;26619:32;26434:224;:::o;26664:366::-;26806:3;26827:67;26891:2;26886:3;26827:67;:::i;:::-;26820:74;;26903:93;26992:3;26903:93;:::i;:::-;27021:2;27016:3;27012:12;27005:19;;26664:366;;;:::o;27036:419::-;27202:4;27240:2;27229:9;27225:18;27217:26;;27289:9;27283:4;27279:20;27275:1;27264:9;27260:17;27253:47;27317:131;27443:4;27317:131;:::i;:::-;27309:139;;27036:419;;;:::o;27461:134::-;27519:9;27552:37;27583:5;27552:37;:::i;:::-;27539:50;;27461:134;;;:::o;27601:147::-;27696:45;27735:5;27696:45;:::i;:::-;27691:3;27684:58;27601:147;;:::o;27754:238::-;27855:4;27893:2;27882:9;27878:18;27870:26;;27906:79;27982:1;27971:9;27967:17;27958:6;27906:79;:::i;:::-;27754:238;;;;:::o;27998:188::-;28036:3;28055:18;28071:1;28055:18;:::i;:::-;28050:23;;28087:18;28103:1;28087:18;:::i;:::-;28082:23;;28128:1;28125;28121:9;28114:16;;28151:4;28146:3;28143:13;28140:39;;;28159:18;;:::i;:::-;28140:39;27998:188;;;;:::o;28192:226::-;28332:34;28328:1;28320:6;28316:14;28309:58;28401:9;28396:2;28388:6;28384:15;28377:34;28192:226;:::o;28424:366::-;28566:3;28587:67;28651:2;28646:3;28587:67;:::i;:::-;28580:74;;28663:93;28752:3;28663:93;:::i;:::-;28781:2;28776:3;28772:12;28765:19;;28424:366;;;:::o;28796:419::-;28962:4;29000:2;28989:9;28985:18;28977:26;;29049:9;29043:4;29039:20;29035:1;29024:9;29020:17;29013:47;29077:131;29203:4;29077:131;:::i;:::-;29069:139;;28796:419;;;:::o;29221:234::-;29361:34;29357:1;29349:6;29345:14;29338:58;29430:17;29425:2;29417:6;29413:15;29406:42;29221:234;:::o;29461:366::-;29603:3;29624:67;29688:2;29683:3;29624:67;:::i;:::-;29617:74;;29700:93;29789:3;29700:93;:::i;:::-;29818:2;29813:3;29809:12;29802:19;;29461:366;;;:::o;29833:419::-;29999:4;30037:2;30026:9;30022:18;30014:26;;30086:9;30080:4;30076:20;30072:1;30061:9;30057:17;30050:47;30114:131;30240:4;30114:131;:::i;:::-;30106:139;;29833:419;;;:::o;30258:194::-;30298:4;30318:20;30336:1;30318:20;:::i;:::-;30313:25;;30352:20;30370:1;30352:20;:::i;:::-;30347:25;;30396:1;30393;30389:9;30381:17;;30420:1;30414:4;30411:11;30408:37;;;30425:18;;:::i;:::-;30408:37;30258:194;;;;:::o;30458:250::-;30598:34;30594:1;30586:6;30582:14;30575:58;30667:33;30662:2;30654:6;30650:15;30643:58;30458:250;:::o;30714:366::-;30856:3;30877:67;30941:2;30936:3;30877:67;:::i;:::-;30870:74;;30953:93;31042:3;30953:93;:::i;:::-;31071:2;31066:3;31062:12;31055:19;;30714:366;;;:::o;31086:419::-;31252:4;31290:2;31279:9;31275:18;31267:26;;31339:9;31333:4;31329:20;31325:1;31314:9;31310:17;31303:47;31367:131;31493:4;31367:131;:::i;:::-;31359:139;;31086:419;;;:::o;31511:191::-;31551:3;31570:20;31588:1;31570:20;:::i;:::-;31565:25;;31604:20;31622:1;31604:20;:::i;:::-;31599:25;;31647:1;31644;31640:9;31633:16;;31668:3;31665:1;31662:10;31659:36;;;31675:18;;:::i;:::-;31659:36;31511:191;;;;:::o;31708:242::-;31848:34;31844:1;31836:6;31832:14;31825:58;31917:25;31912:2;31904:6;31900:15;31893:50;31708:242;:::o;31956:366::-;32098:3;32119:67;32183:2;32178:3;32119:67;:::i;:::-;32112:74;;32195:93;32284:3;32195:93;:::i;:::-;32313:2;32308:3;32304:12;32297:19;;31956:366;;;:::o;32328:419::-;32494:4;32532:2;32521:9;32517:18;32509:26;;32581:9;32575:4;32571:20;32567:1;32556:9;32552:17;32545:47;32609:131;32735:4;32609:131;:::i;:::-;32601:139;;32328:419;;;:::o;32753:230::-;32893:34;32889:1;32881:6;32877:14;32870:58;32962:13;32957:2;32949:6;32945:15;32938:38;32753:230;:::o;32989:366::-;33131:3;33152:67;33216:2;33211:3;33152:67;:::i;:::-;33145:74;;33228:93;33317:3;33228:93;:::i;:::-;33346:2;33341:3;33337:12;33330:19;;32989:366;;;:::o;33361:419::-;33527:4;33565:2;33554:9;33550:18;33542:26;;33614:9;33608:4;33604:20;33600:1;33589:9;33585:17;33578:47;33642:131;33768:4;33642:131;:::i;:::-;33634:139;;33361:419;;;:::o;33786:167::-;33926:19;33922:1;33914:6;33910:14;33903:43;33786:167;:::o;33959:366::-;34101:3;34122:67;34186:2;34181:3;34122:67;:::i;:::-;34115:74;;34198:93;34287:3;34198:93;:::i;:::-;34316:2;34311:3;34307:12;34300:19;;33959:366;;;:::o;34331:419::-;34497:4;34535:2;34524:9;34520:18;34512:26;;34584:9;34578:4;34574:20;34570:1;34559:9;34555:17;34548:47;34612:131;34738:4;34612:131;:::i;:::-;34604:139;;34331:419;;;:::o;34756:85::-;34801:7;34830:5;34819:16;;34756:85;;;:::o;34847:158::-;34905:9;34938:61;34956:42;34965:32;34991:5;34965:32;:::i;:::-;34956:42;:::i;:::-;34938:61;:::i;:::-;34925:74;;34847:158;;;:::o;35011:147::-;35106:45;35145:5;35106:45;:::i;:::-;35101:3;35094:58;35011:147;;:::o;35164:831::-;35427:4;35465:3;35454:9;35450:19;35442:27;;35479:71;35547:1;35536:9;35532:17;35523:6;35479:71;:::i;:::-;35560:80;35636:2;35625:9;35621:18;35612:6;35560:80;:::i;:::-;35687:9;35681:4;35677:20;35672:2;35661:9;35657:18;35650:48;35715:108;35818:4;35809:6;35715:108;:::i;:::-;35707:116;;35833:72;35901:2;35890:9;35886:18;35877:6;35833:72;:::i;:::-;35915:73;35983:3;35972:9;35968:19;35959:6;35915:73;:::i;:::-;35164:831;;;;;;;;:::o;36001:179::-;36039:1;36056:18;36072:1;36056:18;:::i;:::-;36051:23;;36088:18;36104:1;36088:18;:::i;:::-;36083:23;;36125:1;36115:35;;36130:18;;:::i;:::-;36115:35;36172:1;36169;36165:9;36160:14;;36001:179;;;;:::o;36186:191::-;36224:4;36244:18;36260:1;36244:18;:::i;:::-;36239:23;;36276:18;36292:1;36276:18;:::i;:::-;36271:23;;36318:1;36315;36311:9;36303:17;;36342:4;36336;36333:14;36330:40;;;36350:18;;:::i;:::-;36330:40;36186:191;;;;:::o;36383:807::-;36632:4;36670:3;36659:9;36655:19;36647:27;;36684:71;36752:1;36741:9;36737:17;36728:6;36684:71;:::i;:::-;36765:72;36833:2;36822:9;36818:18;36809:6;36765:72;:::i;:::-;36847:80;36923:2;36912:9;36908:18;36899:6;36847:80;:::i;:::-;36937;37013:2;37002:9;36998:18;36989:6;36937:80;:::i;:::-;37027:73;37095:3;37084:9;37080:19;37071:6;37027:73;:::i;:::-;37110;37178:3;37167:9;37163:19;37154:6;37110:73;:::i;:::-;36383:807;;;;;;;;;:::o;37196:663::-;37284:6;37292;37300;37349:2;37337:9;37328:7;37324:23;37320:32;37317:119;;;37355:79;;:::i;:::-;37317:119;37475:1;37500:64;37556:7;37547:6;37536:9;37532:22;37500:64;:::i;:::-;37490:74;;37446:128;37613:2;37639:64;37695:7;37686:6;37675:9;37671:22;37639:64;:::i;:::-;37629:74;;37584:129;37752:2;37778:64;37834:7;37825:6;37814:9;37810:22;37778:64;:::i;:::-;37768:74;;37723:129;37196:663;;;;;:::o;37865:332::-;37986:4;38024:2;38013:9;38009:18;38001:26;;38037:71;38105:1;38094:9;38090:17;38081:6;38037:71;:::i;:::-;38118:72;38186:2;38175:9;38171:18;38162:6;38118:72;:::i;:::-;37865:332;;;;;:::o;38203:177::-;38343:29;38339:1;38331:6;38327:14;38320:53;38203:177;:::o;38386:366::-;38528:3;38549:67;38613:2;38608:3;38549:67;:::i;:::-;38542:74;;38625:93;38714:3;38625:93;:::i;:::-;38743:2;38738:3;38734:12;38727:19;;38386:366;;;:::o;38758:419::-;38924:4;38962:2;38951:9;38947:18;38939:26;;39011:9;39005:4;39001:20;38997:1;38986:9;38982:17;38975:47;39039:131;39165:4;39039:131;:::i;:::-;39031:139;;38758:419;;;:::o;39183:220::-;39323:34;39319:1;39311:6;39307:14;39300:58;39392:3;39387:2;39379:6;39375:15;39368:28;39183:220;:::o;39409:366::-;39551:3;39572:67;39636:2;39631:3;39572:67;:::i;:::-;39565:74;;39648:93;39737:3;39648:93;:::i;:::-;39766:2;39761:3;39757:12;39750:19;;39409:366;;;:::o;39781:419::-;39947:4;39985:2;39974:9;39970:18;39962:26;;40034:9;40028:4;40024:20;40020:1;40009:9;40005:17;39998:47;40062:131;40188:4;40062:131;:::i;:::-;40054:139;;39781:419;;;:::o

Swarm Source

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