ETH Price: $3,361.82 (-0.02%)

Token

Merkle Tree Protocol ($MERKLE)
 

Overview

Max Total Supply

19,888,888 $MERKLE

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.18525369390464397 $MERKLE

Value
$0.00
0x20321B5FaB71a84eB26C4B62C9B426099E26cacf
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:
MERKLEPROOF

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

    
    ███    ███ ███████ ██████  ██   ██ ██      ███████     ████████ ██████  ███████ ███████     ██████  ██████   ██████  ████████  ██████   ██████  ██████  ██      
    ████  ████ ██      ██   ██ ██  ██  ██      ██             ██    ██   ██ ██      ██          ██   ██ ██   ██ ██    ██    ██    ██    ██ ██      ██    ██ ██      
    ██ ████ ██ █████   ██████  █████   ██      █████          ██    ██████  █████   █████       ██████  ██████  ██    ██    ██    ██    ██ ██      ██    ██ ██      
    ██  ██  ██ ██      ██   ██ ██  ██  ██      ██             ██    ██   ██ ██      ██          ██      ██   ██ ██    ██    ██    ██    ██ ██      ██    ██ ██      
    ██      ██ ███████ ██   ██ ██   ██ ███████ ███████        ██    ██   ██ ███████ ███████     ██      ██   ██  ██████     ██     ██████   ██████  ██████  ███████ 
                                                                                                                                                                    
                                                                                                                                                                
    About Project : Merkle Tree Protocol based on Proof of Reserve. Merkle tree was invented in 1988 by Ralph Merkle.

    Tokenomics : Marketing , Auto Liquidity & Ralph Merkle Development Fund.

    Telegram : https://t.me/MerkleProofPortal

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

abstract contract Context {

    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);
    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);
}

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) {
        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;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


contract Ownable is Context {

    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renouncedOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;  
    }

}

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract MERKLEPROOF is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "Merkle Tree Protocol";
    string private _symbol = "$MERKLE";
    uint8 private _decimals = 18;

    address public marketingWallet = 0xE5ae93397Ee3fE0FB71A135e1A4f9a6E6a50c95b;
    address public developmentWallet = 0xf1D6887f1B5DF0706c7b1F2c0Af93D3C20CBe828;
    address public liquidityReciever;

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public blacklisted;

    uint256 public constant MAX_FEE = 200; //20%

    uint256 _buyLiquidityFee = 0;
    uint256 _buyMarketingFee = 0;
    uint256 _buyDevelopmentFee = 0;
    
    uint256 _sellLiquidityFee = 30;
    uint256 _sellMarketingFee = 40;
    uint256 _sellDevelopmentFee = 20;

    uint256 totalBuy;
    uint256 totalSell;

    uint256 denominator = 1000;

    uint256 private _totalSupply = 19_888_888 * 10**_decimals;   

    uint256 public minimumTokensBeforeSwap = 5000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(15).div(denominator);     //1.5%
    uint256 public _walletMax = _totalSupply.mul(15).div(denominator);    //1.5%

    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
    
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        liquidityReciever = msg.sender;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[marketingWallet] = true;
        isExcludedFromFee[developmentWallet] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

        totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDevelopmentFee);
        totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDevelopmentFee);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    /*====================================
    |               Getters              |
    ====================================*/

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
       return _balances[account];     
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!blacklisted[sender] && !blacklisted[recipient],"Error: Blacklist Bots/Contracts not Allowed!!");
     

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {  
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            } 

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                swapAndLiquify();
            }

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

            uint256 finalAmount = shouldTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

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

            emit Transfer(sender, recipient, finalAmount);
            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 swapAndLiquify() private lockTheSwap {

        uint256 contractBalance = balanceOf(address(this));

        if(contractBalance == 0) return;

        uint256 totalShares = totalBuy.add(totalSell);

        uint256 _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 _MarketingShare = _buyMarketingFee.add(_sellMarketingFee);

        uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2);
        uint256 tokensForSwap = contractBalance.sub(tokensForLP);

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        uint256 totalBNBFee = totalShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBMarketing = amountReceived.mul(_MarketingShare).div(totalBNBFee);
        uint256 amountBNBDevelopment = amountReceived.sub(amountBNBLiquidity).sub(amountBNBMarketing);

        if(amountBNBMarketing > 0)
            transferToAddressETH(marketingWallet, amountBNBMarketing);

        if(amountBNBDevelopment > 0)
            transferToAddressETH(developmentWallet, amountBNBDevelopment);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }

    function transferToAddressETH(address recipient, uint256 amount) private {
        payable(recipient).transfer(amount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityReciever,
            block.timestamp
        );
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) {
            
                feeAmount = amount.mul(totalBuy).div(denominator);
            }
            else if(isMarketPair[recipient]) {

                feeAmount = amount.mul(totalSell).div(denominator);
                
            }     

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    /*====================================
    |               Setters              |
    ====================================*/

    //To Block Bots to trade
    function blacklistBot(address _adr,bool _status) public onlyOwner {
        blacklisted[_adr] = _status;
    }

    //To Rescue Stucked Balance
    function rescueFunds() public onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    //To Rescue Stucked Tokens
    function rescueTokens(IERC20 adr,address recipient,uint amount) public onlyOwner {
        adr.transfer(recipient,amount);
    }

    function enableTxLimit(bool _status) public onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) public onlyOwner {
        checkWalletLimit = _status;
    }

    function setBuyFee(uint _newLP , uint _newMarket , uint _newDevelopment) public onlyOwner {     
        _buyLiquidityFee = _newLP;
        _buyMarketingFee = _newMarket;
        _buyDevelopmentFee = _newDevelopment;
        totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDevelopmentFee);
        require(totalBuy <= MAX_FEE,"ERROR! MAX TAX LIMIT EXCEEDED FROM 20%");
    }

    function setSellFee(uint _newLP , uint _newMarket, uint _newDevelopment) public onlyOwner {        
        _sellLiquidityFee = _newLP;
        _sellMarketingFee = _newMarket;
        _sellDevelopmentFee = _newDevelopment;
        totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDevelopmentFee);
        require(totalSell <= MAX_FEE,"ERROR! MAX TAX LIMIT EXCEEDED FROM 20%");
    }

    function setWallets(address _market,address _liquidityRec,address _developmentW) public onlyOwner {
        marketingWallet = _market;
        liquidityReciever = _liquidityRec;
        developmentWallet = _developmentW;
    }

    function setExcludeFromFee(address _adr,bool _status) public onlyOwner {
        require(isExcludedFromFee[_adr] != _status,"Not Changed!!");
        isExcludedFromFee[_adr] = _status;
    }

    function ExcludeWalletLimit(address _adr,bool _status) public onlyOwner {
        require(isWalletLimitExempt[_adr] != _status,"Not Changed!!");
        isWalletLimitExempt[_adr] = _status;
    }

    function ExcludeTxLimit(address _adr,bool _status) public onlyOwner {
        require(isTxLimitExempt[_adr] != _status,"Not Changed!!");
        isTxLimitExempt[_adr] = _status;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setMarketPair(address _pair, bool _status) public onlyOwner {
        isMarketPair[_pair] = _status;
    }

    function setManualRouter(address _router) public onlyOwner {
        uniswapV2Router = IUniswapV2Router02(_router);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"blacklistBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newDevelopment","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newDevelopment","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_market","type":"address"},{"internalType":"address","name":"_liquidityRec","type":"address"},{"internalType":"address","name":"_developmentW","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280601481526020017f4d65726b6c6520547265652050726f746f636f6c000000000000000000000000815250600190805190602001906200005192919062000dcb565b506040518060400160405280600781526020017f244d45524b4c4500000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000dcb565b506012600360006101000a81548160ff021916908360ff16021790555073e5ae93397ee3fe0fb71a135e1a4f9a6e6a50c95b600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f1d6887f1b5df0706c7b1f2c0af93d3c20cbe828600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b8152506000600d556000600e556000600f55601e601055602860115560146012556103e8601555600360009054906101000a900460ff16600a6200021791906200112d565b63012f7af86200022891906200126a565b601655600360009054906101000a900460ff16600a6200024991906200112d565b6113886200025891906200126a565b601755620002936015546200027f600f60165462000c2260201b620027f41790919060201c565b62000ca660201b6200286f1790919060201c565b601855620002ce601554620002ba600f60165462000c2260201b620027f41790919060201c565b62000ca660201b6200286f1790919060201c565b6019556001601a60006101000a81548160ff0219169083151502179055506001601a60016101000a81548160ff0219169083151502179055506001601b60156101000a81548160ff0219169083151502179055503480156200032f57600080fd5b5060006200034262000cf860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044057600080fd5b505afa15801562000455573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047b919062000e92565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004de57600080fd5b505afa158015620004f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000519919062000e92565b6040518363ffffffff1660e01b81526004016200053892919062000f6f565b602060405180830381600087803b1580156200055357600080fd5b505af115801562000568573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058e919062000e92565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000b26600f5462000b12600e54600d5462000d0060201b620028b91790919060201c565b62000d0060201b620028b91790919060201c565b60138190555062000b6560125462000b5160115460105462000d0060201b620028b91790919060201c565b62000d0060201b620028b91790919060201c565b601481905550601654600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60165460405162000c13919062001004565b60405180910390a350620014bf565b60008083141562000c37576000905062000ca0565b6000828462000c4791906200126a565b905082848262000c5891906200109a565b1462000c9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c929062000fe2565b60405180910390fd5b809150505b92915050565b600062000cf083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000d6360201b60201c565b905092915050565b600033905090565b600080828462000d1191906200103d565b90508381101562000d59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d509062000fc0565b60405180910390fd5b8091505092915050565b6000808311829062000dad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000da4919062000f9c565b60405180910390fd5b506000838562000dbe91906200109a565b9050809150509392505050565b82805462000dd9906200134c565b90600052602060002090601f01602090048101928262000dfd576000855562000e49565b82601f1062000e1857805160ff191683800117855562000e49565b8280016001018555821562000e49579182015b8281111562000e4857825182559160200191906001019062000e2b565b5b50905062000e58919062000e5c565b5090565b5b8082111562000e7757600081600090555060010162000e5d565b5090565b60008151905062000e8c81620014a5565b92915050565b60006020828403121562000ea557600080fd5b600062000eb58482850162000e7b565b91505092915050565b62000ec981620012cb565b82525050565b600062000edc8262001021565b62000ee881856200102c565b935062000efa81856020860162001316565b62000f05816200140f565b840191505092915050565b600062000f1f601b836200102c565b915062000f2c826200142d565b602082019050919050565b600062000f466021836200102c565b915062000f538262001456565b604082019050919050565b62000f6981620012ff565b82525050565b600060408201905062000f86600083018562000ebe565b62000f95602083018462000ebe565b9392505050565b6000602082019050818103600083015262000fb8818462000ecf565b905092915050565b6000602082019050818103600083015262000fdb8162000f10565b9050919050565b6000602082019050818103600083015262000ffd8162000f37565b9050919050565b60006020820190506200101b600083018462000f5e565b92915050565b600081519050919050565b600082825260208201905092915050565b60006200104a82620012ff565b91506200105783620012ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200108f576200108e62001382565b5b828201905092915050565b6000620010a782620012ff565b9150620010b483620012ff565b925082620010c757620010c6620013b1565b5b828204905092915050565b6000808291508390505b60018511156200112457808604811115620010fc57620010fb62001382565b5b60018516156200110c5780820291505b80810290506200111c8562001420565b9450620010dc565b94509492505050565b60006200113a82620012ff565b9150620011478362001309565b9250620011767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200117e565b905092915050565b60008262001190576001905062001263565b81620011a0576000905062001263565b8160018114620011b95760028114620011c457620011fa565b600191505062001263565b60ff841115620011d957620011d862001382565b5b8360020a915084821115620011f357620011f262001382565b5b5062001263565b5060208310610133831016604e8410600b8410161715620012345782820a9050838111156200122e576200122d62001382565b5b62001263565b620012438484846001620010d2565b925090508184048111156200125d576200125c62001382565b5b81810290505b9392505050565b60006200127782620012ff565b91506200128483620012ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620012c057620012bf62001382565b5b828202905092915050565b6000620012d882620012df565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200133657808201518184015260208101905062001319565b8381111562001346576000848401525b50505050565b600060028204905060018216806200136557607f821691505b602082108114156200137c576200137b620013e0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b620014b081620012cb565b8114620014bc57600080fd5b50565b60805160601c60a05160601c61513c620014f960003960008181610ca70152611343015260008181611317015261136f015261513c6000f3fe6080604052600436106102e85760003560e01c806375cb1bd111610190578063c04a5414116100dc578063d2d7ad8311610095578063e6b2603b1161006f578063e6b2603b14610b7f578063ee828db314610b96578063f2fde38b14610bbf578063f872858a14610be8576102ef565b8063d2d7ad8314610ada578063dbac26e914610b05578063dd62ed3e14610b42576102ef565b8063c04a5414146109cc578063c16dd4a4146109f7578063c49b9a8014610a20578063c816841b14610a49578063c867d60b14610a74578063cea9d26f14610ab1576102ef565b80638da5cb5b11610149578063a457c2d711610123578063a457c2d7146108fe578063a9059cbb1461093b578063af9549e014610978578063bc063e1a146109a1576102ef565b80638da5cb5b1461087d57806395d89b41146108a857806398e944c8146108d3576102ef565b806375cb1bd11461076d57806375f0a874146107965780637d1db4a5146107c1578063807c2d9c146107ec5780638236802e146108175780638b42507f14610840576102ef565b8063313ce5671161024f5780634a74bb02116102085780635c85974f116101e25780635c85974f146106b35780635e42358c146106dc57806370a0823114610707578063728d41c914610744576102ef565b80634a74bb02146106225780635342acb41461064d57806359fac5171461068a576102ef565b8063313ce5671461050257806338ec0b111461052d57806339509351146105565780633b97084a146105935780633ecad271146105bc5780634974d88f146105f9576102ef565b80631d865c30116102a15780631d865c301461040657806320365d5f1461042f57806323b872dd1461044657806325519cf21461048357806327c8f835146104ac5780632b112e49146104d7576102ef565b806306fdde03146102f45780630930907b1461031f578063095ea7b31461034a57806313ea1d89146103875780631694505e146103b057806318160ddd146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610c13565b60405161031691906146a0565b60405180910390f35b34801561032b57600080fd5b50610334610ca5565b60405161034191906145c5565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c91906140c4565b610cc9565b60405161037e919061466a565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190614088565b610ce7565b005b3480156103bc57600080fd5b506103c5610e6a565b6040516103d29190614685565b60405180910390f35b3480156103e757600080fd5b506103f0610e90565b6040516103fd91906148a2565b60405180910390f35b34801561041257600080fd5b5061042d600480360381019061042891906141ca565b610e9a565b005b34801561043b57600080fd5b50610444610fc0565b005b34801561045257600080fd5b5061046d60048036038101906104689190614039565b611115565b60405161047a919061466a565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a591906141ca565b6111ef565b005b3480156104b857600080fd5b506104c1611315565b6040516104ce91906145c5565b60405180910390f35b3480156104e357600080fd5b506104ec611339565b6040516104f991906148a2565b60405180910390f35b34801561050e57600080fd5b506105176113b7565b6040516105249190614947565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190614088565b6113ce565b005b34801561056257600080fd5b5061057d600480360381019061057891906140c4565b611551565b60405161058a919061466a565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b591906141a1565b611604565b005b3480156105c857600080fd5b506105e360048036038101906105de9190613f5c565b6116a3565b6040516105f0919061466a565b60405180910390f35b34801561060557600080fd5b50610620600480360381019061061b9190614100565b6116c3565b005b34801561062e57600080fd5b50610637611775565b604051610644919061466a565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f9190613f5c565b611788565b604051610681919061466a565b60405180910390f35b34801561069657600080fd5b506106b160048036038101906106ac9190613f5c565b6117a8565b005b3480156106bf57600080fd5b506106da60048036038101906106d591906141a1565b611881565b005b3480156106e857600080fd5b506106f1611920565b6040516106fe919061466a565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190613f5c565b611933565b60405161073b91906148a2565b60405180910390f35b34801561075057600080fd5b5061076b600480360381019061076691906141a1565b61197c565b005b34801561077957600080fd5b50610794600480360381019061078f9190613fea565b611a1b565b005b3480156107a257600080fd5b506107ab611b78565b6040516107b891906145c5565b60405180910390f35b3480156107cd57600080fd5b506107d6611b9e565b6040516107e391906148a2565b60405180910390f35b3480156107f857600080fd5b50610801611ba4565b60405161080e91906148a2565b60405180910390f35b34801561082357600080fd5b5061083e60048036038101906108399190614088565b611baa565b005b34801561084c57600080fd5b5061086760048036038101906108629190613f5c565b611c9a565b604051610874919061466a565b60405180910390f35b34801561088957600080fd5b50610892611cba565b60405161089f91906145c5565b60405180910390f35b3480156108b457600080fd5b506108bd611ce3565b6040516108ca91906146a0565b60405180910390f35b3480156108df57600080fd5b506108e8611d75565b6040516108f591906145c5565b60405180910390f35b34801561090a57600080fd5b50610925600480360381019061092091906140c4565b611d9b565b604051610932919061466a565b60405180910390f35b34801561094757600080fd5b50610962600480360381019061095d91906140c4565b611e68565b60405161096f919061466a565b60405180910390f35b34801561098457600080fd5b5061099f600480360381019061099a9190614088565b611e87565b005b3480156109ad57600080fd5b506109b661200a565b6040516109c391906148a2565b60405180910390f35b3480156109d857600080fd5b506109e161200f565b6040516109ee91906145c5565b60405180910390f35b348015610a0357600080fd5b50610a1e6004803603810190610a199190614088565b612035565b005b348015610a2c57600080fd5b50610a476004803603810190610a429190614100565b612125565b005b348015610a5557600080fd5b50610a5e61220e565b604051610a6b91906145c5565b60405180910390f35b348015610a8057600080fd5b50610a9b6004803603810190610a969190613f5c565b612234565b604051610aa8919061466a565b60405180910390f35b348015610abd57600080fd5b50610ad86004803603810190610ad39190614152565b612254565b005b348015610ae657600080fd5b50610aef61237c565b604051610afc91906148a2565b60405180910390f35b348015610b1157600080fd5b50610b2c6004803603810190610b279190613f5c565b612382565b604051610b39919061466a565b60405180910390f35b348015610b4e57600080fd5b50610b696004803603810190610b649190613fae565b6123a2565b604051610b7691906148a2565b60405180910390f35b348015610b8b57600080fd5b50610b94612429565b005b348015610ba257600080fd5b50610bbd6004803603810190610bb89190614100565b61256d565b005b348015610bcb57600080fd5b50610be66004803603810190610be19190613f5c565b61261f565b005b348015610bf457600080fd5b50610bfd6127e1565b604051610c0a919061466a565b60405180910390f35b606060018054610c2290614ba7565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e90614ba7565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610cdd610cd6612917565b848461291f565b6001905092915050565b610cef612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d73906147e2565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0690614762565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601654905090565b610ea2612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f26906147e2565b60405180910390fd5b826010819055508160118190555080601281905550610f6f601254610f616011546010546128b990919063ffffffff16565b6128b990919063ffffffff16565b60148190555060c86014541115610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb290614782565b60405180910390fd5b505050565b610fc8612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c906147e2565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611122848484612aea565b506111e48461112f612917565b6111df856040518060600160405280602881526020016150ba60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611195612917565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131909092919063ffffffff16565b61291f565b600190509392505050565b6111f7612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b906147e2565b60405180910390fd5b82600d8190555081600e8190555080600f819055506112c4600f546112b6600e54600d546128b990919063ffffffff16565b6128b990919063ffffffff16565b60138190555060c86013541115611310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130790614782565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006113b26113677f0000000000000000000000000000000000000000000000000000000000000000611933565b6113a46113937f0000000000000000000000000000000000000000000000000000000000000000611933565b6016546131f490919063ffffffff16565b6131f490919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6113d6612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a906147e2565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed90614762565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115fa61155e612917565b846115f5856007600061156f612917565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b990919063ffffffff16565b61291f565b6001905092915050565b61160c612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611699576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611690906147e2565b60405180910390fd5b8060178190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6116cb612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f906147e2565b60405180910390fd5b80601a60016101000a81548160ff02191690831515021790555050565b601b60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6117b0612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611834906147e2565b60405180910390fd5b80601a60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611889612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d906147e2565b60405180910390fd5b8060188190555050565b601a60009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611984612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a08906147e2565b60405180910390fd5b8060198190555050565b611a23612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa7906147e2565b60405180910390fd5b82600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b60195481565b611bb2612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c36906147e2565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611cf290614ba7565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1e90614ba7565b8015611d6b5780601f10611d4057610100808354040283529160200191611d6b565b820191906000526020600020905b815481529060010190602001808311611d4e57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611e5e611da8612917565b84611e59856040518060600160405280602581526020016150e26025913960076000611dd2612917565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131909092919063ffffffff16565b61291f565b6001905092915050565b6000611e7c611e75612917565b8484612aea565b506001905092915050565b611e8f612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f13906147e2565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690614762565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60c881565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61203d612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c1906147e2565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61212d612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b1906147e2565b60405180910390fd5b80601b60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051612203919061466a565b60405180910390a150565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61225c612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e0906147e2565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016123249291906145e0565b602060405180830381600087803b15801561233e57600080fd5b505af1158015612352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123769190614129565b50505050565b60175481565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612431612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b5906147e2565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124e4906145b0565b60006040518083038185875af1925050503d8060008114612521576040519150601f19603f3d011682016040523d82523d6000602084013e612526565b606091505b505090508061256a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256190614882565b60405180910390fd5b50565b612575612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f9906147e2565b60405180910390fd5b80601a60006101000a81548160ff02191690831515021790555050565b612627612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ab906147e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271b90614702565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a60019054906101000a900460ff1681565b6000808314156128075760009050612869565b600082846128159190614a49565b90508284826128249190614a18565b14612864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285b906147c2565b60405180910390fd5b809150505b92915050565b60006128b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061323e565b905092915050565b60008082846128c891906149c2565b90508381101561290d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290490614742565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298690614842565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f690614722565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612add91906148a2565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5290614822565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc2906146c2565b60405180910390fd5b60008211612c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0590614802565b60405180910390fd5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cb25750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce890614862565b60405180910390fd5b601b60149054906101000a900460ff1615612d1857612d118484846132a1565b9050613189565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612dbc5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612dd45750601a60009054906101000a900460ff165b15612e1f57601854821115612e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e15906147a2565b60405180910390fd5b5b6000612e2a30611933565b905060006017548210159050808015612e505750601b60149054906101000a900460ff16155b8015612ea65750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ebe5750601b60159054906101000a900460ff165b15612ecc57612ecb613474565b5b612f55846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131909092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612fa487876136e2565b612fb857612fb387878761384d565b612fba565b845b9050601a60019054906101000a900460ff1680156130225750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613087576019546130458261303789611933565b6128b990919063ffffffff16565b1115613086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307d906146e2565b60405180910390fd5b5b6130d981600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b990919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161317991906148a2565b60405180910390a3600193505050505b9392505050565b60008383111582906131d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131cf91906146a0565b60405180910390fd5b50600083856131e79190614aa3565b9050809150509392505050565b600061323683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613190565b905092915050565b60008083118290613285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327c91906146a0565b60405180910390fd5b50600083856132949190614a18565b9050809150509392505050565b600061332c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131909092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133c182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b990919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161346191906148a2565b60405180910390a3600190509392505050565b6001601b60146101000a81548160ff021916908315150217905550600061349a30611933565b905060008114156134ab57506136c5565b60006134c46014546013546128b990919063ffffffff16565b905060006134df601054600d546128b990919063ffffffff16565b905060006134fa601154600e546128b990919063ffffffff16565b9050600061353660026135288661351a878a6127f490919063ffffffff16565b61286f90919063ffffffff16565b61286f90919063ffffffff16565b9050600061354d82876131f490919063ffffffff16565b9050600047905061355d82613a72565b600061357282476131f490919063ffffffff16565b9050600061359c61358d60028961286f90919063ffffffff16565b896131f490919063ffffffff16565b905060006135d860026135ca846135bc8c886127f490919063ffffffff16565b61286f90919063ffffffff16565b61286f90919063ffffffff16565b90506000613601836135f38a876127f490919063ffffffff16565b61286f90919063ffffffff16565b9050600061362a8261361c85886131f490919063ffffffff16565b6131f490919063ffffffff16565b9050600082111561366257613661600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613d6f565b5b600081111561369857613697600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613d6f565b5b6000831180156136a85750600088115b156136b8576136b78884613dba565b5b5050505050505050505050505b6000601b60146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806137855750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156137935760019050613847565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806138345750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156138425760009050613847565b600090505b92915050565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156138d2576138cb6015546138bd601354866127f490919063ffffffff16565b61286f90919063ffffffff16565b9050613951565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156139505761394d60155461393f601454866127f490919063ffffffff16565b61286f90919063ffffffff16565b90505b5b6000811115613a55576139ac81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a4c91906148a2565b60405180910390a35b613a6881846131f490919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115613ab5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015613ae35781602001602082028036833780820191505090505b5090503081600081518110613b21577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613bc357600080fd5b505afa158015613bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bfb9190613f85565b81600181518110613c35577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613c9c30601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461291f565b601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d009594939291906148ed565b600060405180830381600087803b158015613d1a57600080fd5b505af1158015613d2e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613d639291906148bd565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613db5573d6000803e3d6000fd5b505050565b613de730601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461291f565b601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613e7096959493929190614609565b6060604051808303818588803b158015613e8957600080fd5b505af1158015613e9d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613ec29190614219565b5050505050565b600081359050613ed88161505d565b92915050565b600081519050613eed8161505d565b92915050565b600081359050613f0281615074565b92915050565b600081519050613f1781615074565b92915050565b600081359050613f2c8161508b565b92915050565b600081359050613f41816150a2565b92915050565b600081519050613f56816150a2565b92915050565b600060208284031215613f6e57600080fd5b6000613f7c84828501613ec9565b91505092915050565b600060208284031215613f9757600080fd5b6000613fa584828501613ede565b91505092915050565b60008060408385031215613fc157600080fd5b6000613fcf85828601613ec9565b9250506020613fe085828601613ec9565b9150509250929050565b600080600060608486031215613fff57600080fd5b600061400d86828701613ec9565b935050602061401e86828701613ec9565b925050604061402f86828701613ec9565b9150509250925092565b60008060006060848603121561404e57600080fd5b600061405c86828701613ec9565b935050602061406d86828701613ec9565b925050604061407e86828701613f32565b9150509250925092565b6000806040838503121561409b57600080fd5b60006140a985828601613ec9565b92505060206140ba85828601613ef3565b9150509250929050565b600080604083850312156140d757600080fd5b60006140e585828601613ec9565b92505060206140f685828601613f32565b9150509250929050565b60006020828403121561411257600080fd5b600061412084828501613ef3565b91505092915050565b60006020828403121561413b57600080fd5b600061414984828501613f08565b91505092915050565b60008060006060848603121561416757600080fd5b600061417586828701613f1d565b935050602061418686828701613ec9565b925050604061419786828701613f32565b9150509250925092565b6000602082840312156141b357600080fd5b60006141c184828501613f32565b91505092915050565b6000806000606084860312156141df57600080fd5b60006141ed86828701613f32565b93505060206141fe86828701613f32565b925050604061420f86828701613f32565b9150509250925092565b60008060006060848603121561422e57600080fd5b600061423c86828701613f47565b935050602061424d86828701613f47565b925050604061425e86828701613f47565b9150509250925092565b60006142748383614280565b60208301905092915050565b61428981614ad7565b82525050565b61429881614ad7565b82525050565b60006142a982614972565b6142b38185614995565b93506142be83614962565b8060005b838110156142ef5781516142d68882614268565b97506142e183614988565b9250506001810190506142c2565b5085935050505092915050565b61430581614ae9565b82525050565b61431481614b3e565b82525050565b61432381614b62565b82525050565b60006143348261497d565b61433e81856149b1565b935061434e818560208601614b74565b61435781614c66565b840191505092915050565b600061436f6023836149b1565b915061437a82614c77565b604082019050919050565b6000614392601b836149b1565b915061439d82614cc6565b602082019050919050565b60006143b56026836149b1565b91506143c082614cef565b604082019050919050565b60006143d86022836149b1565b91506143e382614d3e565b604082019050919050565b60006143fb601b836149b1565b915061440682614d8d565b602082019050919050565b600061441e600d836149b1565b915061442982614db6565b602082019050919050565b60006144416026836149b1565b915061444c82614ddf565b604082019050919050565b60006144646028836149b1565b915061446f82614e2e565b604082019050919050565b60006144876021836149b1565b915061449282614e7d565b604082019050919050565b60006144aa6020836149b1565b91506144b582614ecc565b602082019050919050565b60006144cd6029836149b1565b91506144d882614ef5565b604082019050919050565b60006144f06025836149b1565b91506144fb82614f44565b604082019050919050565b60006145136000836149a6565b915061451e82614f93565b600082019050919050565b60006145366024836149b1565b915061454182614f96565b604082019050919050565b6000614559602d836149b1565b915061456482614fe5565b604082019050919050565b600061457c6014836149b1565b915061458782615034565b602082019050919050565b61459b81614b27565b82525050565b6145aa81614b31565b82525050565b60006145bb82614506565b9150819050919050565b60006020820190506145da600083018461428f565b92915050565b60006040820190506145f5600083018561428f565b6146026020830184614592565b9392505050565b600060c08201905061461e600083018961428f565b61462b6020830188614592565b614638604083018761431a565b614645606083018661431a565b614652608083018561428f565b61465f60a0830184614592565b979650505050505050565b600060208201905061467f60008301846142fc565b92915050565b600060208201905061469a600083018461430b565b92915050565b600060208201905081810360008301526146ba8184614329565b905092915050565b600060208201905081810360008301526146db81614362565b9050919050565b600060208201905081810360008301526146fb81614385565b9050919050565b6000602082019050818103600083015261471b816143a8565b9050919050565b6000602082019050818103600083015261473b816143cb565b9050919050565b6000602082019050818103600083015261475b816143ee565b9050919050565b6000602082019050818103600083015261477b81614411565b9050919050565b6000602082019050818103600083015261479b81614434565b9050919050565b600060208201905081810360008301526147bb81614457565b9050919050565b600060208201905081810360008301526147db8161447a565b9050919050565b600060208201905081810360008301526147fb8161449d565b9050919050565b6000602082019050818103600083015261481b816144c0565b9050919050565b6000602082019050818103600083015261483b816144e3565b9050919050565b6000602082019050818103600083015261485b81614529565b9050919050565b6000602082019050818103600083015261487b8161454c565b9050919050565b6000602082019050818103600083015261489b8161456f565b9050919050565b60006020820190506148b76000830184614592565b92915050565b60006040820190506148d26000830185614592565b81810360208301526148e4818461429e565b90509392505050565b600060a0820190506149026000830188614592565b61490f602083018761431a565b8181036040830152614921818661429e565b9050614930606083018561428f565b61493d6080830184614592565b9695505050505050565b600060208201905061495c60008301846145a1565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006149cd82614b27565b91506149d883614b27565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a0d57614a0c614bd9565b5b828201905092915050565b6000614a2382614b27565b9150614a2e83614b27565b925082614a3e57614a3d614c08565b5b828204905092915050565b6000614a5482614b27565b9150614a5f83614b27565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614a9857614a97614bd9565b5b828202905092915050565b6000614aae82614b27565b9150614ab983614b27565b925082821015614acc57614acb614bd9565b5b828203905092915050565b6000614ae282614b07565b9050919050565b60008115159050919050565b6000614b0082614ad7565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b4982614b50565b9050919050565b6000614b5b82614b07565b9050919050565b6000614b6d82614b27565b9050919050565b60005b83811015614b92578082015181840152602081019050614b77565b83811115614ba1576000848401525b50505050565b60006002820490506001821680614bbf57607f821691505b60208210811415614bd357614bd2614c37565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b7f4552524f5221204d415820544158204c494d495420455843454544454420465260008201527f4f4d203230250000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20426c61636b6c69737420426f74732f436f6e7472616374732060008201527f6e6f7420416c6c6f776564212100000000000000000000000000000000000000602082015250565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b61506681614ad7565b811461507157600080fd5b50565b61507d81614ae9565b811461508857600080fd5b50565b61509481614af5565b811461509f57600080fd5b50565b6150ab81614b27565b81146150b657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e9983ddb602bca049914284584ef4ab91e8ccfff3ba617b1d58ad7952b777d5c64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c806375cb1bd111610190578063c04a5414116100dc578063d2d7ad8311610095578063e6b2603b1161006f578063e6b2603b14610b7f578063ee828db314610b96578063f2fde38b14610bbf578063f872858a14610be8576102ef565b8063d2d7ad8314610ada578063dbac26e914610b05578063dd62ed3e14610b42576102ef565b8063c04a5414146109cc578063c16dd4a4146109f7578063c49b9a8014610a20578063c816841b14610a49578063c867d60b14610a74578063cea9d26f14610ab1576102ef565b80638da5cb5b11610149578063a457c2d711610123578063a457c2d7146108fe578063a9059cbb1461093b578063af9549e014610978578063bc063e1a146109a1576102ef565b80638da5cb5b1461087d57806395d89b41146108a857806398e944c8146108d3576102ef565b806375cb1bd11461076d57806375f0a874146107965780637d1db4a5146107c1578063807c2d9c146107ec5780638236802e146108175780638b42507f14610840576102ef565b8063313ce5671161024f5780634a74bb02116102085780635c85974f116101e25780635c85974f146106b35780635e42358c146106dc57806370a0823114610707578063728d41c914610744576102ef565b80634a74bb02146106225780635342acb41461064d57806359fac5171461068a576102ef565b8063313ce5671461050257806338ec0b111461052d57806339509351146105565780633b97084a146105935780633ecad271146105bc5780634974d88f146105f9576102ef565b80631d865c30116102a15780631d865c301461040657806320365d5f1461042f57806323b872dd1461044657806325519cf21461048357806327c8f835146104ac5780632b112e49146104d7576102ef565b806306fdde03146102f45780630930907b1461031f578063095ea7b31461034a57806313ea1d89146103875780631694505e146103b057806318160ddd146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610c13565b60405161031691906146a0565b60405180910390f35b34801561032b57600080fd5b50610334610ca5565b60405161034191906145c5565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c91906140c4565b610cc9565b60405161037e919061466a565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190614088565b610ce7565b005b3480156103bc57600080fd5b506103c5610e6a565b6040516103d29190614685565b60405180910390f35b3480156103e757600080fd5b506103f0610e90565b6040516103fd91906148a2565b60405180910390f35b34801561041257600080fd5b5061042d600480360381019061042891906141ca565b610e9a565b005b34801561043b57600080fd5b50610444610fc0565b005b34801561045257600080fd5b5061046d60048036038101906104689190614039565b611115565b60405161047a919061466a565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a591906141ca565b6111ef565b005b3480156104b857600080fd5b506104c1611315565b6040516104ce91906145c5565b60405180910390f35b3480156104e357600080fd5b506104ec611339565b6040516104f991906148a2565b60405180910390f35b34801561050e57600080fd5b506105176113b7565b6040516105249190614947565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190614088565b6113ce565b005b34801561056257600080fd5b5061057d600480360381019061057891906140c4565b611551565b60405161058a919061466a565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b591906141a1565b611604565b005b3480156105c857600080fd5b506105e360048036038101906105de9190613f5c565b6116a3565b6040516105f0919061466a565b60405180910390f35b34801561060557600080fd5b50610620600480360381019061061b9190614100565b6116c3565b005b34801561062e57600080fd5b50610637611775565b604051610644919061466a565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f9190613f5c565b611788565b604051610681919061466a565b60405180910390f35b34801561069657600080fd5b506106b160048036038101906106ac9190613f5c565b6117a8565b005b3480156106bf57600080fd5b506106da60048036038101906106d591906141a1565b611881565b005b3480156106e857600080fd5b506106f1611920565b6040516106fe919061466a565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190613f5c565b611933565b60405161073b91906148a2565b60405180910390f35b34801561075057600080fd5b5061076b600480360381019061076691906141a1565b61197c565b005b34801561077957600080fd5b50610794600480360381019061078f9190613fea565b611a1b565b005b3480156107a257600080fd5b506107ab611b78565b6040516107b891906145c5565b60405180910390f35b3480156107cd57600080fd5b506107d6611b9e565b6040516107e391906148a2565b60405180910390f35b3480156107f857600080fd5b50610801611ba4565b60405161080e91906148a2565b60405180910390f35b34801561082357600080fd5b5061083e60048036038101906108399190614088565b611baa565b005b34801561084c57600080fd5b5061086760048036038101906108629190613f5c565b611c9a565b604051610874919061466a565b60405180910390f35b34801561088957600080fd5b50610892611cba565b60405161089f91906145c5565b60405180910390f35b3480156108b457600080fd5b506108bd611ce3565b6040516108ca91906146a0565b60405180910390f35b3480156108df57600080fd5b506108e8611d75565b6040516108f591906145c5565b60405180910390f35b34801561090a57600080fd5b50610925600480360381019061092091906140c4565b611d9b565b604051610932919061466a565b60405180910390f35b34801561094757600080fd5b50610962600480360381019061095d91906140c4565b611e68565b60405161096f919061466a565b60405180910390f35b34801561098457600080fd5b5061099f600480360381019061099a9190614088565b611e87565b005b3480156109ad57600080fd5b506109b661200a565b6040516109c391906148a2565b60405180910390f35b3480156109d857600080fd5b506109e161200f565b6040516109ee91906145c5565b60405180910390f35b348015610a0357600080fd5b50610a1e6004803603810190610a199190614088565b612035565b005b348015610a2c57600080fd5b50610a476004803603810190610a429190614100565b612125565b005b348015610a5557600080fd5b50610a5e61220e565b604051610a6b91906145c5565b60405180910390f35b348015610a8057600080fd5b50610a9b6004803603810190610a969190613f5c565b612234565b604051610aa8919061466a565b60405180910390f35b348015610abd57600080fd5b50610ad86004803603810190610ad39190614152565b612254565b005b348015610ae657600080fd5b50610aef61237c565b604051610afc91906148a2565b60405180910390f35b348015610b1157600080fd5b50610b2c6004803603810190610b279190613f5c565b612382565b604051610b39919061466a565b60405180910390f35b348015610b4e57600080fd5b50610b696004803603810190610b649190613fae565b6123a2565b604051610b7691906148a2565b60405180910390f35b348015610b8b57600080fd5b50610b94612429565b005b348015610ba257600080fd5b50610bbd6004803603810190610bb89190614100565b61256d565b005b348015610bcb57600080fd5b50610be66004803603810190610be19190613f5c565b61261f565b005b348015610bf457600080fd5b50610bfd6127e1565b604051610c0a919061466a565b60405180910390f35b606060018054610c2290614ba7565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e90614ba7565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610cdd610cd6612917565b848461291f565b6001905092915050565b610cef612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d73906147e2565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0690614762565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601654905090565b610ea2612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f26906147e2565b60405180910390fd5b826010819055508160118190555080601281905550610f6f601254610f616011546010546128b990919063ffffffff16565b6128b990919063ffffffff16565b60148190555060c86014541115610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb290614782565b60405180910390fd5b505050565b610fc8612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c906147e2565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611122848484612aea565b506111e48461112f612917565b6111df856040518060600160405280602881526020016150ba60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611195612917565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131909092919063ffffffff16565b61291f565b600190509392505050565b6111f7612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b906147e2565b60405180910390fd5b82600d8190555081600e8190555080600f819055506112c4600f546112b6600e54600d546128b990919063ffffffff16565b6128b990919063ffffffff16565b60138190555060c86013541115611310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130790614782565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006113b26113677f0000000000000000000000000000000000000000000000000000000000000000611933565b6113a46113937f000000000000000000000000000000000000000000000000000000000000dead611933565b6016546131f490919063ffffffff16565b6131f490919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6113d6612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a906147e2565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed90614762565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115fa61155e612917565b846115f5856007600061156f612917565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b990919063ffffffff16565b61291f565b6001905092915050565b61160c612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611699576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611690906147e2565b60405180910390fd5b8060178190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6116cb612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f906147e2565b60405180910390fd5b80601a60016101000a81548160ff02191690831515021790555050565b601b60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6117b0612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611834906147e2565b60405180910390fd5b80601a60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611889612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d906147e2565b60405180910390fd5b8060188190555050565b601a60009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611984612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a08906147e2565b60405180910390fd5b8060198190555050565b611a23612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa7906147e2565b60405180910390fd5b82600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b60195481565b611bb2612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c36906147e2565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611cf290614ba7565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1e90614ba7565b8015611d6b5780601f10611d4057610100808354040283529160200191611d6b565b820191906000526020600020905b815481529060010190602001808311611d4e57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611e5e611da8612917565b84611e59856040518060600160405280602581526020016150e26025913960076000611dd2612917565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131909092919063ffffffff16565b61291f565b6001905092915050565b6000611e7c611e75612917565b8484612aea565b506001905092915050565b611e8f612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f13906147e2565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690614762565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60c881565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61203d612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c1906147e2565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61212d612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b1906147e2565b60405180910390fd5b80601b60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051612203919061466a565b60405180910390a150565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61225c612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e0906147e2565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016123249291906145e0565b602060405180830381600087803b15801561233e57600080fd5b505af1158015612352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123769190614129565b50505050565b60175481565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612431612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b5906147e2565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124e4906145b0565b60006040518083038185875af1925050503d8060008114612521576040519150601f19603f3d011682016040523d82523d6000602084013e612526565b606091505b505090508061256a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256190614882565b60405180910390fd5b50565b612575612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f9906147e2565b60405180910390fd5b80601a60006101000a81548160ff02191690831515021790555050565b612627612917565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ab906147e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271b90614702565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a60019054906101000a900460ff1681565b6000808314156128075760009050612869565b600082846128159190614a49565b90508284826128249190614a18565b14612864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285b906147c2565b60405180910390fd5b809150505b92915050565b60006128b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061323e565b905092915050565b60008082846128c891906149c2565b90508381101561290d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290490614742565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298690614842565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f690614722565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612add91906148a2565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5290614822565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc2906146c2565b60405180910390fd5b60008211612c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0590614802565b60405180910390fd5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cb25750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce890614862565b60405180910390fd5b601b60149054906101000a900460ff1615612d1857612d118484846132a1565b9050613189565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612dbc5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612dd45750601a60009054906101000a900460ff165b15612e1f57601854821115612e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e15906147a2565b60405180910390fd5b5b6000612e2a30611933565b905060006017548210159050808015612e505750601b60149054906101000a900460ff16155b8015612ea65750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ebe5750601b60159054906101000a900460ff165b15612ecc57612ecb613474565b5b612f55846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131909092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612fa487876136e2565b612fb857612fb387878761384d565b612fba565b845b9050601a60019054906101000a900460ff1680156130225750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613087576019546130458261303789611933565b6128b990919063ffffffff16565b1115613086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307d906146e2565b60405180910390fd5b5b6130d981600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b990919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161317991906148a2565b60405180910390a3600193505050505b9392505050565b60008383111582906131d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131cf91906146a0565b60405180910390fd5b50600083856131e79190614aa3565b9050809150509392505050565b600061323683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613190565b905092915050565b60008083118290613285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327c91906146a0565b60405180910390fd5b50600083856132949190614a18565b9050809150509392505050565b600061332c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131909092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133c182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b990919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161346191906148a2565b60405180910390a3600190509392505050565b6001601b60146101000a81548160ff021916908315150217905550600061349a30611933565b905060008114156134ab57506136c5565b60006134c46014546013546128b990919063ffffffff16565b905060006134df601054600d546128b990919063ffffffff16565b905060006134fa601154600e546128b990919063ffffffff16565b9050600061353660026135288661351a878a6127f490919063ffffffff16565b61286f90919063ffffffff16565b61286f90919063ffffffff16565b9050600061354d82876131f490919063ffffffff16565b9050600047905061355d82613a72565b600061357282476131f490919063ffffffff16565b9050600061359c61358d60028961286f90919063ffffffff16565b896131f490919063ffffffff16565b905060006135d860026135ca846135bc8c886127f490919063ffffffff16565b61286f90919063ffffffff16565b61286f90919063ffffffff16565b90506000613601836135f38a876127f490919063ffffffff16565b61286f90919063ffffffff16565b9050600061362a8261361c85886131f490919063ffffffff16565b6131f490919063ffffffff16565b9050600082111561366257613661600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613d6f565b5b600081111561369857613697600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613d6f565b5b6000831180156136a85750600088115b156136b8576136b78884613dba565b5b5050505050505050505050505b6000601b60146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806137855750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156137935760019050613847565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806138345750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156138425760009050613847565b600090505b92915050565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156138d2576138cb6015546138bd601354866127f490919063ffffffff16565b61286f90919063ffffffff16565b9050613951565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156139505761394d60155461393f601454866127f490919063ffffffff16565b61286f90919063ffffffff16565b90505b5b6000811115613a55576139ac81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a4c91906148a2565b60405180910390a35b613a6881846131f490919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115613ab5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015613ae35781602001602082028036833780820191505090505b5090503081600081518110613b21577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613bc357600080fd5b505afa158015613bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bfb9190613f85565b81600181518110613c35577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613c9c30601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461291f565b601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d009594939291906148ed565b600060405180830381600087803b158015613d1a57600080fd5b505af1158015613d2e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613d639291906148bd565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613db5573d6000803e3d6000fd5b505050565b613de730601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461291f565b601a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613e7096959493929190614609565b6060604051808303818588803b158015613e8957600080fd5b505af1158015613e9d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613ec29190614219565b5050505050565b600081359050613ed88161505d565b92915050565b600081519050613eed8161505d565b92915050565b600081359050613f0281615074565b92915050565b600081519050613f1781615074565b92915050565b600081359050613f2c8161508b565b92915050565b600081359050613f41816150a2565b92915050565b600081519050613f56816150a2565b92915050565b600060208284031215613f6e57600080fd5b6000613f7c84828501613ec9565b91505092915050565b600060208284031215613f9757600080fd5b6000613fa584828501613ede565b91505092915050565b60008060408385031215613fc157600080fd5b6000613fcf85828601613ec9565b9250506020613fe085828601613ec9565b9150509250929050565b600080600060608486031215613fff57600080fd5b600061400d86828701613ec9565b935050602061401e86828701613ec9565b925050604061402f86828701613ec9565b9150509250925092565b60008060006060848603121561404e57600080fd5b600061405c86828701613ec9565b935050602061406d86828701613ec9565b925050604061407e86828701613f32565b9150509250925092565b6000806040838503121561409b57600080fd5b60006140a985828601613ec9565b92505060206140ba85828601613ef3565b9150509250929050565b600080604083850312156140d757600080fd5b60006140e585828601613ec9565b92505060206140f685828601613f32565b9150509250929050565b60006020828403121561411257600080fd5b600061412084828501613ef3565b91505092915050565b60006020828403121561413b57600080fd5b600061414984828501613f08565b91505092915050565b60008060006060848603121561416757600080fd5b600061417586828701613f1d565b935050602061418686828701613ec9565b925050604061419786828701613f32565b9150509250925092565b6000602082840312156141b357600080fd5b60006141c184828501613f32565b91505092915050565b6000806000606084860312156141df57600080fd5b60006141ed86828701613f32565b93505060206141fe86828701613f32565b925050604061420f86828701613f32565b9150509250925092565b60008060006060848603121561422e57600080fd5b600061423c86828701613f47565b935050602061424d86828701613f47565b925050604061425e86828701613f47565b9150509250925092565b60006142748383614280565b60208301905092915050565b61428981614ad7565b82525050565b61429881614ad7565b82525050565b60006142a982614972565b6142b38185614995565b93506142be83614962565b8060005b838110156142ef5781516142d68882614268565b97506142e183614988565b9250506001810190506142c2565b5085935050505092915050565b61430581614ae9565b82525050565b61431481614b3e565b82525050565b61432381614b62565b82525050565b60006143348261497d565b61433e81856149b1565b935061434e818560208601614b74565b61435781614c66565b840191505092915050565b600061436f6023836149b1565b915061437a82614c77565b604082019050919050565b6000614392601b836149b1565b915061439d82614cc6565b602082019050919050565b60006143b56026836149b1565b91506143c082614cef565b604082019050919050565b60006143d86022836149b1565b91506143e382614d3e565b604082019050919050565b60006143fb601b836149b1565b915061440682614d8d565b602082019050919050565b600061441e600d836149b1565b915061442982614db6565b602082019050919050565b60006144416026836149b1565b915061444c82614ddf565b604082019050919050565b60006144646028836149b1565b915061446f82614e2e565b604082019050919050565b60006144876021836149b1565b915061449282614e7d565b604082019050919050565b60006144aa6020836149b1565b91506144b582614ecc565b602082019050919050565b60006144cd6029836149b1565b91506144d882614ef5565b604082019050919050565b60006144f06025836149b1565b91506144fb82614f44565b604082019050919050565b60006145136000836149a6565b915061451e82614f93565b600082019050919050565b60006145366024836149b1565b915061454182614f96565b604082019050919050565b6000614559602d836149b1565b915061456482614fe5565b604082019050919050565b600061457c6014836149b1565b915061458782615034565b602082019050919050565b61459b81614b27565b82525050565b6145aa81614b31565b82525050565b60006145bb82614506565b9150819050919050565b60006020820190506145da600083018461428f565b92915050565b60006040820190506145f5600083018561428f565b6146026020830184614592565b9392505050565b600060c08201905061461e600083018961428f565b61462b6020830188614592565b614638604083018761431a565b614645606083018661431a565b614652608083018561428f565b61465f60a0830184614592565b979650505050505050565b600060208201905061467f60008301846142fc565b92915050565b600060208201905061469a600083018461430b565b92915050565b600060208201905081810360008301526146ba8184614329565b905092915050565b600060208201905081810360008301526146db81614362565b9050919050565b600060208201905081810360008301526146fb81614385565b9050919050565b6000602082019050818103600083015261471b816143a8565b9050919050565b6000602082019050818103600083015261473b816143cb565b9050919050565b6000602082019050818103600083015261475b816143ee565b9050919050565b6000602082019050818103600083015261477b81614411565b9050919050565b6000602082019050818103600083015261479b81614434565b9050919050565b600060208201905081810360008301526147bb81614457565b9050919050565b600060208201905081810360008301526147db8161447a565b9050919050565b600060208201905081810360008301526147fb8161449d565b9050919050565b6000602082019050818103600083015261481b816144c0565b9050919050565b6000602082019050818103600083015261483b816144e3565b9050919050565b6000602082019050818103600083015261485b81614529565b9050919050565b6000602082019050818103600083015261487b8161454c565b9050919050565b6000602082019050818103600083015261489b8161456f565b9050919050565b60006020820190506148b76000830184614592565b92915050565b60006040820190506148d26000830185614592565b81810360208301526148e4818461429e565b90509392505050565b600060a0820190506149026000830188614592565b61490f602083018761431a565b8181036040830152614921818661429e565b9050614930606083018561428f565b61493d6080830184614592565b9695505050505050565b600060208201905061495c60008301846145a1565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006149cd82614b27565b91506149d883614b27565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a0d57614a0c614bd9565b5b828201905092915050565b6000614a2382614b27565b9150614a2e83614b27565b925082614a3e57614a3d614c08565b5b828204905092915050565b6000614a5482614b27565b9150614a5f83614b27565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614a9857614a97614bd9565b5b828202905092915050565b6000614aae82614b27565b9150614ab983614b27565b925082821015614acc57614acb614bd9565b5b828203905092915050565b6000614ae282614b07565b9050919050565b60008115159050919050565b6000614b0082614ad7565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b4982614b50565b9050919050565b6000614b5b82614b07565b9050919050565b6000614b6d82614b27565b9050919050565b60005b83811015614b92578082015181840152602081019050614b77565b83811115614ba1576000848401525b50505050565b60006002820490506001821680614bbf57607f821691505b60208210811415614bd357614bd2614c37565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b7f4552524f5221204d415820544158204c494d495420455843454544454420465260008201527f4f4d203230250000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20426c61636b6c69737420426f74732f436f6e7472616374732060008201527f6e6f7420416c6c6f776564212100000000000000000000000000000000000000602082015250565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b61506681614ad7565b811461507157600080fd5b50565b61507d81614ae9565b811461508857600080fd5b50565b61509481614af5565b811461509f57600080fd5b50565b6150ab81614b27565b81146150b657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e9983ddb602bca049914284584ef4ab91e8ccfff3ba617b1d58ad7952b777d5c64736f6c63430008040033

Deployed Bytecode Sourcemap

6730:15499:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10481:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7256:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11651:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21248:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8509:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10758:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20194:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5323:231;;;;;;;;;;;;;:::i;:::-;;12602:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19796:390;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7168:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12169:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10667:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21042:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11148:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21442:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7534:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19685:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8624:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7477:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22101:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21688:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8426:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10866:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21574:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20603:230;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6961:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8256:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8342:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19074:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7645:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5102:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10572:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7127:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11374:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12427:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20841:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7753:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7043:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21976:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21797:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8557:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7586:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19443:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8186:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7700:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10997:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19227:176;;;;;;;;;;;;;:::i;:::-;;19581:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5562:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8465:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10481:83;10518:13;10551:5;10544:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10481:83;:::o;7256:81::-;;;:::o;11651:161::-;11726:4;11743:39;11752:12;:10;:12::i;:::-;11766:7;11775:6;11743:8;:39::i;:::-;11800:4;11793:11;;11651:161;;;;:::o;21248:186::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21360:7:::1;21335:32;;:15;:21;21351:4;21335:21;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;21327:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;21419:7;21395:15;:21;21411:4;21395:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;21248:186:::0;;:::o;8509:41::-;;;;;;;;;;;;;:::o;10758:100::-;10811:7;10838:12;;10831:19;;10758:100;:::o;20194:401::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20323:6:::1;20303:17;:26;;;;20360:10;20340:17;:30;;;;20403:15;20381:19;:37;;;;20441:65;20486:19;;20441:40;20463:17;;20441;;:21;;:40;;;;:::i;:::-;:44;;:65;;;;:::i;:::-;20429:9;:77;;;;7787:3;20525:9;;:20;;20517:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20194:401:::0;;;:::o;5323:231::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5431:42:::1;5394:81;;5415:6;::::0;::::1;;;;;;;;5394:81;;;;;;;;;;;;5503:42;5486:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;5323:231::o:0;12602:313::-;12700:4;12717:36;12727:6;12735:9;12746:6;12717:9;:36::i;:::-;;12764:121;12773:6;12781:12;:10;:12::i;:::-;12795:89;12833:6;12795:89;;;;;;;;;;;;;;;;;:11;:19;12807:6;12795:19;;;;;;;;;;;;;;;:33;12815:12;:10;:12::i;:::-;12795:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12764:8;:121::i;:::-;12903:4;12896:11;;12602:313;;;;;:::o;19796:390::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19921:6:::1;19902:16;:25;;;;19957:10;19938:16;:29;;;;19999:15;19978:18;:36;;;;20036:62;20079:18;;20036:38;20057:16;;20036;;:20;;:38;;;;:::i;:::-;:42;;:62;;;;:::i;:::-;20025:8;:73;;;;7787:3;20117:8;;:19;;20109:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;19796:390:::0;;;:::o;7168:81::-;;;:::o;12169:156::-;12222:7;12249:68;12294:22;12304:11;12294:9;:22::i;:::-;12249:40;12266:22;12276:11;12266:9;:22::i;:::-;12249:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;12242:75;;12169:156;:::o;10667:83::-;10708:5;10733:9;;;;;;;;;;;10726:16;;10667:83;:::o;21042:198::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21162:7:::1;21133:36;;:19;:25;21153:4;21133:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;21125:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;21225:7;21197:19;:25;21217:4;21197:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;21042:198:::0;;:::o;11148:218::-;11236:4;11253:83;11262:12;:10;:12::i;:::-;11276:7;11285:50;11324:10;11285:11;:25;11297:12;:10;:12::i;:::-;11285:25;;;;;;;;;;;;;;;:34;11311:7;11285:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11253:8;:83::i;:::-;11354:4;11347:11;;11148:218;;;;:::o;21442:124::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21550:8:::1;21524:23;:34;;;;21442:124:::0;:::o;7534:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;19685:103::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19773:7:::1;19754:16;;:26;;;;;;;;;;;;;;;;;;19685:103:::0;:::o;8624:40::-;;;;;;;;;;;;;:::o;7477:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;22101:123::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22208:7:::1;22171:15;;:45;;;;;;;;;;;;;;;;;;22101:123:::0;:::o;21688:101::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21773:8:::1;21758:12;:23;;;;21688:101:::0;:::o;8426:32::-;;;;;;;;;;;;;:::o;10866:123::-;10932:7;10958:9;:18;10968:7;10958:18;;;;;;;;;;;;;;;;10951:25;;10866:123;;;:::o;21574:106::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21664:8:::1;21651:10;:21;;;;21574:106:::0;:::o;20603:230::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20730:7:::1;20712:15;;:25;;;;;;;;;;;;;;;;;;20768:13;20748:17;;:33;;;;;;;;;;;;;;;;;;20812:13;20792:17;;:33;;;;;;;;;;;;;;;;;;20603:230:::0;;;:::o;6961:75::-;;;;;;;;;;;;;:::o;8256:68::-;;;;:::o;8342:65::-;;;;:::o;19074:112::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19171:7:::1;19151:11;:17;19163:4;19151:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;19074:112:::0;;:::o;7645:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;5102:79::-;5140:7;5167:6;;;;;;;;;;;5160:13;;5102:79;:::o;10572:87::-;10611:13;10644:7;10637:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10572:87;:::o;7127:32::-;;;;;;;;;;;;;:::o;11374:269::-;11467:4;11484:129;11493:12;:10;:12::i;:::-;11507:7;11516:96;11555:15;11516:96;;;;;;;;;;;;;;;;;:11;:25;11528:12;:10;:12::i;:::-;11516:25;;;;;;;;;;;;;;;:34;11542:7;11516:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11484:8;:129::i;:::-;11631:4;11624:11;;11374:269;;;;:::o;12427:167::-;12505:4;12522:42;12532:12;:10;:12::i;:::-;12546:9;12557:6;12522:9;:42::i;:::-;;12582:4;12575:11;;12427:167;;;;:::o;20841:193::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20958:7:::1;20931:34;;:17;:23;20949:4;20931:23;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;20923:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;21019:7;20993:17;:23;21011:4;20993:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;20841:193:::0;;:::o;7753:37::-;7787:3;7753:37;:::o;7043:77::-;;;;;;;;;;;;;:::o;21976:117::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22078:7:::1;22056:12;:19;22069:5;22056:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;21976:117:::0;;:::o;21797:171::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21898:8:::1;21874:21;;:32;;;;;;;;;;;;;;;;;;21922:38;21951:8;21922:38;;;;;;:::i;:::-;;;;;;;;21797:171:::0;:::o;8557:26::-;;;;;;;;;;;;;:::o;7586:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;19443:130::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19535:3:::1;:12;;;19548:9;19558:6;19535:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19443:130:::0;;;:::o;8186:61::-;;;;:::o;7700:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;10997:143::-;11078:7;11105:11;:18;11117:5;11105:18;;;;;;;;;;;;;;;:27;11124:7;11105:27;;;;;;;;;;;;;;;;11098:34;;10997:143;;;;:::o;19227:176::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19280:7:::1;19300:10;19292:24;;19324:21;19292:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19279:71;;;19369:2;19361:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;5306:1;19227:176::o:0;19581:96::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19662:7:::1;19646:13;;:23;;;;;;;;;;;;;;;;;;19581:96:::0;:::o;5562:246::-;5246:12;:10;:12::i;:::-;5236:22;;:6;;;;;;;;;;:22;;;5228:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5671:1:::1;5651:22;;:8;:22;;;;5643:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5761:8;5732:38;;5753:6;::::0;::::1;;;;;;;;5732:38;;;;;;;;;;;;5790:8;5781:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5562:246:::0;:::o;8465:35::-;;;;;;;;;;;;;:::o;3783:250::-;3841:7;3870:1;3865;:6;3861:47;;;3895:1;3888:8;;;;3861:47;3920:9;3936:1;3932;:5;;;;:::i;:::-;3920:17;;3965:1;3960;3956;:5;;;;:::i;:::-;:10;3948:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4024:1;4017:8;;;3783:250;;;;;:::o;4041:132::-;4099:7;4126:39;4130:1;4133;4126:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4119:46;;4041:132;;;;:::o;3250:181::-;3308:7;3328:9;3344:1;3340;:5;;;;:::i;:::-;3328:17;;3369:1;3364;:6;;3356:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3422:1;3415:8;;;3250:181;;;;:::o;2301:115::-;2354:15;2397:10;2382:26;;2301:115;:::o;11820:337::-;11930:1;11913:19;;:5;:19;;;;11905:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12011:1;11992:21;;:7;:21;;;;11984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12095:6;12065:11;:18;12077:5;12065:18;;;;;;;;;;;;;;;:27;12084:7;12065:27;;;;;;;;;;;;;;;:36;;;;12133:7;12117:32;;12126:5;12117:32;;;12142:6;12117:32;;;;;;:::i;:::-;;;;;;;;11820:337;;;:::o;12923:1748::-;13010:4;13055:1;13037:20;;:6;:20;;;;13029:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13139:1;13118:23;;:9;:23;;;;13110:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13209:1;13200:6;:10;13192:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13276:11;:19;13288:6;13276:19;;;;;;;;;;;;;;;;;;;;;;;;;13275:20;:47;;;;;13300:11;:22;13312:9;13300:22;;;;;;;;;;;;;;;;;;;;;;;;;13299:23;13275:47;13267:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;13394:16;;;;;;;;;;;13391:1273;;;13444:41;13459:6;13467:9;13478:6;13444:14;:41::i;:::-;13437:48;;;;13391:1273;13543:15;:23;13559:6;13543:23;;;;;;;;;;;;;;;;;;;;;;;;;13542:24;:55;;;;;13571:15;:26;13587:9;13571:26;;;;;;;;;;;;;;;;;;;;;;;;;13570:27;13542:55;:72;;;;;13601:13;;;;;;;;;;;13542:72;13539:187;;;13653:12;;13643:6;:22;;13635:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13539:187;13743:28;13774:24;13792:4;13774:9;:24::i;:::-;13743:55;;13813:28;13868:23;;13844:20;:47;;13813:78;;13924:23;:44;;;;;13952:16;;;;;;;;;;;13951:17;13924:44;:69;;;;;13973:12;:20;13986:6;13973:20;;;;;;;;;;;;;;;;;;;;;;;;;13972:21;13924:69;:94;;;;;13997:21;;;;;;;;;;;13924:94;13920:165;;;14053:16;:14;:16::i;:::-;13920:165;14121:53;14143:6;14121:53;;;;;;;;;;;;;;;;;:9;:17;14131:6;14121:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14101:9;:17;14111:6;14101:17;;;;;;;;;;;;;;;:73;;;;14191:19;14213:31;14227:6;14234:9;14213:13;:31::i;:::-;:77;;14256:34;14264:6;14272:9;14283:6;14256:7;:34::i;:::-;14213:77;;;14247:6;14213:77;14191:99;;14310:16;;;;;;;;;;;:51;;;;;14331:19;:30;14351:9;14331:30;;;;;;;;;;;;;;;;;;;;;;;;;14330:31;14310:51;14307:181;;;14431:10;;14390:37;14415:11;14390:20;14400:9;14390;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;14382:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;14307:181;14527:37;14552:11;14527:9;:20;14537:9;14527:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14504:9;:20;14514:9;14504:20;;;;;;;;;;;;;;;:60;;;;14603:9;14586:40;;14595:6;14586:40;;;14614:11;14586:40;;;;;;:::i;:::-;;;;;;;;14648:4;14641:11;;;;;12923:1748;;;;;;:::o;3583:192::-;3669:7;3702:1;3697;:6;;3705:12;3689:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3729:9;3745:1;3741;:5;;;;:::i;:::-;3729:17;;3766:1;3759:8;;;3583:192;;;;;:::o;3439:136::-;3497:7;3524:43;3528:1;3531;3524:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3517:50;;3439:136;;;;:::o;4181:278::-;4267:7;4299:1;4295;:5;4302:12;4287:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4326:9;4342:1;4338;:5;;;;:::i;:::-;4326:17;;4450:1;4443:8;;;4181:278;;;;;:::o;14679:330::-;14772:4;14809:53;14831:6;14809:53;;;;;;;;;;;;;;;;;:9;:17;14819:6;14809:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14789:9;:17;14799:6;14789:17;;;;;;;;;;;;;;;:73;;;;14896:32;14921:6;14896:9;:20;14906:9;14896:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14873:9;:20;14883:9;14873:20;;;;;;;;;;;;;;;:55;;;;14961:9;14944:35;;14953:6;14944:35;;;14972:6;14944:35;;;;;;:::i;:::-;;;;;;;;14997:4;14990:11;;14679:330;;;;;:::o;15017:1435::-;9014:4;8995:16;;:23;;;;;;;;;;;;;;;;;;15076::::1;15102:24;15120:4;15102:9;:24::i;:::-;15076:50;;15161:1;15142:15;:20;15139:32;;;15164:7;;;15139:32;15183:19;15205:23;15218:9;;15205:8;;:12;;:23;;;;:::i;:::-;15183:45;;15241:23;15267:39;15288:17;;15267:16;;:20;;:39;;;;:::i;:::-;15241:65;;15317:23;15343:39;15364:17;;15343:16;;:20;;:39;;;;:::i;:::-;15317:65;;15395:19;15417:60;15475:1;15417:53;15458:11;15417:36;15437:15;15417;:19;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;15395:82;;15488:21;15512:32;15532:11;15512:15;:19;;:32;;;;:::i;:::-;15488:56;;15557:22;15582:21;15557:46;;15614:31;15631:13;15614:16;:31::i;:::-;15656:22;15681:41;15707:14;15681:21;:25;;:41;;;;:::i;:::-;15656:66;;15735:19;15757:39;15773:22;15793:1;15773:15;:19;;:22;;;;:::i;:::-;15757:11;:15;;:39;;;;:::i;:::-;15735:61;;15817:26;15846:59;15903:1;15846:52;15886:11;15846:35;15865:15;15846:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15817:88;;15916:26;15945:52;15985:11;15945:35;15964:15;15945:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;15916:81;;16008:28;16039:62;16082:18;16039:38;16058:18;16039:14;:18;;:38;;;;:::i;:::-;:42;;:62;;;;:::i;:::-;16008:93;;16138:1;16117:18;:22;16114:97;;;16154:57;16175:15;;;;;;;;;;;16192:18;16154:20;:57::i;:::-;16114:97;16250:1;16227:20;:24;16224:103;;;16266:61;16287:17;;;;;;;;;;;16306:20;16266;:61::i;:::-;16224:103;16364:1;16343:18;:22;:41;;;;;16383:1;16369:11;:15;16343:41;16340:104;;;16399:45;16412:11;16425:18;16399:12;:45::i;:::-;16340:104;9029:1;;;;;;;;;;;;;9060:5:::0;9041:16;;:24;;;;;;;;;;;;;;;;;;15017:1435::o;17804:366::-;17885:4;17905:17;:25;17923:6;17905:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;17934:17;:28;17952:9;17934:28;;;;;;;;;;;;;;;;;;;;;;;;;17905:57;17902:261;;;17986:4;17979:11;;;;17902:261;18021:12;:20;18034:6;18021:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;18045:12;:23;18058:9;18045:23;;;;;;;;;;;;;;;;;;;;;;;;;18021:47;18017:146;;;18092:5;18085:12;;;;18017:146;18146:5;18139:12;;17804:366;;;;;:::o;18178:724::-;18264:7;18294:14;18351:12;:20;18364:6;18351:20;;;;;;;;;;;;;;;;;;;;;;;;;18348:275;;;18418:37;18443:11;;18418:20;18429:8;;18418:6;:10;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;18406:49;;18348:275;;;18493:12;:23;18506:9;18493:23;;;;;;;;;;;;;;;;;;;;;;;;;18490:133;;;18551:38;18577:11;;18551:21;18562:9;;18551:6;:10;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;18539:50;;18490:133;18348:275;18659:1;18647:9;:13;18644:185;;;18708:39;18737:9;18708;:24;18726:4;18708:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18681:9;:24;18699:4;18681:24;;;;;;;;;;;;;;;:66;;;;18796:4;18771:42;;18780:6;18771:42;;;18803:9;18771:42;;;;;;:::i;:::-;;;;;;;;18644:185;18852:21;18863:9;18852:6;:10;;:21;;;;:::i;:::-;18845:28;;;18178:724;;;;;:::o;16599:666::-;16725:21;16763:1;16749:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16725:40;;16794:4;16776;16781:1;16776:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;16820:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16810:4;16815:1;16810:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;16855:62;16872:4;16887:15;;;;;;;;;;;16905:11;16855:8;:62::i;:::-;16956:15;;;;;;;;;;;:66;;;17037:11;17063:1;17107:4;17134;17170:15;16956:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17222:35;17239:11;17252:4;17222:35;;;;;;;:::i;:::-;;;;;;;;16599:666;;:::o;16460:127::-;16552:9;16544:27;;:35;16572:6;16544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16460:127;;:::o;17273:523::-;17421:62;17438:4;17453:15;;;;;;;;;;;17471:11;17421:8;:62::i;:::-;17526:15;;;;;;;;;;;:31;;;17565:9;17598:4;17618:11;17644:1;17687;17730:17;;;;;;;;;;;17762:15;17526:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17273:523;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:165::-;642:5;680:6;667:20;658:29;;696:46;736:5;696:46;:::i;:::-;648:100;;;;:::o;754:139::-;800:5;838:6;825:20;816:29;;854:33;881:5;854:33;:::i;:::-;806:87;;;;:::o;899:143::-;956:5;987:6;981:13;972:22;;1003:33;1030:5;1003:33;:::i;:::-;962:80;;;;:::o;1048:262::-;1107:6;1156:2;1144:9;1135:7;1131:23;1127:32;1124:2;;;1172:1;1169;1162:12;1124:2;1215:1;1240:53;1285:7;1276:6;1265:9;1261:22;1240:53;:::i;:::-;1230:63;;1186:117;1114:196;;;;:::o;1316:284::-;1386:6;1435:2;1423:9;1414:7;1410:23;1406:32;1403:2;;;1451:1;1448;1441:12;1403:2;1494:1;1519:64;1575:7;1566:6;1555:9;1551:22;1519:64;:::i;:::-;1509:74;;1465:128;1393:207;;;;:::o;1606:407::-;1674:6;1682;1731:2;1719:9;1710:7;1706:23;1702:32;1699:2;;;1747:1;1744;1737:12;1699:2;1790:1;1815:53;1860:7;1851:6;1840:9;1836:22;1815:53;:::i;:::-;1805:63;;1761:117;1917:2;1943:53;1988:7;1979:6;1968:9;1964:22;1943:53;:::i;:::-;1933:63;;1888:118;1689:324;;;;;:::o;2019:552::-;2096:6;2104;2112;2161:2;2149:9;2140:7;2136:23;2132:32;2129:2;;;2177:1;2174;2167:12;2129:2;2220:1;2245:53;2290:7;2281:6;2270:9;2266:22;2245:53;:::i;:::-;2235:63;;2191:117;2347:2;2373:53;2418:7;2409:6;2398:9;2394:22;2373:53;:::i;:::-;2363:63;;2318:118;2475:2;2501:53;2546:7;2537:6;2526:9;2522:22;2501:53;:::i;:::-;2491:63;;2446:118;2119:452;;;;;:::o;2577:552::-;2654:6;2662;2670;2719:2;2707:9;2698:7;2694:23;2690:32;2687:2;;;2735:1;2732;2725:12;2687:2;2778:1;2803:53;2848:7;2839:6;2828:9;2824:22;2803:53;:::i;:::-;2793:63;;2749:117;2905:2;2931:53;2976:7;2967:6;2956:9;2952:22;2931:53;:::i;:::-;2921:63;;2876:118;3033:2;3059:53;3104:7;3095:6;3084:9;3080:22;3059:53;:::i;:::-;3049:63;;3004:118;2677:452;;;;;:::o;3135:401::-;3200:6;3208;3257:2;3245:9;3236:7;3232:23;3228:32;3225:2;;;3273:1;3270;3263:12;3225:2;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:50;3511:7;3502:6;3491:9;3487:22;3469:50;:::i;:::-;3459:60;;3414:115;3215:321;;;;;:::o;3542:407::-;3610:6;3618;3667:2;3655:9;3646:7;3642:23;3638:32;3635:2;;;3683:1;3680;3673:12;3635:2;3726:1;3751:53;3796:7;3787:6;3776:9;3772:22;3751:53;:::i;:::-;3741:63;;3697:117;3853:2;3879:53;3924:7;3915:6;3904:9;3900:22;3879:53;:::i;:::-;3869:63;;3824:118;3625:324;;;;;:::o;3955:256::-;4011:6;4060:2;4048:9;4039:7;4035:23;4031:32;4028:2;;;4076:1;4073;4066:12;4028:2;4119:1;4144:50;4186:7;4177:6;4166:9;4162:22;4144:50;:::i;:::-;4134:60;;4090:114;4018:193;;;;:::o;4217:278::-;4284:6;4333:2;4321:9;4312:7;4308:23;4304:32;4301:2;;;4349:1;4346;4339:12;4301:2;4392:1;4417:61;4470:7;4461:6;4450:9;4446:22;4417:61;:::i;:::-;4407:71;;4363:125;4291:204;;;;:::o;4501:578::-;4591:6;4599;4607;4656:2;4644:9;4635:7;4631:23;4627:32;4624:2;;;4672:1;4669;4662:12;4624:2;4715:1;4740:66;4798:7;4789:6;4778:9;4774:22;4740:66;:::i;:::-;4730:76;;4686:130;4855:2;4881:53;4926:7;4917:6;4906:9;4902:22;4881:53;:::i;:::-;4871:63;;4826:118;4983:2;5009:53;5054:7;5045:6;5034:9;5030:22;5009:53;:::i;:::-;4999:63;;4954:118;4614:465;;;;;:::o;5085:262::-;5144:6;5193:2;5181:9;5172:7;5168:23;5164:32;5161:2;;;5209:1;5206;5199:12;5161:2;5252:1;5277:53;5322:7;5313:6;5302:9;5298:22;5277:53;:::i;:::-;5267:63;;5223:117;5151:196;;;;:::o;5353:552::-;5430:6;5438;5446;5495:2;5483:9;5474:7;5470:23;5466:32;5463:2;;;5511:1;5508;5501:12;5463:2;5554:1;5579:53;5624:7;5615:6;5604:9;5600:22;5579:53;:::i;:::-;5569:63;;5525:117;5681:2;5707:53;5752:7;5743:6;5732:9;5728:22;5707:53;:::i;:::-;5697:63;;5652:118;5809:2;5835:53;5880:7;5871:6;5860:9;5856:22;5835:53;:::i;:::-;5825:63;;5780:118;5453:452;;;;;:::o;5911:596::-;5999:6;6007;6015;6064:2;6052:9;6043:7;6039:23;6035:32;6032:2;;;6080:1;6077;6070:12;6032:2;6123:1;6148:64;6204:7;6195:6;6184:9;6180:22;6148:64;:::i;:::-;6138:74;;6094:128;6261:2;6287:64;6343:7;6334:6;6323:9;6319:22;6287:64;:::i;:::-;6277:74;;6232:129;6400:2;6426:64;6482:7;6473:6;6462:9;6458:22;6426:64;:::i;:::-;6416:74;;6371:129;6022:485;;;;;:::o;6513:179::-;6582:10;6603:46;6645:3;6637:6;6603:46;:::i;:::-;6681:4;6676:3;6672:14;6658:28;;6593:99;;;;:::o;6698:108::-;6775:24;6793:5;6775:24;:::i;:::-;6770:3;6763:37;6753:53;;:::o;6812:118::-;6899:24;6917:5;6899:24;:::i;:::-;6894:3;6887:37;6877:53;;:::o;6966:732::-;7085:3;7114:54;7162:5;7114:54;:::i;:::-;7184:86;7263:6;7258:3;7184:86;:::i;:::-;7177:93;;7294:56;7344:5;7294:56;:::i;:::-;7373:7;7404:1;7389:284;7414:6;7411:1;7408:13;7389:284;;;7490:6;7484:13;7517:63;7576:3;7561:13;7517:63;:::i;:::-;7510:70;;7603:60;7656:6;7603:60;:::i;:::-;7593:70;;7449:224;7436:1;7433;7429:9;7424:14;;7389:284;;;7393:14;7689:3;7682:10;;7090:608;;;;;;;:::o;7704:109::-;7785:21;7800:5;7785:21;:::i;:::-;7780:3;7773:34;7763:50;;:::o;7819:183::-;7932:63;7989:5;7932:63;:::i;:::-;7927:3;7920:76;7910:92;;:::o;8008:147::-;8103:45;8142:5;8103:45;:::i;:::-;8098:3;8091:58;8081:74;;:::o;8161:364::-;8249:3;8277:39;8310:5;8277:39;:::i;:::-;8332:71;8396:6;8391:3;8332:71;:::i;:::-;8325:78;;8412:52;8457:6;8452:3;8445:4;8438:5;8434:16;8412:52;:::i;:::-;8489:29;8511:6;8489:29;:::i;:::-;8484:3;8480:39;8473:46;;8253:272;;;;;:::o;8531:366::-;8673:3;8694:67;8758:2;8753:3;8694:67;:::i;:::-;8687:74;;8770:93;8859:3;8770:93;:::i;:::-;8888:2;8883:3;8879:12;8872:19;;8677:220;;;:::o;8903:366::-;9045:3;9066:67;9130:2;9125:3;9066:67;:::i;:::-;9059:74;;9142:93;9231:3;9142:93;:::i;:::-;9260:2;9255:3;9251:12;9244:19;;9049:220;;;:::o;9275:366::-;9417:3;9438:67;9502:2;9497:3;9438:67;:::i;:::-;9431:74;;9514:93;9603:3;9514:93;:::i;:::-;9632:2;9627:3;9623:12;9616:19;;9421:220;;;:::o;9647:366::-;9789:3;9810:67;9874:2;9869:3;9810:67;:::i;:::-;9803:74;;9886:93;9975:3;9886:93;:::i;:::-;10004:2;9999:3;9995:12;9988:19;;9793:220;;;:::o;10019:366::-;10161:3;10182:67;10246:2;10241:3;10182:67;:::i;:::-;10175:74;;10258:93;10347:3;10258:93;:::i;:::-;10376:2;10371:3;10367:12;10360:19;;10165:220;;;:::o;10391:366::-;10533:3;10554:67;10618:2;10613:3;10554:67;:::i;:::-;10547:74;;10630:93;10719:3;10630:93;:::i;:::-;10748:2;10743:3;10739:12;10732:19;;10537:220;;;:::o;10763:366::-;10905:3;10926:67;10990:2;10985:3;10926:67;:::i;:::-;10919:74;;11002:93;11091:3;11002:93;:::i;:::-;11120:2;11115:3;11111:12;11104:19;;10909:220;;;:::o;11135:366::-;11277:3;11298:67;11362:2;11357:3;11298:67;:::i;:::-;11291:74;;11374:93;11463:3;11374:93;:::i;:::-;11492:2;11487:3;11483:12;11476:19;;11281:220;;;:::o;11507:366::-;11649:3;11670:67;11734:2;11729:3;11670:67;:::i;:::-;11663:74;;11746:93;11835:3;11746:93;:::i;:::-;11864:2;11859:3;11855:12;11848:19;;11653:220;;;:::o;11879:366::-;12021:3;12042:67;12106:2;12101:3;12042:67;:::i;:::-;12035:74;;12118:93;12207:3;12118:93;:::i;:::-;12236:2;12231:3;12227:12;12220:19;;12025:220;;;:::o;12251:366::-;12393:3;12414:67;12478:2;12473:3;12414:67;:::i;:::-;12407:74;;12490:93;12579:3;12490:93;:::i;:::-;12608:2;12603:3;12599:12;12592:19;;12397:220;;;:::o;12623:366::-;12765:3;12786:67;12850:2;12845:3;12786:67;:::i;:::-;12779:74;;12862:93;12951:3;12862:93;:::i;:::-;12980:2;12975:3;12971:12;12964:19;;12769:220;;;:::o;12995:398::-;13154:3;13175:83;13256:1;13251:3;13175:83;:::i;:::-;13168:90;;13267:93;13356:3;13267:93;:::i;:::-;13385:1;13380:3;13376:11;13369:18;;13158:235;;;:::o;13399:366::-;13541:3;13562:67;13626:2;13621:3;13562:67;:::i;:::-;13555:74;;13638:93;13727:3;13638:93;:::i;:::-;13756:2;13751:3;13747:12;13740:19;;13545:220;;;:::o;13771:366::-;13913:3;13934:67;13998:2;13993:3;13934:67;:::i;:::-;13927:74;;14010:93;14099:3;14010:93;:::i;:::-;14128:2;14123:3;14119:12;14112:19;;13917:220;;;:::o;14143:366::-;14285:3;14306:67;14370:2;14365:3;14306:67;:::i;:::-;14299:74;;14382:93;14471:3;14382:93;:::i;:::-;14500:2;14495:3;14491:12;14484:19;;14289:220;;;:::o;14515:118::-;14602:24;14620:5;14602:24;:::i;:::-;14597:3;14590:37;14580:53;;:::o;14639:112::-;14722:22;14738:5;14722:22;:::i;:::-;14717:3;14710:35;14700:51;;:::o;14757:379::-;14941:3;14963:147;15106:3;14963:147;:::i;:::-;14956:154;;15127:3;15120:10;;14945:191;;;:::o;15142:222::-;15235:4;15273:2;15262:9;15258:18;15250:26;;15286:71;15354:1;15343:9;15339:17;15330:6;15286:71;:::i;:::-;15240:124;;;;:::o;15370:332::-;15491:4;15529:2;15518:9;15514:18;15506:26;;15542:71;15610:1;15599:9;15595:17;15586:6;15542:71;:::i;:::-;15623:72;15691:2;15680:9;15676:18;15667:6;15623:72;:::i;:::-;15496:206;;;;;:::o;15708:807::-;15957:4;15995:3;15984:9;15980:19;15972:27;;16009:71;16077:1;16066:9;16062:17;16053:6;16009:71;:::i;:::-;16090:72;16158:2;16147:9;16143:18;16134:6;16090:72;:::i;:::-;16172:80;16248:2;16237:9;16233:18;16224:6;16172:80;:::i;:::-;16262;16338:2;16327:9;16323:18;16314:6;16262:80;:::i;:::-;16352:73;16420:3;16409:9;16405:19;16396:6;16352:73;:::i;:::-;16435;16503:3;16492:9;16488:19;16479:6;16435:73;:::i;:::-;15962:553;;;;;;;;;:::o;16521:210::-;16608:4;16646:2;16635:9;16631:18;16623:26;;16659:65;16721:1;16710:9;16706:17;16697:6;16659:65;:::i;:::-;16613:118;;;;:::o;16737:274::-;16856:4;16894:2;16883:9;16879:18;16871:26;;16907:97;17001:1;16990:9;16986:17;16977:6;16907:97;:::i;:::-;16861:150;;;;:::o;17017:313::-;17130:4;17168:2;17157:9;17153:18;17145:26;;17217:9;17211:4;17207:20;17203:1;17192:9;17188:17;17181:47;17245:78;17318:4;17309:6;17245:78;:::i;:::-;17237:86;;17135:195;;;;:::o;17336:419::-;17502:4;17540:2;17529:9;17525:18;17517:26;;17589:9;17583:4;17579:20;17575:1;17564:9;17560:17;17553:47;17617:131;17743:4;17617:131;:::i;:::-;17609:139;;17507:248;;;:::o;17761:419::-;17927:4;17965:2;17954:9;17950:18;17942:26;;18014:9;18008:4;18004:20;18000:1;17989:9;17985:17;17978:47;18042:131;18168:4;18042:131;:::i;:::-;18034:139;;17932:248;;;:::o;18186:419::-;18352:4;18390:2;18379:9;18375:18;18367:26;;18439:9;18433:4;18429:20;18425:1;18414:9;18410:17;18403:47;18467:131;18593:4;18467:131;:::i;:::-;18459:139;;18357:248;;;:::o;18611:419::-;18777:4;18815:2;18804:9;18800:18;18792:26;;18864:9;18858:4;18854:20;18850:1;18839:9;18835:17;18828:47;18892:131;19018:4;18892:131;:::i;:::-;18884:139;;18782:248;;;:::o;19036:419::-;19202:4;19240:2;19229:9;19225:18;19217:26;;19289:9;19283:4;19279:20;19275:1;19264:9;19260:17;19253:47;19317:131;19443:4;19317:131;:::i;:::-;19309:139;;19207:248;;;:::o;19461:419::-;19627:4;19665:2;19654:9;19650:18;19642:26;;19714:9;19708:4;19704:20;19700:1;19689:9;19685:17;19678:47;19742:131;19868:4;19742:131;:::i;:::-;19734:139;;19632:248;;;:::o;19886:419::-;20052:4;20090:2;20079:9;20075:18;20067:26;;20139:9;20133:4;20129:20;20125:1;20114:9;20110:17;20103:47;20167:131;20293:4;20167:131;:::i;:::-;20159:139;;20057:248;;;:::o;20311:419::-;20477:4;20515:2;20504:9;20500:18;20492:26;;20564:9;20558:4;20554:20;20550:1;20539:9;20535:17;20528:47;20592:131;20718:4;20592:131;:::i;:::-;20584:139;;20482:248;;;:::o;20736:419::-;20902:4;20940:2;20929:9;20925:18;20917:26;;20989:9;20983:4;20979:20;20975:1;20964:9;20960:17;20953:47;21017:131;21143:4;21017:131;:::i;:::-;21009:139;;20907:248;;;:::o;21161:419::-;21327:4;21365:2;21354:9;21350:18;21342:26;;21414:9;21408:4;21404:20;21400:1;21389:9;21385:17;21378:47;21442:131;21568:4;21442:131;:::i;:::-;21434:139;;21332:248;;;:::o;21586:419::-;21752:4;21790:2;21779:9;21775:18;21767:26;;21839:9;21833:4;21829:20;21825:1;21814:9;21810:17;21803:47;21867:131;21993:4;21867:131;:::i;:::-;21859:139;;21757:248;;;:::o;22011:419::-;22177:4;22215:2;22204:9;22200:18;22192:26;;22264:9;22258:4;22254:20;22250:1;22239:9;22235:17;22228:47;22292:131;22418:4;22292:131;:::i;:::-;22284:139;;22182:248;;;:::o;22436:419::-;22602:4;22640:2;22629:9;22625:18;22617:26;;22689:9;22683:4;22679:20;22675:1;22664:9;22660:17;22653:47;22717:131;22843:4;22717:131;:::i;:::-;22709:139;;22607:248;;;:::o;22861:419::-;23027:4;23065:2;23054:9;23050:18;23042:26;;23114:9;23108:4;23104:20;23100:1;23089:9;23085:17;23078:47;23142:131;23268:4;23142:131;:::i;:::-;23134:139;;23032:248;;;:::o;23286:419::-;23452:4;23490:2;23479:9;23475:18;23467:26;;23539:9;23533:4;23529:20;23525:1;23514:9;23510:17;23503:47;23567:131;23693:4;23567:131;:::i;:::-;23559:139;;23457:248;;;:::o;23711:222::-;23804:4;23842:2;23831:9;23827:18;23819:26;;23855:71;23923:1;23912:9;23908:17;23899:6;23855:71;:::i;:::-;23809:124;;;;:::o;23939:483::-;24110:4;24148:2;24137:9;24133:18;24125:26;;24161:71;24229:1;24218:9;24214:17;24205:6;24161:71;:::i;:::-;24279:9;24273:4;24269:20;24264:2;24253:9;24249:18;24242:48;24307:108;24410:4;24401:6;24307:108;:::i;:::-;24299:116;;24115:307;;;;;:::o;24428:831::-;24691:4;24729:3;24718:9;24714:19;24706:27;;24743:71;24811:1;24800:9;24796:17;24787:6;24743:71;:::i;:::-;24824:80;24900:2;24889:9;24885:18;24876:6;24824:80;:::i;:::-;24951:9;24945:4;24941:20;24936:2;24925:9;24921:18;24914:48;24979:108;25082:4;25073:6;24979:108;:::i;:::-;24971:116;;25097:72;25165:2;25154:9;25150:18;25141:6;25097:72;:::i;:::-;25179:73;25247:3;25236:9;25232:19;25223:6;25179:73;:::i;:::-;24696:563;;;;;;;;:::o;25265:214::-;25354:4;25392:2;25381:9;25377:18;25369:26;;25405:67;25469:1;25458:9;25454:17;25445:6;25405:67;:::i;:::-;25359:120;;;;:::o;25485:132::-;25552:4;25575:3;25567:11;;25605:4;25600:3;25596:14;25588:22;;25557:60;;;:::o;25623:114::-;25690:6;25724:5;25718:12;25708:22;;25697:40;;;:::o;25743:99::-;25795:6;25829:5;25823:12;25813:22;;25802:40;;;:::o;25848:113::-;25918:4;25950;25945:3;25941:14;25933:22;;25923:38;;;:::o;25967:184::-;26066:11;26100:6;26095:3;26088:19;26140:4;26135:3;26131:14;26116:29;;26078:73;;;;:::o;26157:147::-;26258:11;26295:3;26280:18;;26270:34;;;;:::o;26310:169::-;26394:11;26428:6;26423:3;26416:19;26468:4;26463:3;26459:14;26444:29;;26406:73;;;;:::o;26485:305::-;26525:3;26544:20;26562:1;26544:20;:::i;:::-;26539:25;;26578:20;26596:1;26578:20;:::i;:::-;26573:25;;26732:1;26664:66;26660:74;26657:1;26654:81;26651:2;;;26738:18;;:::i;:::-;26651:2;26782:1;26779;26775:9;26768:16;;26529:261;;;;:::o;26796:185::-;26836:1;26853:20;26871:1;26853:20;:::i;:::-;26848:25;;26887:20;26905:1;26887:20;:::i;:::-;26882:25;;26926:1;26916:2;;26931:18;;:::i;:::-;26916:2;26973:1;26970;26966:9;26961:14;;26838:143;;;;:::o;26987:348::-;27027:7;27050:20;27068:1;27050:20;:::i;:::-;27045:25;;27084:20;27102:1;27084:20;:::i;:::-;27079:25;;27272:1;27204:66;27200:74;27197:1;27194:81;27189:1;27182:9;27175:17;27171:105;27168:2;;;27279:18;;:::i;:::-;27168:2;27327:1;27324;27320:9;27309:20;;27035:300;;;;:::o;27341:191::-;27381:4;27401:20;27419:1;27401:20;:::i;:::-;27396:25;;27435:20;27453:1;27435:20;:::i;:::-;27430:25;;27474:1;27471;27468:8;27465:2;;;27479:18;;:::i;:::-;27465:2;27524:1;27521;27517:9;27509:17;;27386:146;;;;:::o;27538:96::-;27575:7;27604:24;27622:5;27604:24;:::i;:::-;27593:35;;27583:51;;;:::o;27640:90::-;27674:7;27717:5;27710:13;27703:21;27692:32;;27682:48;;;:::o;27736:109::-;27786:7;27815:24;27833:5;27815:24;:::i;:::-;27804:35;;27794:51;;;:::o;27851:126::-;27888:7;27928:42;27921:5;27917:54;27906:65;;27896:81;;;:::o;27983:77::-;28020:7;28049:5;28038:16;;28028:32;;;:::o;28066:86::-;28101:7;28141:4;28134:5;28130:16;28119:27;;28109:43;;;:::o;28158:178::-;28234:9;28267:63;28324:5;28267:63;:::i;:::-;28254:76;;28244:92;;;:::o;28342:139::-;28418:9;28451:24;28469:5;28451:24;:::i;:::-;28438:37;;28428:53;;;:::o;28487:121::-;28545:9;28578:24;28596:5;28578:24;:::i;:::-;28565:37;;28555:53;;;:::o;28614:307::-;28682:1;28692:113;28706:6;28703:1;28700:13;28692:113;;;28791:1;28786:3;28782:11;28776:18;28772:1;28767:3;28763:11;28756:39;28728:2;28725:1;28721:10;28716:15;;28692:113;;;28823:6;28820:1;28817:13;28814:2;;;28903:1;28894:6;28889:3;28885:16;28878:27;28814:2;28663:258;;;;:::o;28927:320::-;28971:6;29008:1;29002:4;28998:12;28988:22;;29055:1;29049:4;29045:12;29076:18;29066:2;;29132:4;29124:6;29120:17;29110:27;;29066:2;29194;29186:6;29183:14;29163:18;29160:38;29157:2;;;29213:18;;:::i;:::-;29157:2;28978:269;;;;:::o;29253:180::-;29301:77;29298:1;29291:88;29398:4;29395:1;29388:15;29422:4;29419:1;29412:15;29439:180;29487:77;29484:1;29477:88;29584:4;29581:1;29574:15;29608:4;29605:1;29598:15;29625:180;29673:77;29670:1;29663:88;29770:4;29767:1;29760:15;29794:4;29791:1;29784:15;29811:102;29852:6;29903:2;29899:7;29894:2;29887:5;29883:14;29879:28;29869:38;;29859:54;;;:::o;29919:222::-;30059:34;30055:1;30047:6;30043:14;30036:58;30128:5;30123:2;30115:6;30111:15;30104:30;30025:116;:::o;30147:177::-;30287:29;30283:1;30275:6;30271:14;30264:53;30253:71;:::o;30330:225::-;30470:34;30466:1;30458:6;30454:14;30447:58;30539:8;30534:2;30526:6;30522:15;30515:33;30436:119;:::o;30561:221::-;30701:34;30697:1;30689:6;30685:14;30678:58;30770:4;30765:2;30757:6;30753:15;30746:29;30667:115;:::o;30788:177::-;30928:29;30924:1;30916:6;30912:14;30905:53;30894:71;:::o;30971:163::-;31111:15;31107:1;31099:6;31095:14;31088:39;31077:57;:::o;31140:225::-;31280:34;31276:1;31268:6;31264:14;31257:58;31349:8;31344:2;31336:6;31332:15;31325:33;31246:119;:::o;31371:227::-;31511:34;31507:1;31499:6;31495:14;31488:58;31580:10;31575:2;31567:6;31563:15;31556:35;31477:121;:::o;31604:220::-;31744:34;31740:1;31732:6;31728:14;31721:58;31813:3;31808:2;31800:6;31796:15;31789:28;31710:114;:::o;31830:182::-;31970:34;31966:1;31958:6;31954:14;31947:58;31936:76;:::o;32018:228::-;32158:34;32154:1;32146:6;32142:14;32135:58;32227:11;32222:2;32214:6;32210:15;32203:36;32124:122;:::o;32252:224::-;32392:34;32388:1;32380:6;32376:14;32369:58;32461:7;32456:2;32448:6;32444:15;32437:32;32358:118;:::o;32482:114::-;32588:8;:::o;32602:223::-;32742:34;32738:1;32730:6;32726:14;32719:58;32811:6;32806:2;32798:6;32794:15;32787:31;32708:117;:::o;32831:232::-;32971:34;32967:1;32959:6;32955:14;32948:58;33040:15;33035:2;33027:6;33023:15;33016:40;32937:126;:::o;33069:170::-;33209:22;33205:1;33197:6;33193:14;33186:46;33175:64;:::o;33245:122::-;33318:24;33336:5;33318:24;:::i;:::-;33311:5;33308:35;33298:2;;33357:1;33354;33347:12;33298:2;33288:79;:::o;33373:116::-;33443:21;33458:5;33443:21;:::i;:::-;33436:5;33433:32;33423:2;;33479:1;33476;33469:12;33423:2;33413:76;:::o;33495:148::-;33581:37;33612:5;33581:37;:::i;:::-;33574:5;33571:48;33561:2;;33633:1;33630;33623:12;33561:2;33551:92;:::o;33649:122::-;33722:24;33740:5;33722:24;:::i;:::-;33715:5;33712:35;33702:2;;33761:1;33758;33751:12;33702:2;33692:79;:::o

Swarm Source

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