ETH Price: $2,409.78 (-0.40%)

Token

Neero Bot (NEERO)
 

Overview

Max Total Supply

1,000,000 NEERO

Holders

91

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
417.047718109 NEERO

Value
$0.00
0xcC795506EC1E366e5F527dbc8e75e8E257Edb693
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:
NeeroBot

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-05
*/

/**
 *Submitted for verification at Etherscan.io on 2023-09-05
*/
// https://t.me/NeeroBot_erc
// https://neerobot.app
// https://x.com/neerobot
// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        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
    );
}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    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);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract NeeroBot is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Neero Bot"; // token name
    string private _symbol = "NEERO"; // token ticker
    uint8 private _decimals = 9; // token decimals

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint256 public totalBuyFee = 250;
    uint256 public totalSellFee = 300;

    address public MarketingWallet = address(0xb9e2CCd59fDF4eAb51A5eD8f72AbAD8AA942f411);
    address public DistributionWallet = address(0x62C2C83bA779062d05e4cb39703A11E63b8E0954);
    
    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 isBot;

    uint256 private _totalSupply = 1_000_000 * 10**_decimals;

    uint256 feedenominator = 1000;

    uint256 public _maxTxAmount =  _totalSupply.mul(10).div(1000);    
    uint256 public _walletMax = _totalSupply.mul(10).div(500);    
    uint256 public swapThreshold = 3_000 * 10**_decimals;

    bool public trading; 

    bool public swapEnabled = true;
    bool public swapByLimit = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    mapping (address => bool) public isTokenWL;

    IDexSwapRouter public DexRouter;
    address public DexPair;

    bool inSwap;
    
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        DexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        DexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(DexRouter)] = true;
        isExcludedFromFee[address(MarketingWallet)] = true;

        isTokenWL[address(msg.sender)] = true;
        isTokenWL[address(this)] = true;
        isTokenWL[address(DexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(DexPair)] = true;
        isWalletLimitExempt[address(DexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[address(MarketingWallet)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(DexRouter)] = true;
        isTxLimitExempt[address(MarketingWallet)] = true;

        isMarketPair[address(DexPair)] = true;

        _allowances[address(this)][address(DexRouter)] = ~uint256(0);
        _allowances[address(this)][address(DexPair)] = ~uint256(0);

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

    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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

     //to recieve ETH from Router when swapping
    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(!isBot[sender], "ERC20: Bot detected");
        require(!isBot[msg.sender], "ERC20: Bot detected");
        require(!isBot[tx.origin], "ERC20: Bot detected");

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!isTokenWL[sender] && !isTokenWL[recipient]) {
                require(trading, "ERC20: trading not enable yet");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }
            
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(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 shouldNotTakeFee(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]) { //buy
                feeAmount = amount.mul(totalBuyFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { //sell
                feeAmount = amount.mul(totalSellFee).div(feedenominator);
            }

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

            return amount.sub(feeAmount);
        }
        
    }

    function swapBack(uint contractBalance) internal swapping {

        uint256 totalShares = totalBuyFee.add(totalSellFee);

        if(totalShares == 0) return;

        if(swapByLimit) {
            contractBalance =  swapThreshold;
        }

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

        if(amountReceived > 0) payable(MarketingWallet).transfer(amountReceived*2/5);
        payable(DistributionWallet).transfer(amountReceived*3/5);
    }

    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] = DexRouter.WETH();

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

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

    function startTrading() external onlyOwner {
        require(!trading, "ERC20: Already Enabled");
        trading = true;
    }

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

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

    function updateSetting(address[] calldata _adr, bool _status) external onlyOwner {
        for(uint i = 0; i < _adr.length; i++){
            isTokenWL[_adr[i]] = _status;
        }
    }

    function addOrRemoveBots(address[] calldata accounts, bool value)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; i++) {
            isBot[accounts[i]] = value;
        }
    }

    function setBuyFee(uint _newBuy, uint _newSell) external onlyOwner {
        totalBuyFee = _newBuy;
        totalSellFee = _newSell;
    }

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

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

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

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

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setMarketingWallet(address _newWallet) external onlyOwner {
        MarketingWallet = _newWallet;
    }

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

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

    function setManualRouter(address _router) external onlyOwner {
        DexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        DexPair = _pair;
    }


}

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":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","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":"DexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DistributionWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"addOrRemoveBots","outputs":[],"stateMutability":"nonpayable","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":[],"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":[{"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":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","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":"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":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"isTokenWL","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":"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":"renounceOwnership","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":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","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":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapByLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address[]","name":"_adr","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600981526020017f4e6565726f20426f7400000000000000000000000000000000000000000000008152506001908051906020019062000051929190620011cd565b506040518060400160405280600581526020017f4e4545524f000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f929190620011cd565b506009600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525060fa60045561012c60055573b9e2ccd59fdf4eab51a5ed8f72abad8aa942f411600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507362c2c83ba779062d05e4cb39703a11e63b8e0954600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620001f8919062001417565b620f424062000208919062001468565b600f556103e8601055620002496103e862000235600a600f5462000fc360201b620024ea1790919060201c565b6200104760201b620025651790919060201c565b601155620002846101f462000270600a600f5462000fc360201b620024ea1790919060201c565b6200104760201b620025651790919060201c565b601255600360009054906101000a900460ff16600a620002a5919062001417565b610bb8620002b4919062001468565b6013556001601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff0219169083151502179055506001601460036101000a81548160ff0219169083151502179055506001601460046101000a81548160ff0219169083151502179055503480156200033057600080fd5b5062000351620003456200109960201b60201c565b620010a160201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003dc919062001533565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046a919062001533565b6040518363ffffffff1660e01b81526004016200048992919062001576565b6020604051808303816000875af1158015620004a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004cf919062001533565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f54600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405162000fb49190620015b4565b60405180910390a350620017fd565b60008083141562000fd8576000905062001041565b6000828462000fe8919062001468565b905082848262000ff9919062001600565b146200103c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200103390620016bf565b60405180910390fd5b809150505b92915050565b60006200109183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200116560201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290620011af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011a6919062001774565b60405180910390fd5b5060008385620011c0919062001600565b9050809150509392505050565b828054620011db90620017c7565b90600052602060002090601f016020900481019282620011ff57600085556200124b565b82601f106200121a57805160ff19168380011785556200124b565b828001600101855582156200124b579182015b828111156200124a5782518255916020019190600101906200122d565b5b5090506200125a91906200125e565b5090565b5b80821115620012795760008160009055506001016200125f565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200130b57808604811115620012e357620012e26200127d565b5b6001851615620012f35780820291505b80810290506200130385620012ac565b9450620012c3565b94509492505050565b600082620013265760019050620013f9565b81620013365760009050620013f9565b81600181146200134f57600281146200135a5762001390565b6001915050620013f9565b60ff8411156200136f576200136e6200127d565b5b8360020a9150848211156200138957620013886200127d565b5b50620013f9565b5060208310610133831016604e8410600b8410161715620013ca5782820a905083811115620013c457620013c36200127d565b5b620013f9565b620013d98484846001620012b9565b92509050818404811115620013f357620013f26200127d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620014248262001400565b915062001431836200140a565b9250620014607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001314565b905092915050565b6000620014758262001400565b9150620014828362001400565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620014be57620014bd6200127d565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620014fb82620014ce565b9050919050565b6200150d81620014ee565b81146200151957600080fd5b50565b6000815190506200152d8162001502565b92915050565b6000602082840312156200154c576200154b620014c9565b5b60006200155c848285016200151c565b91505092915050565b6200157081620014ee565b82525050565b60006040820190506200158d600083018562001565565b6200159c602083018462001565565b9392505050565b620015ae8162001400565b82525050565b6000602082019050620015cb6000830184620015a3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200160d8262001400565b91506200161a8362001400565b9250826200162d576200162c620015d1565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620016a760218362001638565b9150620016b48262001649565b604082019050919050565b60006020820190508181036000830152620016da8162001698565b9050919050565b600081519050919050565b60005b838110156200170c578082015181840152602081019050620016ef565b838111156200171c576000848401525b50505050565b6000601f19601f8301169050919050565b60006200174082620016e1565b6200174c818562001638565b93506200175e818560208601620016ec565b620017698162001722565b840191505092915050565b6000602082019050818103600083015262001790818462001733565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620017e057607f821691505b60208210811415620017f757620017f662001798565b5b50919050565b60805160a051614ee66200183160003960008181610dd6015261117801526000818161106301526111a40152614ee66000f3fe6080604052600436106103545760003560e01c8063715018a6116101c6578063ae85ade6116100f7578063e6b2603b11610095578063f2fde38b1161006f578063f2fde38b14610c83578063f71b9bbf14610cac578063f872858a14610cd5578063fb0ecfa414610d005761035b565b8063e6b2603b14610c18578063ec44acf214610c2f578063ee828db314610c5a5761035b565b8063c867d60b116100d1578063c867d60b14610b4c578063cea9d26f14610b89578063dd62ed3e14610bb2578063df8408fe14610bef5761035b565b8063ae85ade614610acf578063bb8098f014610af8578063c16dd4a414610b235761035b565b80638b42507f1161016457806395fc8fdf1161013e57806395fc8fdf14610a015780639d9241ec14610a2a578063a457c2d714610a55578063a9059cbb14610a925761035b565b80638b42507f1461096e5780638da5cb5b146109ab57806395d89b41146109d65761035b565b8063736ce0d4116101a0578063736ce0d4146108c45780637d1db4a5146108ef5780637daf4b2b1461091a578063807c2d9c146109435761035b565b8063715018a61461085957806372460e7f14610870578063728d41c91461089b5761035b565b8063313ce567116102a057806359fac5171161023e5780635e42358c116102185780635e42358c1461079d578063651a8987146107c85780636ddd1713146107f157806370a082311461081c5761035b565b806359fac517146107225780635c85974f1461074b5780635d098b38146107745761035b565b80633ecad2711161027a5780633ecad271146106545780634974d88f146106915780635342acb4146106ba57806359b107b9146106f75761035b565b8063313ce567146105af57806339509351146105da5780633bbac579146106175761035b565b806310a60f021161030d5780632598cdb2116102e75780632598cdb21461051757806327c8f83514610542578063293230b81461056d5780632b112e49146105845761035b565b806310a60f021461048657806318160ddd146104af57806323b872dd146104da5761035b565b80630445b667146103605780630634f4381461038b57806306fdde03146103b65780630930907b146103e1578063095ea7b31461040c5780630f3fc431146104495761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d29565b6040516103829190613bc4565b60405180910390f35b34801561039757600080fd5b506103a0610d2f565b6040516103ad9190613bfa565b60405180910390f35b3480156103c257600080fd5b506103cb610d42565b6040516103d89190613cae565b60405180910390f35b3480156103ed57600080fd5b506103f6610dd4565b6040516104039190613d11565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e9190613d8e565b610df8565b6040516104409190613bfa565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b9190613dce565b610e16565b60405161047d9190613bfa565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a89190613e8c565b610e36565b005b3480156104bb57600080fd5b506104c4610f57565b6040516104d19190613bc4565b60405180910390f35b3480156104e657600080fd5b5061050160048036038101906104fc9190613eec565b610f61565b60405161050e9190613bfa565b60405180910390f35b34801561052357600080fd5b5061052c61103b565b6040516105399190613d11565b60405180910390f35b34801561054e57600080fd5b50610557611061565b6040516105649190613d11565b60405180910390f35b34801561057957600080fd5b50610582611085565b005b34801561059057600080fd5b5061059961116e565b6040516105a69190613bc4565b60405180910390f35b3480156105bb57600080fd5b506105c46111ec565b6040516105d19190613f5b565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190613d8e565b611203565b60405161060e9190613bfa565b60405180910390f35b34801561062357600080fd5b5061063e60048036038101906106399190613dce565b6112b6565b60405161064b9190613bfa565b60405180910390f35b34801561066057600080fd5b5061067b60048036038101906106769190613dce565b6112d6565b6040516106889190613bfa565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190613f76565b6112f6565b005b3480156106c657600080fd5b506106e160048036038101906106dc9190613dce565b61138f565b6040516106ee9190613bfa565b60405180910390f35b34801561070357600080fd5b5061070c6113af565b6040516107199190613bc4565b60405180910390f35b34801561072e57600080fd5b5061074960048036038101906107449190613dce565b6113b5565b005b34801561075757600080fd5b50610772600480360381019061076d9190613fa3565b611475565b005b34801561078057600080fd5b5061079b60048036038101906107969190613dce565b6114fb565b005b3480156107a957600080fd5b506107b26115bb565b6040516107bf9190613bfa565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea9190613fd0565b6115ce565b005b3480156107fd57600080fd5b506108066116a5565b6040516108139190613bfa565b60405180910390f35b34801561082857600080fd5b50610843600480360381019061083e9190613dce565b6116b8565b6040516108509190613bc4565b60405180910390f35b34801561086557600080fd5b5061086e611701565b005b34801561087c57600080fd5b50610885611789565b6040516108929190613d11565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd9190613fa3565b6117af565b005b3480156108d057600080fd5b506108d9611835565b6040516108e6919061406f565b60405180910390f35b3480156108fb57600080fd5b5061090461185b565b6040516109119190613bc4565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c919061408a565b611861565b005b34801561094f57600080fd5b5061095861191d565b6040516109659190613bc4565b60405180910390f35b34801561097a57600080fd5b5061099560048036038101906109909190613dce565b611923565b6040516109a29190613bfa565b60405180910390f35b3480156109b757600080fd5b506109c0611943565b6040516109cd9190613d11565b60405180910390f35b3480156109e257600080fd5b506109eb61196c565b6040516109f89190613cae565b60405180910390f35b348015610a0d57600080fd5b50610a286004803603810190610a239190613e8c565b6119fe565b005b348015610a3657600080fd5b50610a3f611b1f565b604051610a4c9190613bc4565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190613d8e565b611b25565b604051610a899190613bfa565b60405180910390f35b348015610a9e57600080fd5b50610ab96004803603810190610ab49190613d8e565b611bf2565b604051610ac69190613bfa565b60405180910390f35b348015610adb57600080fd5b50610af66004803603810190610af19190613fd0565b611c11565b005b348015610b0457600080fd5b50610b0d611ce8565b604051610b1a9190613d11565b60405180910390f35b348015610b2f57600080fd5b50610b4a6004803603810190610b459190613fd0565b611d0e565b005b348015610b5857600080fd5b50610b736004803603810190610b6e9190613dce565b611e3c565b604051610b809190613bfa565b60405180910390f35b348015610b9557600080fd5b50610bb06004803603810190610bab919061411b565b611e5c565b005b348015610bbe57600080fd5b50610bd96004803603810190610bd4919061416e565b611f5c565b604051610be69190613bc4565b60405180910390f35b348015610bfb57600080fd5b50610c166004803603810190610c119190613fd0565b611fe3565b005b348015610c2457600080fd5b50610c2d6120ba565b005b348015610c3b57600080fd5b50610c446121e5565b604051610c519190613bfa565b60405180910390f35b348015610c6657600080fd5b50610c816004803603810190610c7c9190613f76565b6121f8565b005b348015610c8f57600080fd5b50610caa6004803603810190610ca59190613dce565b612291565b005b348015610cb857600080fd5b50610cd36004803603810190610cce9190613dce565b612389565b005b348015610ce157600080fd5b50610cea612449565b604051610cf79190613bfa565b60405180910390f35b348015610d0c57600080fd5b50610d276004803603810190610d2291906141ae565b61245c565b005b60135481565b601460029054906101000a900460ff1681565b606060018054610d519061421d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7d9061421d565b8015610dca5780601f10610d9f57610100808354040283529160200191610dca565b820191906000526020600020905b815481529060010190602001808311610dad57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e0c610e056125af565b84846125b7565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b610e3e6125af565b73ffffffffffffffffffffffffffffffffffffffff16610e5c611943565b73ffffffffffffffffffffffffffffffffffffffff1614610eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea99061429b565b60405180910390fd5b60005b83839050811015610f515781600e6000868685818110610ed857610ed76142bb565b5b9050602002016020810190610eed9190613dce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f4990614319565b915050610eb5565b50505050565b6000600f54905090565b6000610f6e848484612782565b5061103084610f7b6125af565b61102b85604051806060016040528060288152602001614e6460289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fe16125af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe69092919063ffffffff16565b6125b7565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61108d6125af565b73ffffffffffffffffffffffffffffffffffffffff166110ab611943565b73ffffffffffffffffffffffffffffffffffffffff1614611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f89061429b565b60405180910390fd5b601460009054906101000a900460ff1615611151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611148906143ae565b60405180910390fd5b6001601460006101000a81548160ff021916908315150217905550565b60006111e761119c7f00000000000000000000000000000000000000000000000000000000000000006116b8565b6111d96111c87f00000000000000000000000000000000000000000000000000000000000000006116b8565b600f5461304a90919063ffffffff16565b61304a90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006112ac6112106125af565b846112a785600960006112216125af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b6125b7565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b6112fe6125af565b73ffffffffffffffffffffffffffffffffffffffff1661131c611943565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061429b565b60405180910390fd5b80601460046101000a81548160ff02191690831515021790555050565b600a6020528060005260406000206000915054906101000a900460ff1681565b60045481565b6113bd6125af565b73ffffffffffffffffffffffffffffffffffffffff166113db611943565b73ffffffffffffffffffffffffffffffffffffffff1614611431576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114289061429b565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61147d6125af565b73ffffffffffffffffffffffffffffffffffffffff1661149b611943565b73ffffffffffffffffffffffffffffffffffffffff16146114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e89061429b565b60405180910390fd5b8060118190555050565b6115036125af565b73ffffffffffffffffffffffffffffffffffffffff16611521611943565b73ffffffffffffffffffffffffffffffffffffffff1614611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e9061429b565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460039054906101000a900460ff1681565b6115d66125af565b73ffffffffffffffffffffffffffffffffffffffff166115f4611943565b73ffffffffffffffffffffffffffffffffffffffff161461164a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116419061429b565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460019054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117096125af565b73ffffffffffffffffffffffffffffffffffffffff16611727611943565b73ffffffffffffffffffffffffffffffffffffffff161461177d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117749061429b565b60405180910390fd5b61178760006130f2565b565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117b76125af565b73ffffffffffffffffffffffffffffffffffffffff166117d5611943565b73ffffffffffffffffffffffffffffffffffffffff161461182b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118229061429b565b60405180910390fd5b8060128190555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b6118696125af565b73ffffffffffffffffffffffffffffffffffffffff16611887611943565b73ffffffffffffffffffffffffffffffffffffffff16146118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d49061429b565b60405180910390fd5b82601460016101000a81548160ff0219169083151502179055508160138190555080601460026101000a81548160ff021916908315150217905550505050565b60125481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461197b9061421d565b80601f01602080910402602001604051908101604052809291908181526020018280546119a79061421d565b80156119f45780601f106119c9576101008083540402835291602001916119f4565b820191906000526020600020905b8154815290600101906020018083116119d757829003601f168201915b5050505050905090565b611a066125af565b73ffffffffffffffffffffffffffffffffffffffff16611a24611943565b73ffffffffffffffffffffffffffffffffffffffff1614611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a719061429b565b60405180910390fd5b60005b83839050811015611b19578160156000868685818110611aa057611a9f6142bb565b5b9050602002016020810190611ab59190613dce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611b1190614319565b915050611a7d565b50505050565b60055481565b6000611be8611b326125af565b84611be385604051806060016040528060258152602001614e8c6025913960096000611b5c6125af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe69092919063ffffffff16565b6125b7565b6001905092915050565b6000611c06611bff6125af565b8484612782565b506001905092915050565b611c196125af565b73ffffffffffffffffffffffffffffffffffffffff16611c37611943565b73ffffffffffffffffffffffffffffffffffffffff1614611c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c849061429b565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d166125af565b73ffffffffffffffffffffffffffffffffffffffff16611d34611943565b73ffffffffffffffffffffffffffffffffffffffff1614611d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d819061429b565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b611e646125af565b73ffffffffffffffffffffffffffffffffffffffff16611e82611943565b73ffffffffffffffffffffffffffffffffffffffff1614611ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecf9061429b565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611f139291906143ce565b6020604051808303816000875af1158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f56919061440c565b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611feb6125af565b73ffffffffffffffffffffffffffffffffffffffff16612009611943565b73ffffffffffffffffffffffffffffffffffffffff161461205f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120569061429b565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6120c26125af565b73ffffffffffffffffffffffffffffffffffffffff166120e0611943565b73ffffffffffffffffffffffffffffffffffffffff1614612136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212d9061429b565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161215c9061446a565b60006040518083038185875af1925050503d8060008114612199576040519150601f19603f3d011682016040523d82523d6000602084013e61219e565b606091505b50509050806121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d9906144cb565b60405180910390fd5b50565b601460009054906101000a900460ff1681565b6122006125af565b73ffffffffffffffffffffffffffffffffffffffff1661221e611943565b73ffffffffffffffffffffffffffffffffffffffff1614612274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226b9061429b565b60405180910390fd5b80601460036101000a81548160ff02191690831515021790555050565b6122996125af565b73ffffffffffffffffffffffffffffffffffffffff166122b7611943565b73ffffffffffffffffffffffffffffffffffffffff161461230d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123049061429b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561237d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123749061455d565b60405180910390fd5b612386816130f2565b50565b6123916125af565b73ffffffffffffffffffffffffffffffffffffffff166123af611943565b73ffffffffffffffffffffffffffffffffffffffff1614612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc9061429b565b60405180910390fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460049054906101000a900460ff1681565b6124646125af565b73ffffffffffffffffffffffffffffffffffffffff16612482611943565b73ffffffffffffffffffffffffffffffffffffffff16146124d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cf9061429b565b60405180910390fd5b81600481905550806005819055505050565b6000808314156124fd576000905061255f565b6000828461250b919061457d565b905082848261251a9190614606565b1461255a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612551906146a9565b60405180910390fd5b809150505b92915050565b60006125a783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131b6565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261e9061473b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268e906147cd565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127759190613bc4565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156127f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ea9061485f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285a906148f1565b60405180910390fd5b600082116128a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289d90614983565b60405180910390fd5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292a906149ef565b60405180910390fd5b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156129c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b7906149ef565b60405180910390fd5b600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a44906149ef565b60405180910390fd5b601760149054906101000a900460ff1615612a7457612a6d848484613219565b9050612fdf565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b185750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b6d57601460009054906101000a900460ff16612b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6390614a5b565b60405180910390fd5b5b6000612b78306116b8565b905060006013548210159050808015612b9e5750601760149054906101000a900460ff16155b8015612bf45750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c0c5750601460019054906101000a900460ff165b15612c1b57612c1a826133ec565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cbf5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cd75750601460039054906101000a900460ff165b15612d2257601154841115612d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1890614aed565b60405180910390fd5b5b612dab846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe69092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612dfa878761359f565b612e0e57612e0987878761370a565b612e10565b845b9050601460049054906101000a900460ff168015612e785750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612edd57601254612e9b82612e8d896116b8565b61309490919063ffffffff16565b1115612edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed390614b59565b60405180910390fd5b5b612f2f81600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fcf9190613bc4565b60405180910390a3600193505050505b9392505050565b600083831115829061302e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130259190613cae565b60405180910390fd5b506000838561303d9190614b79565b9050809150509392505050565b600061308c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612fe6565b905092915050565b60008082846130a39190614bad565b9050838110156130e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130df90614c4f565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080831182906131fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f49190613cae565b60405180910390fd5b506000838561320c9190614606565b9050809150509392505050565b60006132a4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061333982600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133d99190613bc4565b60405180910390a3600190509392505050565b6001601760146101000a81548160ff021916908315150217905550600061342060055460045461309490919063ffffffff16565b905060008114156134315750613581565b601460029054906101000a900460ff161561344c5760135491505b600047905061345a8361392f565b600061346f824761304a90919063ffffffff16565b905060008111156134fc57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60056002846134c5919061457d565b6134cf9190614606565b9081150290604051600060405180830381858888f193505050501580156134fa573d6000803e3d6000fd5b505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6005600384613547919061457d565b6135519190614606565b9081150290604051600060405180830381858888f1935050505015801561357c573d6000803e3d6000fd5b505050505b6000601760146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806136425750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156136505760019050613704565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806136f15750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156136ff5760009050613704565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561378f5761378860105461377a600454866124ea90919063ffffffff16565b61256590919063ffffffff16565b905061380e565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561380d5761380a6010546137fc600554866124ea90919063ffffffff16565b61256590919063ffffffff16565b90505b5b60008111156139125761386981600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139099190613bc4565b60405180910390a35b613925818461304a90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561394c5761394b614c6f565b5b60405190808252806020026020018201604052801561397a5781602001602082028036833780820191505090505b5090503081600081518110613992576139916142bb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5d9190614cb3565b81600181518110613a7157613a706142bb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ad830601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125b7565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b3c959493929190614dd9565b600060405180830381600087803b158015613b5657600080fd5b505af1158015613b6a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b9f929190614e33565b60405180910390a15050565b6000819050919050565b613bbe81613bab565b82525050565b6000602082019050613bd96000830184613bb5565b92915050565b60008115159050919050565b613bf481613bdf565b82525050565b6000602082019050613c0f6000830184613beb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c4f578082015181840152602081019050613c34565b83811115613c5e576000848401525b50505050565b6000601f19601f8301169050919050565b6000613c8082613c15565b613c8a8185613c20565b9350613c9a818560208601613c31565b613ca381613c64565b840191505092915050565b60006020820190508181036000830152613cc88184613c75565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613cfb82613cd0565b9050919050565b613d0b81613cf0565b82525050565b6000602082019050613d266000830184613d02565b92915050565b600080fd5b600080fd5b613d3f81613cf0565b8114613d4a57600080fd5b50565b600081359050613d5c81613d36565b92915050565b613d6b81613bab565b8114613d7657600080fd5b50565b600081359050613d8881613d62565b92915050565b60008060408385031215613da557613da4613d2c565b5b6000613db385828601613d4d565b9250506020613dc485828601613d79565b9150509250929050565b600060208284031215613de457613de3613d2c565b5b6000613df284828501613d4d565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613e2057613e1f613dfb565b5b8235905067ffffffffffffffff811115613e3d57613e3c613e00565b5b602083019150836020820283011115613e5957613e58613e05565b5b9250929050565b613e6981613bdf565b8114613e7457600080fd5b50565b600081359050613e8681613e60565b92915050565b600080600060408486031215613ea557613ea4613d2c565b5b600084013567ffffffffffffffff811115613ec357613ec2613d31565b5b613ecf86828701613e0a565b93509350506020613ee286828701613e77565b9150509250925092565b600080600060608486031215613f0557613f04613d2c565b5b6000613f1386828701613d4d565b9350506020613f2486828701613d4d565b9250506040613f3586828701613d79565b9150509250925092565b600060ff82169050919050565b613f5581613f3f565b82525050565b6000602082019050613f706000830184613f4c565b92915050565b600060208284031215613f8c57613f8b613d2c565b5b6000613f9a84828501613e77565b91505092915050565b600060208284031215613fb957613fb8613d2c565b5b6000613fc784828501613d79565b91505092915050565b60008060408385031215613fe757613fe6613d2c565b5b6000613ff585828601613d4d565b925050602061400685828601613e77565b9150509250929050565b6000819050919050565b600061403561403061402b84613cd0565b614010565b613cd0565b9050919050565b60006140478261401a565b9050919050565b60006140598261403c565b9050919050565b6140698161404e565b82525050565b60006020820190506140846000830184614060565b92915050565b6000806000606084860312156140a3576140a2613d2c565b5b60006140b186828701613e77565b93505060206140c286828701613d79565b92505060406140d386828701613e77565b9150509250925092565b60006140e882613cf0565b9050919050565b6140f8816140dd565b811461410357600080fd5b50565b600081359050614115816140ef565b92915050565b60008060006060848603121561413457614133613d2c565b5b600061414286828701614106565b935050602061415386828701613d4d565b925050604061416486828701613d79565b9150509250925092565b6000806040838503121561418557614184613d2c565b5b600061419385828601613d4d565b92505060206141a485828601613d4d565b9150509250929050565b600080604083850312156141c5576141c4613d2c565b5b60006141d385828601613d79565b92505060206141e485828601613d79565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061423557607f821691505b60208210811415614249576142486141ee565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614285602083613c20565b91506142908261424f565b602082019050919050565b600060208201905081810360008301526142b481614278565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061432482613bab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614357576143566142ea565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c656400000000000000000000600082015250565b6000614398601683613c20565b91506143a382614362565b602082019050919050565b600060208201905081810360008301526143c78161438b565b9050919050565b60006040820190506143e36000830185613d02565b6143f06020830184613bb5565b9392505050565b60008151905061440681613e60565b92915050565b60006020828403121561442257614421613d2c565b5b6000614430848285016143f7565b91505092915050565b600081905092915050565b50565b6000614454600083614439565b915061445f82614444565b600082019050919050565b600061447582614447565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b60006144b5601483613c20565b91506144c08261447f565b602082019050919050565b600060208201905081810360008301526144e4816144a8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614547602683613c20565b9150614552826144eb565b604082019050919050565b600060208201905081810360008301526145768161453a565b9050919050565b600061458882613bab565b915061459383613bab565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145cc576145cb6142ea565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061461182613bab565b915061461c83613bab565b92508261462c5761462b6145d7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614693602183613c20565b915061469e82614637565b604082019050919050565b600060208201905081810360008301526146c281614686565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614725602483613c20565b9150614730826146c9565b604082019050919050565b6000602082019050818103600083015261475481614718565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006147b7602283613c20565b91506147c28261475b565b604082019050919050565b600060208201905081810360008301526147e6816147aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614849602583613c20565b9150614854826147ed565b604082019050919050565b600060208201905081810360008301526148788161483c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006148db602383613c20565b91506148e68261487f565b604082019050919050565b6000602082019050818103600083015261490a816148ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061496d602983613c20565b915061497882614911565b604082019050919050565b6000602082019050818103600083015261499c81614960565b9050919050565b7f45524332303a20426f7420646574656374656400000000000000000000000000600082015250565b60006149d9601383613c20565b91506149e4826149a3565b602082019050919050565b60006020820190508181036000830152614a08816149cc565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000600082015250565b6000614a45601d83613c20565b9150614a5082614a0f565b602082019050919050565b60006020820190508181036000830152614a7481614a38565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000614ad7602883613c20565b9150614ae282614a7b565b604082019050919050565b60006020820190508181036000830152614b0681614aca565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000614b43601b83613c20565b9150614b4e82614b0d565b602082019050919050565b60006020820190508181036000830152614b7281614b36565b9050919050565b6000614b8482613bab565b9150614b8f83613bab565b925082821015614ba257614ba16142ea565b5b828203905092915050565b6000614bb882613bab565b9150614bc383613bab565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614bf857614bf76142ea565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614c39601b83613c20565b9150614c4482614c03565b602082019050919050565b60006020820190508181036000830152614c6881614c2c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614cad81613d36565b92915050565b600060208284031215614cc957614cc8613d2c565b5b6000614cd784828501614c9e565b91505092915050565b6000819050919050565b6000614d05614d00614cfb84614ce0565b614010565b613bab565b9050919050565b614d1581614cea565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614d5081613cf0565b82525050565b6000614d628383614d47565b60208301905092915050565b6000602082019050919050565b6000614d8682614d1b565b614d908185614d26565b9350614d9b83614d37565b8060005b83811015614dcc578151614db38882614d56565b9750614dbe83614d6e565b925050600181019050614d9f565b5085935050505092915050565b600060a082019050614dee6000830188613bb5565b614dfb6020830187614d0c565b8181036040830152614e0d8186614d7b565b9050614e1c6060830185613d02565b614e296080830184613bb5565b9695505050505050565b6000604082019050614e486000830185613bb5565b8181036020830152614e5a8184614d7b565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205d8c82b1fcf9196f759a5f0eec64873aa90e1965c228fee8e55d8a9e763f1aef64736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106103545760003560e01c8063715018a6116101c6578063ae85ade6116100f7578063e6b2603b11610095578063f2fde38b1161006f578063f2fde38b14610c83578063f71b9bbf14610cac578063f872858a14610cd5578063fb0ecfa414610d005761035b565b8063e6b2603b14610c18578063ec44acf214610c2f578063ee828db314610c5a5761035b565b8063c867d60b116100d1578063c867d60b14610b4c578063cea9d26f14610b89578063dd62ed3e14610bb2578063df8408fe14610bef5761035b565b8063ae85ade614610acf578063bb8098f014610af8578063c16dd4a414610b235761035b565b80638b42507f1161016457806395fc8fdf1161013e57806395fc8fdf14610a015780639d9241ec14610a2a578063a457c2d714610a55578063a9059cbb14610a925761035b565b80638b42507f1461096e5780638da5cb5b146109ab57806395d89b41146109d65761035b565b8063736ce0d4116101a0578063736ce0d4146108c45780637d1db4a5146108ef5780637daf4b2b1461091a578063807c2d9c146109435761035b565b8063715018a61461085957806372460e7f14610870578063728d41c91461089b5761035b565b8063313ce567116102a057806359fac5171161023e5780635e42358c116102185780635e42358c1461079d578063651a8987146107c85780636ddd1713146107f157806370a082311461081c5761035b565b806359fac517146107225780635c85974f1461074b5780635d098b38146107745761035b565b80633ecad2711161027a5780633ecad271146106545780634974d88f146106915780635342acb4146106ba57806359b107b9146106f75761035b565b8063313ce567146105af57806339509351146105da5780633bbac579146106175761035b565b806310a60f021161030d5780632598cdb2116102e75780632598cdb21461051757806327c8f83514610542578063293230b81461056d5780632b112e49146105845761035b565b806310a60f021461048657806318160ddd146104af57806323b872dd146104da5761035b565b80630445b667146103605780630634f4381461038b57806306fdde03146103b65780630930907b146103e1578063095ea7b31461040c5780630f3fc431146104495761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d29565b6040516103829190613bc4565b60405180910390f35b34801561039757600080fd5b506103a0610d2f565b6040516103ad9190613bfa565b60405180910390f35b3480156103c257600080fd5b506103cb610d42565b6040516103d89190613cae565b60405180910390f35b3480156103ed57600080fd5b506103f6610dd4565b6040516104039190613d11565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e9190613d8e565b610df8565b6040516104409190613bfa565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b9190613dce565b610e16565b60405161047d9190613bfa565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a89190613e8c565b610e36565b005b3480156104bb57600080fd5b506104c4610f57565b6040516104d19190613bc4565b60405180910390f35b3480156104e657600080fd5b5061050160048036038101906104fc9190613eec565b610f61565b60405161050e9190613bfa565b60405180910390f35b34801561052357600080fd5b5061052c61103b565b6040516105399190613d11565b60405180910390f35b34801561054e57600080fd5b50610557611061565b6040516105649190613d11565b60405180910390f35b34801561057957600080fd5b50610582611085565b005b34801561059057600080fd5b5061059961116e565b6040516105a69190613bc4565b60405180910390f35b3480156105bb57600080fd5b506105c46111ec565b6040516105d19190613f5b565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190613d8e565b611203565b60405161060e9190613bfa565b60405180910390f35b34801561062357600080fd5b5061063e60048036038101906106399190613dce565b6112b6565b60405161064b9190613bfa565b60405180910390f35b34801561066057600080fd5b5061067b60048036038101906106769190613dce565b6112d6565b6040516106889190613bfa565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190613f76565b6112f6565b005b3480156106c657600080fd5b506106e160048036038101906106dc9190613dce565b61138f565b6040516106ee9190613bfa565b60405180910390f35b34801561070357600080fd5b5061070c6113af565b6040516107199190613bc4565b60405180910390f35b34801561072e57600080fd5b5061074960048036038101906107449190613dce565b6113b5565b005b34801561075757600080fd5b50610772600480360381019061076d9190613fa3565b611475565b005b34801561078057600080fd5b5061079b60048036038101906107969190613dce565b6114fb565b005b3480156107a957600080fd5b506107b26115bb565b6040516107bf9190613bfa565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea9190613fd0565b6115ce565b005b3480156107fd57600080fd5b506108066116a5565b6040516108139190613bfa565b60405180910390f35b34801561082857600080fd5b50610843600480360381019061083e9190613dce565b6116b8565b6040516108509190613bc4565b60405180910390f35b34801561086557600080fd5b5061086e611701565b005b34801561087c57600080fd5b50610885611789565b6040516108929190613d11565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd9190613fa3565b6117af565b005b3480156108d057600080fd5b506108d9611835565b6040516108e6919061406f565b60405180910390f35b3480156108fb57600080fd5b5061090461185b565b6040516109119190613bc4565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c919061408a565b611861565b005b34801561094f57600080fd5b5061095861191d565b6040516109659190613bc4565b60405180910390f35b34801561097a57600080fd5b5061099560048036038101906109909190613dce565b611923565b6040516109a29190613bfa565b60405180910390f35b3480156109b757600080fd5b506109c0611943565b6040516109cd9190613d11565b60405180910390f35b3480156109e257600080fd5b506109eb61196c565b6040516109f89190613cae565b60405180910390f35b348015610a0d57600080fd5b50610a286004803603810190610a239190613e8c565b6119fe565b005b348015610a3657600080fd5b50610a3f611b1f565b604051610a4c9190613bc4565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190613d8e565b611b25565b604051610a899190613bfa565b60405180910390f35b348015610a9e57600080fd5b50610ab96004803603810190610ab49190613d8e565b611bf2565b604051610ac69190613bfa565b60405180910390f35b348015610adb57600080fd5b50610af66004803603810190610af19190613fd0565b611c11565b005b348015610b0457600080fd5b50610b0d611ce8565b604051610b1a9190613d11565b60405180910390f35b348015610b2f57600080fd5b50610b4a6004803603810190610b459190613fd0565b611d0e565b005b348015610b5857600080fd5b50610b736004803603810190610b6e9190613dce565b611e3c565b604051610b809190613bfa565b60405180910390f35b348015610b9557600080fd5b50610bb06004803603810190610bab919061411b565b611e5c565b005b348015610bbe57600080fd5b50610bd96004803603810190610bd4919061416e565b611f5c565b604051610be69190613bc4565b60405180910390f35b348015610bfb57600080fd5b50610c166004803603810190610c119190613fd0565b611fe3565b005b348015610c2457600080fd5b50610c2d6120ba565b005b348015610c3b57600080fd5b50610c446121e5565b604051610c519190613bfa565b60405180910390f35b348015610c6657600080fd5b50610c816004803603810190610c7c9190613f76565b6121f8565b005b348015610c8f57600080fd5b50610caa6004803603810190610ca59190613dce565b612291565b005b348015610cb857600080fd5b50610cd36004803603810190610cce9190613dce565b612389565b005b348015610ce157600080fd5b50610cea612449565b604051610cf79190613bfa565b60405180910390f35b348015610d0c57600080fd5b50610d276004803603810190610d2291906141ae565b61245c565b005b60135481565b601460029054906101000a900460ff1681565b606060018054610d519061421d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7d9061421d565b8015610dca5780601f10610d9f57610100808354040283529160200191610dca565b820191906000526020600020905b815481529060010190602001808311610dad57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e0c610e056125af565b84846125b7565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b610e3e6125af565b73ffffffffffffffffffffffffffffffffffffffff16610e5c611943565b73ffffffffffffffffffffffffffffffffffffffff1614610eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea99061429b565b60405180910390fd5b60005b83839050811015610f515781600e6000868685818110610ed857610ed76142bb565b5b9050602002016020810190610eed9190613dce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f4990614319565b915050610eb5565b50505050565b6000600f54905090565b6000610f6e848484612782565b5061103084610f7b6125af565b61102b85604051806060016040528060288152602001614e6460289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fe16125af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe69092919063ffffffff16565b6125b7565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000dead81565b61108d6125af565b73ffffffffffffffffffffffffffffffffffffffff166110ab611943565b73ffffffffffffffffffffffffffffffffffffffff1614611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f89061429b565b60405180910390fd5b601460009054906101000a900460ff1615611151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611148906143ae565b60405180910390fd5b6001601460006101000a81548160ff021916908315150217905550565b60006111e761119c7f00000000000000000000000000000000000000000000000000000000000000006116b8565b6111d96111c87f000000000000000000000000000000000000000000000000000000000000dead6116b8565b600f5461304a90919063ffffffff16565b61304a90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006112ac6112106125af565b846112a785600960006112216125af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b6125b7565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b6112fe6125af565b73ffffffffffffffffffffffffffffffffffffffff1661131c611943565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061429b565b60405180910390fd5b80601460046101000a81548160ff02191690831515021790555050565b600a6020528060005260406000206000915054906101000a900460ff1681565b60045481565b6113bd6125af565b73ffffffffffffffffffffffffffffffffffffffff166113db611943565b73ffffffffffffffffffffffffffffffffffffffff1614611431576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114289061429b565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61147d6125af565b73ffffffffffffffffffffffffffffffffffffffff1661149b611943565b73ffffffffffffffffffffffffffffffffffffffff16146114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e89061429b565b60405180910390fd5b8060118190555050565b6115036125af565b73ffffffffffffffffffffffffffffffffffffffff16611521611943565b73ffffffffffffffffffffffffffffffffffffffff1614611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e9061429b565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460039054906101000a900460ff1681565b6115d66125af565b73ffffffffffffffffffffffffffffffffffffffff166115f4611943565b73ffffffffffffffffffffffffffffffffffffffff161461164a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116419061429b565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460019054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117096125af565b73ffffffffffffffffffffffffffffffffffffffff16611727611943565b73ffffffffffffffffffffffffffffffffffffffff161461177d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117749061429b565b60405180910390fd5b61178760006130f2565b565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117b76125af565b73ffffffffffffffffffffffffffffffffffffffff166117d5611943565b73ffffffffffffffffffffffffffffffffffffffff161461182b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118229061429b565b60405180910390fd5b8060128190555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b6118696125af565b73ffffffffffffffffffffffffffffffffffffffff16611887611943565b73ffffffffffffffffffffffffffffffffffffffff16146118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d49061429b565b60405180910390fd5b82601460016101000a81548160ff0219169083151502179055508160138190555080601460026101000a81548160ff021916908315150217905550505050565b60125481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461197b9061421d565b80601f01602080910402602001604051908101604052809291908181526020018280546119a79061421d565b80156119f45780601f106119c9576101008083540402835291602001916119f4565b820191906000526020600020905b8154815290600101906020018083116119d757829003601f168201915b5050505050905090565b611a066125af565b73ffffffffffffffffffffffffffffffffffffffff16611a24611943565b73ffffffffffffffffffffffffffffffffffffffff1614611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a719061429b565b60405180910390fd5b60005b83839050811015611b19578160156000868685818110611aa057611a9f6142bb565b5b9050602002016020810190611ab59190613dce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611b1190614319565b915050611a7d565b50505050565b60055481565b6000611be8611b326125af565b84611be385604051806060016040528060258152602001614e8c6025913960096000611b5c6125af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe69092919063ffffffff16565b6125b7565b6001905092915050565b6000611c06611bff6125af565b8484612782565b506001905092915050565b611c196125af565b73ffffffffffffffffffffffffffffffffffffffff16611c37611943565b73ffffffffffffffffffffffffffffffffffffffff1614611c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c849061429b565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d166125af565b73ffffffffffffffffffffffffffffffffffffffff16611d34611943565b73ffffffffffffffffffffffffffffffffffffffff1614611d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d819061429b565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b611e646125af565b73ffffffffffffffffffffffffffffffffffffffff16611e82611943565b73ffffffffffffffffffffffffffffffffffffffff1614611ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecf9061429b565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611f139291906143ce565b6020604051808303816000875af1158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f56919061440c565b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611feb6125af565b73ffffffffffffffffffffffffffffffffffffffff16612009611943565b73ffffffffffffffffffffffffffffffffffffffff161461205f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120569061429b565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6120c26125af565b73ffffffffffffffffffffffffffffffffffffffff166120e0611943565b73ffffffffffffffffffffffffffffffffffffffff1614612136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212d9061429b565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161215c9061446a565b60006040518083038185875af1925050503d8060008114612199576040519150601f19603f3d011682016040523d82523d6000602084013e61219e565b606091505b50509050806121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d9906144cb565b60405180910390fd5b50565b601460009054906101000a900460ff1681565b6122006125af565b73ffffffffffffffffffffffffffffffffffffffff1661221e611943565b73ffffffffffffffffffffffffffffffffffffffff1614612274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226b9061429b565b60405180910390fd5b80601460036101000a81548160ff02191690831515021790555050565b6122996125af565b73ffffffffffffffffffffffffffffffffffffffff166122b7611943565b73ffffffffffffffffffffffffffffffffffffffff161461230d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123049061429b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561237d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123749061455d565b60405180910390fd5b612386816130f2565b50565b6123916125af565b73ffffffffffffffffffffffffffffffffffffffff166123af611943565b73ffffffffffffffffffffffffffffffffffffffff1614612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc9061429b565b60405180910390fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460049054906101000a900460ff1681565b6124646125af565b73ffffffffffffffffffffffffffffffffffffffff16612482611943565b73ffffffffffffffffffffffffffffffffffffffff16146124d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cf9061429b565b60405180910390fd5b81600481905550806005819055505050565b6000808314156124fd576000905061255f565b6000828461250b919061457d565b905082848261251a9190614606565b1461255a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612551906146a9565b60405180910390fd5b809150505b92915050565b60006125a783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131b6565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261e9061473b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268e906147cd565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127759190613bc4565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156127f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ea9061485f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285a906148f1565b60405180910390fd5b600082116128a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289d90614983565b60405180910390fd5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292a906149ef565b60405180910390fd5b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156129c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b7906149ef565b60405180910390fd5b600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a44906149ef565b60405180910390fd5b601760149054906101000a900460ff1615612a7457612a6d848484613219565b9050612fdf565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b185750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b6d57601460009054906101000a900460ff16612b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6390614a5b565b60405180910390fd5b5b6000612b78306116b8565b905060006013548210159050808015612b9e5750601760149054906101000a900460ff16155b8015612bf45750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c0c5750601460019054906101000a900460ff165b15612c1b57612c1a826133ec565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cbf5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cd75750601460039054906101000a900460ff165b15612d2257601154841115612d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1890614aed565b60405180910390fd5b5b612dab846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe69092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612dfa878761359f565b612e0e57612e0987878761370a565b612e10565b845b9050601460049054906101000a900460ff168015612e785750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612edd57601254612e9b82612e8d896116b8565b61309490919063ffffffff16565b1115612edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed390614b59565b60405180910390fd5b5b612f2f81600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fcf9190613bc4565b60405180910390a3600193505050505b9392505050565b600083831115829061302e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130259190613cae565b60405180910390fd5b506000838561303d9190614b79565b9050809150509392505050565b600061308c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612fe6565b905092915050565b60008082846130a39190614bad565b9050838110156130e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130df90614c4f565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080831182906131fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f49190613cae565b60405180910390fd5b506000838561320c9190614606565b9050809150509392505050565b60006132a4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061333982600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133d99190613bc4565b60405180910390a3600190509392505050565b6001601760146101000a81548160ff021916908315150217905550600061342060055460045461309490919063ffffffff16565b905060008114156134315750613581565b601460029054906101000a900460ff161561344c5760135491505b600047905061345a8361392f565b600061346f824761304a90919063ffffffff16565b905060008111156134fc57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60056002846134c5919061457d565b6134cf9190614606565b9081150290604051600060405180830381858888f193505050501580156134fa573d6000803e3d6000fd5b505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6005600384613547919061457d565b6135519190614606565b9081150290604051600060405180830381858888f1935050505015801561357c573d6000803e3d6000fd5b505050505b6000601760146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806136425750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156136505760019050613704565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806136f15750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156136ff5760009050613704565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561378f5761378860105461377a600454866124ea90919063ffffffff16565b61256590919063ffffffff16565b905061380e565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561380d5761380a6010546137fc600554866124ea90919063ffffffff16565b61256590919063ffffffff16565b90505b5b60008111156139125761386981600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139099190613bc4565b60405180910390a35b613925818461304a90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561394c5761394b614c6f565b5b60405190808252806020026020018201604052801561397a5781602001602082028036833780820191505090505b5090503081600081518110613992576139916142bb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5d9190614cb3565b81600181518110613a7157613a706142bb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ad830601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125b7565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b3c959493929190614dd9565b600060405180830381600087803b158015613b5657600080fd5b505af1158015613b6a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b9f929190614e33565b60405180910390a15050565b6000819050919050565b613bbe81613bab565b82525050565b6000602082019050613bd96000830184613bb5565b92915050565b60008115159050919050565b613bf481613bdf565b82525050565b6000602082019050613c0f6000830184613beb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c4f578082015181840152602081019050613c34565b83811115613c5e576000848401525b50505050565b6000601f19601f8301169050919050565b6000613c8082613c15565b613c8a8185613c20565b9350613c9a818560208601613c31565b613ca381613c64565b840191505092915050565b60006020820190508181036000830152613cc88184613c75565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613cfb82613cd0565b9050919050565b613d0b81613cf0565b82525050565b6000602082019050613d266000830184613d02565b92915050565b600080fd5b600080fd5b613d3f81613cf0565b8114613d4a57600080fd5b50565b600081359050613d5c81613d36565b92915050565b613d6b81613bab565b8114613d7657600080fd5b50565b600081359050613d8881613d62565b92915050565b60008060408385031215613da557613da4613d2c565b5b6000613db385828601613d4d565b9250506020613dc485828601613d79565b9150509250929050565b600060208284031215613de457613de3613d2c565b5b6000613df284828501613d4d565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613e2057613e1f613dfb565b5b8235905067ffffffffffffffff811115613e3d57613e3c613e00565b5b602083019150836020820283011115613e5957613e58613e05565b5b9250929050565b613e6981613bdf565b8114613e7457600080fd5b50565b600081359050613e8681613e60565b92915050565b600080600060408486031215613ea557613ea4613d2c565b5b600084013567ffffffffffffffff811115613ec357613ec2613d31565b5b613ecf86828701613e0a565b93509350506020613ee286828701613e77565b9150509250925092565b600080600060608486031215613f0557613f04613d2c565b5b6000613f1386828701613d4d565b9350506020613f2486828701613d4d565b9250506040613f3586828701613d79565b9150509250925092565b600060ff82169050919050565b613f5581613f3f565b82525050565b6000602082019050613f706000830184613f4c565b92915050565b600060208284031215613f8c57613f8b613d2c565b5b6000613f9a84828501613e77565b91505092915050565b600060208284031215613fb957613fb8613d2c565b5b6000613fc784828501613d79565b91505092915050565b60008060408385031215613fe757613fe6613d2c565b5b6000613ff585828601613d4d565b925050602061400685828601613e77565b9150509250929050565b6000819050919050565b600061403561403061402b84613cd0565b614010565b613cd0565b9050919050565b60006140478261401a565b9050919050565b60006140598261403c565b9050919050565b6140698161404e565b82525050565b60006020820190506140846000830184614060565b92915050565b6000806000606084860312156140a3576140a2613d2c565b5b60006140b186828701613e77565b93505060206140c286828701613d79565b92505060406140d386828701613e77565b9150509250925092565b60006140e882613cf0565b9050919050565b6140f8816140dd565b811461410357600080fd5b50565b600081359050614115816140ef565b92915050565b60008060006060848603121561413457614133613d2c565b5b600061414286828701614106565b935050602061415386828701613d4d565b925050604061416486828701613d79565b9150509250925092565b6000806040838503121561418557614184613d2c565b5b600061419385828601613d4d565b92505060206141a485828601613d4d565b9150509250929050565b600080604083850312156141c5576141c4613d2c565b5b60006141d385828601613d79565b92505060206141e485828601613d79565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061423557607f821691505b60208210811415614249576142486141ee565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614285602083613c20565b91506142908261424f565b602082019050919050565b600060208201905081810360008301526142b481614278565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061432482613bab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614357576143566142ea565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c656400000000000000000000600082015250565b6000614398601683613c20565b91506143a382614362565b602082019050919050565b600060208201905081810360008301526143c78161438b565b9050919050565b60006040820190506143e36000830185613d02565b6143f06020830184613bb5565b9392505050565b60008151905061440681613e60565b92915050565b60006020828403121561442257614421613d2c565b5b6000614430848285016143f7565b91505092915050565b600081905092915050565b50565b6000614454600083614439565b915061445f82614444565b600082019050919050565b600061447582614447565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b60006144b5601483613c20565b91506144c08261447f565b602082019050919050565b600060208201905081810360008301526144e4816144a8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614547602683613c20565b9150614552826144eb565b604082019050919050565b600060208201905081810360008301526145768161453a565b9050919050565b600061458882613bab565b915061459383613bab565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145cc576145cb6142ea565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061461182613bab565b915061461c83613bab565b92508261462c5761462b6145d7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614693602183613c20565b915061469e82614637565b604082019050919050565b600060208201905081810360008301526146c281614686565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614725602483613c20565b9150614730826146c9565b604082019050919050565b6000602082019050818103600083015261475481614718565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006147b7602283613c20565b91506147c28261475b565b604082019050919050565b600060208201905081810360008301526147e6816147aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614849602583613c20565b9150614854826147ed565b604082019050919050565b600060208201905081810360008301526148788161483c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006148db602383613c20565b91506148e68261487f565b604082019050919050565b6000602082019050818103600083015261490a816148ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061496d602983613c20565b915061497882614911565b604082019050919050565b6000602082019050818103600083015261499c81614960565b9050919050565b7f45524332303a20426f7420646574656374656400000000000000000000000000600082015250565b60006149d9601383613c20565b91506149e4826149a3565b602082019050919050565b60006020820190508181036000830152614a08816149cc565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000600082015250565b6000614a45601d83613c20565b9150614a5082614a0f565b602082019050919050565b60006020820190508181036000830152614a7481614a38565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000614ad7602883613c20565b9150614ae282614a7b565b604082019050919050565b60006020820190508181036000830152614b0681614aca565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000614b43601b83613c20565b9150614b4e82614b0d565b602082019050919050565b60006020820190508181036000830152614b7281614b36565b9050919050565b6000614b8482613bab565b9150614b8f83613bab565b925082821015614ba257614ba16142ea565b5b828203905092915050565b6000614bb882613bab565b9150614bc383613bab565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614bf857614bf76142ea565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614c39601b83613c20565b9150614c4482614c03565b602082019050919050565b60006020820190508181036000830152614c6881614c2c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614cad81613d36565b92915050565b600060208284031215614cc957614cc8613d2c565b5b6000614cd784828501614c9e565b91505092915050565b6000819050919050565b6000614d05614d00614cfb84614ce0565b614010565b613bab565b9050919050565b614d1581614cea565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614d5081613cf0565b82525050565b6000614d628383614d47565b60208301905092915050565b6000602082019050919050565b6000614d8682614d1b565b614d908185614d26565b9350614d9b83614d37565b8060005b83811015614dcc578151614db38882614d56565b9750614dbe83614d6e565b925050600181019050614d9f565b5085935050505092915050565b600060a082019050614dee6000830188613bb5565b614dfb6020830187614d0c565b8181036040830152614e0d8186614d7b565b9050614e1c6060830185613d02565b614e296080830184613bb5565b9695505050505050565b6000604082019050614e486000830185613bb5565b8181036020830152614e5a8184614d7b565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205d8c82b1fcf9196f759a5f0eec64873aa90e1965c228fee8e55d8a9e763f1aef64736f6c634300080a0033

Deployed Bytecode Sourcemap

7182:13578:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8522:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8649:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11009:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7524:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12347:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8769:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18787:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11286:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13122:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7695:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7436:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18069:130;;;;;;;;;;;;;:::i;:::-;;11680:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11195:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11844:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8232:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8066:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19275:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8009:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7614:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20539:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19896:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20009:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8686:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19518:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8612:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11394:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1988:94;;;;;;;;;;;;;:::i;:::-;;8858:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19782:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8820:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8382:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20305:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8454:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8177:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1679:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18588:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7653:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12070:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12947:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19654:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7786:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20131:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8118:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18448:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11525:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19388:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18235:178;;;;;;;;;;;;;:::i;:::-;;8583:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19169:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2090:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20662:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8725:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19020:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8522:52;;;;:::o;8649:30::-;;;;;;;;;;;;;:::o;11009:83::-;11046:13;11079:5;11072:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11009:83;:::o;7524:81::-;;;:::o;12347:161::-;12422:4;12439:39;12448:12;:10;:12::i;:::-;12462:7;12471:6;12439:8;:39::i;:::-;12496:4;12489:11;;12347:161;;;;:::o;8769:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;18787:225::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18911:9:::1;18906:99;18930:8;;:15;;18926:1;:19;18906:99;;;18988:5;18967;:18;18973:8;;18982:1;18973:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18967:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;18947:3;;;;;:::i;:::-;;;;18906:99;;;;18787:225:::0;;;:::o;11286:100::-;11339:7;11366:12;;11359:19;;11286:100;:::o;13122:313::-;13220:4;13237:36;13247:6;13255:9;13266:6;13237:9;:36::i;:::-;;13284:121;13293:6;13301:12;:10;:12::i;:::-;13315:89;13353:6;13315:89;;;;;;;;;;;;;;;;;:11;:19;13327:6;13315:19;;;;;;;;;;;;;;;:33;13335:12;:10;:12::i;:::-;13315:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13284:8;:121::i;:::-;13423:4;13416:11;;13122:313;;;;;:::o;7695:84::-;;;;;;;;;;;;;:::o;7436:81::-;;;:::o;18069:130::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18132:7:::1;;;;;;;;;;;18131:8;18123:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;18187:4;18177:7;;:14;;;;;;;;;;;;;;;;;;18069:130::o:0;11680:156::-;11733:7;11760:68;11805:22;11815:11;11805:9;:22::i;:::-;11760:40;11777:22;11787:11;11777:9;:22::i;:::-;11760:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;11753:75;;11680:156;:::o;11195:83::-;11236:5;11261:9;;;;;;;;;;;11254:16;;11195:83;:::o;11844:218::-;11932:4;11949:83;11958:12;:10;:12::i;:::-;11972:7;11981:50;12020:10;11981:11;:25;11993:12;:10;:12::i;:::-;11981:25;;;;;;;;;;;;;;;:34;12007:7;11981:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11949:8;:83::i;:::-;12050:4;12043:11;;11844:218;;;;:::o;8232:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;8066:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;19275:105::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19365:7:::1;19346:16;;:26;;;;;;;;;;;;;;;;;;19275:105:::0;:::o;8009:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;7614:32::-;;;;:::o;20539:115::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20638:7:::1;20611:9;;:35;;;;;;;;;;;;;;;;;;20539:115:::0;:::o;19896:101::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19981:8:::1;19966:12;:23;;;;19896:101:::0;:::o;20009:114::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20105:10:::1;20087:15;;:28;;;;;;;;;;;;;;;;;;20009:114:::0;:::o;8686:32::-;;;;;;;;;;;;;:::o;19518:128::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19631:7:::1;19603:19;:25;19623:4;19603:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19518:128:::0;;:::o;8612:30::-;;;;;;;;;;;;;:::o;11394:123::-;11460:7;11486:9;:18;11496:7;11486:18;;;;;;;;;;;;;;;;11479:25;;11394:123;;;:::o;1988:94::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2053:21:::1;2071:1;2053:9;:21::i;:::-;1988:94::o:0;8858:22::-;;;;;;;;;;;;;:::o;19782:106::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19872:8:::1;19859:10;:21;;;;19782:106:::0;:::o;8820:31::-;;;;;;;;;;;;;:::o;8382:61::-;;;;:::o;20305:226::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20448:8:::1;20434:11;;:22;;;;;;;;;;;;;;;;;;20483:7;20467:13;:23;;;;20515:8;20501:11;;:22;;;;;;;;;;;;;;;;;;20305:226:::0;;;:::o;8454:57::-;;;;:::o;8177:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1679:87::-;1725:7;1752:6;;;;;;;;;;;1745:13;;1679:87;:::o;11100:::-;11139:13;11172:7;11165:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11100:87;:::o;18588:191::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18684:6:::1;18680:92;18700:4;;:11;;18696:1;:15;18680:92;;;18753:7;18732:9;:18;18742:4;;18747:1;18742:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18732:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18713:3;;;;;:::i;:::-;;;;18680:92;;;;18588:191:::0;;;:::o;7653:33::-;;;;:::o;12070:269::-;12163:4;12180:129;12189:12;:10;:12::i;:::-;12203:7;12212:96;12251:15;12212:96;;;;;;;;;;;;;;;;;:11;:25;12224:12;:10;:12::i;:::-;12212:25;;;;;;;;;;;;;;;:34;12238:7;12212:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12180:8;:129::i;:::-;12327:4;12320:11;;12070:269;;;;:::o;12947:167::-;13025:4;13042:42;13052:12;:10;:12::i;:::-;13066:9;13077:6;13042:9;:42::i;:::-;;13102:4;13095:11;;12947:167;;;;:::o;19654:120::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19759:7:::1;19735:15;:21;19751:4;19735:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19654:120:::0;;:::o;7786:87::-;;;;;;;;;;;;;:::o;20131:166::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20235:7:::1;20213:12;:19;20226:5;20213:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20282:7;20253:19;:26;20273:5;20253:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;20131:166:::0;;:::o;8118:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;18448:132::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18542:3:::1;:12;;;18555:9;18565:6;18542:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18448:132:::0;;;:::o;11525:143::-;11606:7;11633:11;:18;11645:5;11633:18;;;;;;;;;;;;;;;:27;11652:7;11633:27;;;;;;;;;;;;;;;;11626:34;;11525:143;;;;:::o;19388:122::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19495:7:::1;19469:17;:23;19487:4;19469:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19388:122:::0;;:::o;18235:178::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18290:7:::1;18310:10;18302:24;;18334:21;18302:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18289:71;;;18379:2;18371:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;18277:136;18235:178::o:0;8583:19::-;;;;;;;;;;;;;:::o;19169:98::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19252:7:::1;19236:13;;:23;;;;;;;;;;;;;;;;;;19169:98:::0;:::o;2090:229::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2213:1:::1;2193:22;;:8;:22;;;;2171:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2292:19;2302:8;2292:9;:19::i;:::-;2090:229:::0;:::o;20662:91::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20740:5:::1;20730:7;;:15;;;;;;;;;;;;;;;;;;20662:91:::0;:::o;8725:35::-;;;;;;;;;;;;;:::o;19020:141::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19112:7:::1;19098:11;:21;;;;19145:8;19130:12;:23;;;;19020:141:::0;;:::o;3066:250::-;3124:7;3153:1;3148;:6;3144:47;;;3178:1;3171:8;;;;3144:47;3203:9;3219:1;3215;:5;;;;:::i;:::-;3203:17;;3248:1;3243;3239;:5;;;;:::i;:::-;:10;3231:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3307:1;3300:8;;;3066:250;;;;;:::o;3324:132::-;3382:7;3409:39;3413:1;3416;3409:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3402:46;;3324:132;;;;:::o;246:98::-;299:7;326:10;319:17;;246:98;:::o;12516:337::-;12626:1;12609:19;;:5;:19;;;;12601:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12707:1;12688:21;;:7;:21;;;;12680:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12791:6;12761:11;:18;12773:5;12761:18;;;;;;;;;;;;;;;:27;12780:7;12761:27;;;;;;;;;;;;;;;:36;;;;12829:7;12813:32;;12822:5;12813:32;;;12838:6;12813:32;;;;;;:::i;:::-;;;;;;;;12516:337;;;:::o;13443:1923::-;13530:4;13575:1;13557:20;;:6;:20;;;;13549:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13659:1;13638:23;;:9;:23;;;;13630:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13729:1;13720:6;:10;13712:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13806:5;:13;13812:6;13806:13;;;;;;;;;;;;;;;;;;;;;;;;;13805:14;13797:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;13863:5;:17;13869:10;13863:17;;;;;;;;;;;;;;;;;;;;;;;;;13862:18;13854:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13924:5;:16;13930:9;13924:16;;;;;;;;;;;;;;;;;;;;;;;;;13923:17;13915:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;13981:6;;;;;;;;;;;13977:1380;;;14011:41;14026:6;14034:9;14045:6;14011:14;:41::i;:::-;14004:48;;;;13977:1380;14101:9;:17;14111:6;14101:17;;;;;;;;;;;;;;;;;;;;;;;;;14100:18;:43;;;;;14123:9;:20;14133:9;14123:20;;;;;;;;;;;;;;;;;;;;;;;;;14122:21;14100:43;14096:133;;;14172:7;;;;;;;;;;;14164:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14096:133;14245:28;14276:24;14294:4;14276:9;:24::i;:::-;14245:55;;14315:28;14370:13;;14346:20;:37;;14315:68;;14404:23;:34;;;;;14432:6;;;;;;;;;;;14431:7;14404:34;:59;;;;;14443:12;:20;14456:6;14443:20;;;;;;;;;;;;;;;;;;;;;;;;;14442:21;14404:59;:74;;;;;14467:11;;;;;;;;;;;14404:74;14400:145;;;14499:30;14508:20;14499:8;:30::i;:::-;14400:145;14577:15;:23;14593:6;14577:23;;;;;;;;;;;;;;;;;;;;;;;;;14576:24;:55;;;;;14605:15;:26;14621:9;14605:26;;;;;;;;;;;;;;;;;;;;;;;;;14604:27;14576:55;:72;;;;;14635:13;;;;;;;;;;;14576:72;14573:187;;;14687:12;;14677:6;:22;;14669:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14573:187;14809:53;14831:6;14809:53;;;;;;;;;;;;;;;;;:9;:17;14819:6;14809:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14789:9;:17;14799:6;14789:17;;;;;;;;;;;;;;;:73;;;;14879:19;14901:34;14918:6;14925:9;14901:16;:34::i;:::-;:80;;14947:34;14955:6;14963:9;14974:6;14947:7;:34::i;:::-;14901:80;;;14938:6;14901:80;14879:102;;15001:16;;;;;;;;;;;:51;;;;;15022:19;:30;15042:9;15022:30;;;;;;;;;;;;;;;;;;;;;;;;;15021:31;15001:51;14998:181;;;15122:10;;15081:37;15106:11;15081:20;15091:9;15081;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;15073:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;14998:181;15218:37;15243:11;15218:9;:20;15228:9;15218:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15195:9;:20;15205:9;15195:20;;;;;;;;;;;;;;;:60;;;;15294:9;15277:40;;15286:6;15277:40;;;15305:11;15277:40;;;;;;:::i;:::-;;;;;;;;15339:4;15332:11;;;;;13443:1923;;;;;;:::o;2866:192::-;2952:7;2985:1;2980;:6;;2988:12;2972:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3012:9;3028:1;3024;:5;;;;:::i;:::-;3012:17;;3049:1;3042:8;;;2866:192;;;;;:::o;2722:136::-;2780:7;2807:43;2811:1;2814;2807:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2800:50;;2722:136;;;;:::o;2533:181::-;2591:7;2611:9;2627:1;2623;:5;;;;:::i;:::-;2611:17;;2652:1;2647;:6;;2639:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2705:1;2698:8;;;2533:181;;;;:::o;2327:173::-;2383:16;2402:6;;;;;;;;;;;2383:25;;2428:8;2419:6;;:17;;;;;;;;;;;;;;;;;;2483:8;2452:40;;2473:8;2452:40;;;;;;;;;;;;2372:128;2327:173;:::o;3464:232::-;3550:7;3582:1;3578;:5;3585:12;3570:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3609:9;3625:1;3621;:5;;;;:::i;:::-;3609:17;;3687:1;3680:8;;;3464:232;;;;;:::o;15374:330::-;15467:4;15504:53;15526:6;15504:53;;;;;;;;;;;;;;;;;:9;:17;15514:6;15504:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15484:9;:17;15494:6;15484:17;;;;;;;;;;;;;;;:73;;;;15591:32;15616:6;15591:9;:20;15601:9;15591:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15568:9;:20;15578:9;15568:20;;;;;;;;;;;;;;;:55;;;;15656:9;15639:35;;15648:6;15639:35;;;15667:6;15639:35;;;;;;:::i;:::-;;;;;;;;15692:4;15685:11;;15374:330;;;;;:::o;16812:593::-;8953:4;8944:6;;:13;;;;;;;;;;;;;;;;;;16883:19:::1;16905:29;16921:12;;16905:11;;:15;;:29;;;;:::i;:::-;16883:51;;16965:1;16950:11;:16;16947:28;;;16968:7;;;16947:28;16990:11;;;;;;;;;;;16987:75;;;17037:13;;17018:32;;16987:75;17074:22;17099:21;17074:46;;17131:33;17148:15;17131:16;:33::i;:::-;17175:22;17200:41;17226:14;17200:21;:25;;:41;;;;:::i;:::-;17175:66;;17274:1;17257:14;:18;17254:76;;;17285:15;;;;;;;;;;;17277:33;;:53;17328:1;17326;17311:14;:16;;;;:::i;:::-;:18;;;;:::i;:::-;17277:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17254:76;17349:18;;;;;;;;;;;17341:36;;:56;17395:1;17393;17378:14;:16;;;;:::i;:::-;:18;;;;:::i;:::-;17341:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16870:535;;;8968:1;8989:5:::0;8980:6;;:14;;;;;;;;;;;;;;;;;;16812:593;:::o;15716:369::-;15800:4;15820:17;:25;15838:6;15820:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15849:17;:28;15867:9;15849:28;;;;;;;;;;;;;;;;;;;;;;;;;15820:57;15817:261;;;15901:4;15894:11;;;;15817:261;15936:12;:20;15949:6;15936:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15960:12;:23;15973:9;15960:23;;;;;;;;;;;;;;;;;;;;;;;;;15936:47;15932:146;;;16007:5;16000:12;;;;15932:146;16061:5;16054:12;;15716:369;;;;;:::o;16093:711::-;16179:7;16209:14;16266:12;:20;16279:6;16266:20;;;;;;;;;;;;;;;;;;;;;;;;;16263:267;;;16325:43;16353:14;;16325:23;16336:11;;16325:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;16313:55;;16263:267;;;16407:12;:23;16420:9;16407:23;;;;;;;;;;;;;;;;;;;;;;;;;16404:126;;;16470:44;16499:14;;16470:24;16481:12;;16470:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;16458:56;;16404:126;16263:267;16561:1;16549:9;:13;16546:185;;;16610:39;16639:9;16610;:24;16628:4;16610:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16583:9;:24;16601:4;16583:24;;;;;;;;;;;;;;;:66;;;;16698:4;16673:42;;16682:6;16673:42;;;16705:9;16673:42;;;;;;:::i;:::-;;;;;;;;16546:185;16754:21;16765:9;16754:6;:10;;:21;;;;:::i;:::-;16747:28;;;16093:711;;;;;:::o;17413:648::-;17539:21;17577:1;17563:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17539:40;;17608:4;17590;17595:1;17590:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17634:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17624:4;17629:1;17624:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;17663:56;17680:4;17695:9;;;;;;;;;;;17707:11;17663:8;:56::i;:::-;17758:9;;;;;;;;;;;:60;;;17833:11;17859:1;17903:4;17930;17966:15;17758:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18018:35;18035:11;18048:4;18018:35;;;;;;;:::i;:::-;;;;;;;;17468:593;17413:648;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:90::-;476:7;519:5;512:13;505:21;494:32;;442:90;;;:::o;538:109::-;619:21;634:5;619:21;:::i;:::-;614:3;607:34;538:109;;:::o;653:210::-;740:4;778:2;767:9;763:18;755:26;;791:65;853:1;842:9;838:17;829:6;791:65;:::i;:::-;653:210;;;;:::o;869:99::-;921:6;955:5;949:12;939:22;;869:99;;;:::o;974:169::-;1058:11;1092:6;1087:3;1080:19;1132:4;1127:3;1123:14;1108:29;;974:169;;;;:::o;1149:307::-;1217:1;1227:113;1241:6;1238:1;1235:13;1227:113;;;1326:1;1321:3;1317:11;1311:18;1307:1;1302:3;1298:11;1291:39;1263:2;1260:1;1256:10;1251:15;;1227:113;;;1358:6;1355:1;1352:13;1349:101;;;1438:1;1429:6;1424:3;1420:16;1413:27;1349:101;1198:258;1149:307;;;:::o;1462:102::-;1503:6;1554:2;1550:7;1545:2;1538:5;1534:14;1530:28;1520:38;;1462:102;;;:::o;1570:364::-;1658:3;1686:39;1719:5;1686:39;:::i;:::-;1741:71;1805:6;1800:3;1741:71;:::i;:::-;1734:78;;1821:52;1866:6;1861:3;1854:4;1847:5;1843:16;1821:52;:::i;:::-;1898:29;1920:6;1898:29;:::i;:::-;1893:3;1889:39;1882:46;;1662:272;1570:364;;;;:::o;1940:313::-;2053:4;2091:2;2080:9;2076:18;2068:26;;2140:9;2134:4;2130:20;2126:1;2115:9;2111:17;2104:47;2168:78;2241:4;2232:6;2168:78;:::i;:::-;2160:86;;1940:313;;;;:::o;2259:126::-;2296:7;2336:42;2329:5;2325:54;2314:65;;2259:126;;;:::o;2391:96::-;2428:7;2457:24;2475:5;2457:24;:::i;:::-;2446:35;;2391:96;;;:::o;2493:118::-;2580:24;2598:5;2580:24;:::i;:::-;2575:3;2568:37;2493:118;;:::o;2617:222::-;2710:4;2748:2;2737:9;2733:18;2725:26;;2761:71;2829:1;2818:9;2814:17;2805:6;2761:71;:::i;:::-;2617:222;;;;:::o;2926:117::-;3035:1;3032;3025:12;3049:117;3158:1;3155;3148:12;3172:122;3245:24;3263:5;3245:24;:::i;:::-;3238:5;3235:35;3225:63;;3284:1;3281;3274:12;3225:63;3172:122;:::o;3300:139::-;3346:5;3384:6;3371:20;3362:29;;3400:33;3427:5;3400:33;:::i;:::-;3300:139;;;;:::o;3445:122::-;3518:24;3536:5;3518:24;:::i;:::-;3511:5;3508:35;3498:63;;3557:1;3554;3547:12;3498:63;3445:122;:::o;3573:139::-;3619:5;3657:6;3644:20;3635:29;;3673:33;3700:5;3673:33;:::i;:::-;3573:139;;;;:::o;3718:474::-;3786:6;3794;3843:2;3831:9;3822:7;3818:23;3814:32;3811:119;;;3849:79;;:::i;:::-;3811:119;3969:1;3994:53;4039:7;4030:6;4019:9;4015:22;3994:53;:::i;:::-;3984:63;;3940:117;4096:2;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4067:118;3718:474;;;;;:::o;4198:329::-;4257:6;4306:2;4294:9;4285:7;4281:23;4277:32;4274:119;;;4312:79;;:::i;:::-;4274:119;4432:1;4457:53;4502:7;4493:6;4482:9;4478:22;4457:53;:::i;:::-;4447:63;;4403:117;4198:329;;;;:::o;4533:117::-;4642:1;4639;4632:12;4656:117;4765:1;4762;4755:12;4779:117;4888:1;4885;4878:12;4919:568;4992:8;5002:6;5052:3;5045:4;5037:6;5033:17;5029:27;5019:122;;5060:79;;:::i;:::-;5019:122;5173:6;5160:20;5150:30;;5203:18;5195:6;5192:30;5189:117;;;5225:79;;:::i;:::-;5189:117;5339:4;5331:6;5327:17;5315:29;;5393:3;5385:4;5377:6;5373:17;5363:8;5359:32;5356:41;5353:128;;;5400:79;;:::i;:::-;5353:128;4919:568;;;;;:::o;5493:116::-;5563:21;5578:5;5563:21;:::i;:::-;5556:5;5553:32;5543:60;;5599:1;5596;5589:12;5543:60;5493:116;:::o;5615:133::-;5658:5;5696:6;5683:20;5674:29;;5712:30;5736:5;5712:30;:::i;:::-;5615:133;;;;:::o;5754:698::-;5846:6;5854;5862;5911:2;5899:9;5890:7;5886:23;5882:32;5879:119;;;5917:79;;:::i;:::-;5879:119;6065:1;6054:9;6050:17;6037:31;6095:18;6087:6;6084:30;6081:117;;;6117:79;;:::i;:::-;6081:117;6230:80;6302:7;6293:6;6282:9;6278:22;6230:80;:::i;:::-;6212:98;;;;6008:312;6359:2;6385:50;6427:7;6418:6;6407:9;6403:22;6385:50;:::i;:::-;6375:60;;6330:115;5754:698;;;;;:::o;6458:619::-;6535:6;6543;6551;6600:2;6588:9;6579:7;6575:23;6571:32;6568:119;;;6606:79;;:::i;:::-;6568:119;6726:1;6751:53;6796:7;6787:6;6776:9;6772:22;6751:53;:::i;:::-;6741:63;;6697:117;6853:2;6879:53;6924:7;6915:6;6904:9;6900:22;6879:53;:::i;:::-;6869:63;;6824:118;6981:2;7007:53;7052:7;7043:6;7032:9;7028:22;7007:53;:::i;:::-;6997:63;;6952:118;6458:619;;;;;:::o;7083:86::-;7118:7;7158:4;7151:5;7147:16;7136:27;;7083:86;;;:::o;7175:112::-;7258:22;7274:5;7258:22;:::i;:::-;7253:3;7246:35;7175:112;;:::o;7293:214::-;7382:4;7420:2;7409:9;7405:18;7397:26;;7433:67;7497:1;7486:9;7482:17;7473:6;7433:67;:::i;:::-;7293:214;;;;:::o;7513:323::-;7569:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:119;;;7624:79;;:::i;:::-;7586:119;7744:1;7769:50;7811:7;7802:6;7791:9;7787:22;7769:50;:::i;:::-;7759:60;;7715:114;7513:323;;;;:::o;7842:329::-;7901:6;7950:2;7938:9;7929:7;7925:23;7921:32;7918:119;;;7956:79;;:::i;:::-;7918:119;8076:1;8101:53;8146:7;8137:6;8126:9;8122:22;8101:53;:::i;:::-;8091:63;;8047:117;7842:329;;;;:::o;8177:468::-;8242:6;8250;8299:2;8287:9;8278:7;8274:23;8270:32;8267:119;;;8305:79;;:::i;:::-;8267:119;8425:1;8450:53;8495:7;8486:6;8475:9;8471:22;8450:53;:::i;:::-;8440:63;;8396:117;8552:2;8578:50;8620:7;8611:6;8600:9;8596:22;8578:50;:::i;:::-;8568:60;;8523:115;8177:468;;;;;:::o;8651:60::-;8679:3;8700:5;8693:12;;8651:60;;;:::o;8717:142::-;8767:9;8800:53;8818:34;8827:24;8845:5;8827:24;:::i;:::-;8818:34;:::i;:::-;8800:53;:::i;:::-;8787:66;;8717:142;;;:::o;8865:126::-;8915:9;8948:37;8979:5;8948:37;:::i;:::-;8935:50;;8865:126;;;:::o;8997:148::-;9069:9;9102:37;9133:5;9102:37;:::i;:::-;9089:50;;8997:148;;;:::o;9151:175::-;9260:59;9313:5;9260:59;:::i;:::-;9255:3;9248:72;9151:175;;:::o;9332:266::-;9447:4;9485:2;9474:9;9470:18;9462:26;;9498:93;9588:1;9577:9;9573:17;9564:6;9498:93;:::i;:::-;9332:266;;;;:::o;9604:607::-;9675:6;9683;9691;9740:2;9728:9;9719:7;9715:23;9711:32;9708:119;;;9746:79;;:::i;:::-;9708:119;9866:1;9891:50;9933:7;9924:6;9913:9;9909:22;9891:50;:::i;:::-;9881:60;;9837:114;9990:2;10016:53;10061:7;10052:6;10041:9;10037:22;10016:53;:::i;:::-;10006:63;;9961:118;10118:2;10144:50;10186:7;10177:6;10166:9;10162:22;10144:50;:::i;:::-;10134:60;;10089:115;9604:607;;;;;:::o;10217:109::-;10267:7;10296:24;10314:5;10296:24;:::i;:::-;10285:35;;10217:109;;;:::o;10332:148::-;10418:37;10449:5;10418:37;:::i;:::-;10411:5;10408:48;10398:76;;10470:1;10467;10460:12;10398:76;10332:148;:::o;10486:165::-;10545:5;10583:6;10570:20;10561:29;;10599:46;10639:5;10599:46;:::i;:::-;10486:165;;;;:::o;10657:645::-;10747:6;10755;10763;10812:2;10800:9;10791:7;10787:23;10783:32;10780:119;;;10818:79;;:::i;:::-;10780:119;10938:1;10963:66;11021:7;11012:6;11001:9;10997:22;10963:66;:::i;:::-;10953:76;;10909:130;11078:2;11104:53;11149:7;11140:6;11129:9;11125:22;11104:53;:::i;:::-;11094:63;;11049:118;11206:2;11232:53;11277:7;11268:6;11257:9;11253:22;11232:53;:::i;:::-;11222:63;;11177:118;10657:645;;;;;:::o;11308:474::-;11376:6;11384;11433:2;11421:9;11412:7;11408:23;11404:32;11401:119;;;11439:79;;:::i;:::-;11401:119;11559:1;11584:53;11629:7;11620:6;11609:9;11605:22;11584:53;:::i;:::-;11574:63;;11530:117;11686:2;11712:53;11757:7;11748:6;11737:9;11733:22;11712:53;:::i;:::-;11702:63;;11657:118;11308:474;;;;;:::o;11788:::-;11856:6;11864;11913:2;11901:9;11892:7;11888:23;11884:32;11881:119;;;11919:79;;:::i;:::-;11881:119;12039:1;12064:53;12109:7;12100:6;12089:9;12085:22;12064:53;:::i;:::-;12054:63;;12010:117;12166:2;12192:53;12237:7;12228:6;12217:9;12213:22;12192:53;:::i;:::-;12182:63;;12137:118;11788:474;;;;;:::o;12268:180::-;12316:77;12313:1;12306:88;12413:4;12410:1;12403:15;12437:4;12434:1;12427:15;12454:320;12498:6;12535:1;12529:4;12525:12;12515:22;;12582:1;12576:4;12572:12;12603:18;12593:81;;12659:4;12651:6;12647:17;12637:27;;12593:81;12721:2;12713:6;12710:14;12690:18;12687:38;12684:84;;;12740:18;;:::i;:::-;12684:84;12505:269;12454:320;;;:::o;12780:182::-;12920:34;12916:1;12908:6;12904:14;12897:58;12780:182;:::o;12968:366::-;13110:3;13131:67;13195:2;13190:3;13131:67;:::i;:::-;13124:74;;13207:93;13296:3;13207:93;:::i;:::-;13325:2;13320:3;13316:12;13309:19;;12968:366;;;:::o;13340:419::-;13506:4;13544:2;13533:9;13529:18;13521:26;;13593:9;13587:4;13583:20;13579:1;13568:9;13564:17;13557:47;13621:131;13747:4;13621:131;:::i;:::-;13613:139;;13340:419;;;:::o;13765:180::-;13813:77;13810:1;13803:88;13910:4;13907:1;13900:15;13934:4;13931:1;13924:15;13951:180;13999:77;13996:1;13989:88;14096:4;14093:1;14086:15;14120:4;14117:1;14110:15;14137:233;14176:3;14199:24;14217:5;14199:24;:::i;:::-;14190:33;;14245:66;14238:5;14235:77;14232:103;;;14315:18;;:::i;:::-;14232:103;14362:1;14355:5;14351:13;14344:20;;14137:233;;;:::o;14376:172::-;14516:24;14512:1;14504:6;14500:14;14493:48;14376:172;:::o;14554:366::-;14696:3;14717:67;14781:2;14776:3;14717:67;:::i;:::-;14710:74;;14793:93;14882:3;14793:93;:::i;:::-;14911:2;14906:3;14902:12;14895:19;;14554:366;;;:::o;14926:419::-;15092:4;15130:2;15119:9;15115:18;15107:26;;15179:9;15173:4;15169:20;15165:1;15154:9;15150:17;15143:47;15207:131;15333:4;15207:131;:::i;:::-;15199:139;;14926:419;;;:::o;15351:332::-;15472:4;15510:2;15499:9;15495:18;15487:26;;15523:71;15591:1;15580:9;15576:17;15567:6;15523:71;:::i;:::-;15604:72;15672:2;15661:9;15657:18;15648:6;15604:72;:::i;:::-;15351:332;;;;;:::o;15689:137::-;15743:5;15774:6;15768:13;15759:22;;15790:30;15814:5;15790:30;:::i;:::-;15689:137;;;;:::o;15832:345::-;15899:6;15948:2;15936:9;15927:7;15923:23;15919:32;15916:119;;;15954:79;;:::i;:::-;15916:119;16074:1;16099:61;16152:7;16143:6;16132:9;16128:22;16099:61;:::i;:::-;16089:71;;16045:125;15832:345;;;;:::o;16183:147::-;16284:11;16321:3;16306:18;;16183:147;;;;:::o;16336:114::-;;:::o;16456:398::-;16615:3;16636:83;16717:1;16712:3;16636:83;:::i;:::-;16629:90;;16728:93;16817:3;16728:93;:::i;:::-;16846:1;16841:3;16837:11;16830:18;;16456:398;;;:::o;16860:379::-;17044:3;17066:147;17209:3;17066:147;:::i;:::-;17059:154;;17230:3;17223:10;;16860:379;;;:::o;17245:170::-;17385:22;17381:1;17373:6;17369:14;17362:46;17245:170;:::o;17421:366::-;17563:3;17584:67;17648:2;17643:3;17584:67;:::i;:::-;17577:74;;17660:93;17749:3;17660:93;:::i;:::-;17778:2;17773:3;17769:12;17762:19;;17421:366;;;:::o;17793:419::-;17959:4;17997:2;17986:9;17982:18;17974:26;;18046:9;18040:4;18036:20;18032:1;18021:9;18017:17;18010:47;18074:131;18200:4;18074:131;:::i;:::-;18066:139;;17793:419;;;:::o;18218:225::-;18358:34;18354:1;18346:6;18342:14;18335:58;18427:8;18422:2;18414:6;18410:15;18403:33;18218:225;:::o;18449:366::-;18591:3;18612:67;18676:2;18671:3;18612:67;:::i;:::-;18605:74;;18688:93;18777:3;18688:93;:::i;:::-;18806:2;18801:3;18797:12;18790:19;;18449:366;;;:::o;18821:419::-;18987:4;19025:2;19014:9;19010:18;19002:26;;19074:9;19068:4;19064:20;19060:1;19049:9;19045:17;19038:47;19102:131;19228:4;19102:131;:::i;:::-;19094:139;;18821:419;;;:::o;19246:348::-;19286:7;19309:20;19327:1;19309:20;:::i;:::-;19304:25;;19343:20;19361:1;19343:20;:::i;:::-;19338:25;;19531:1;19463:66;19459:74;19456:1;19453:81;19448:1;19441:9;19434:17;19430:105;19427:131;;;19538:18;;:::i;:::-;19427:131;19586:1;19583;19579:9;19568:20;;19246:348;;;;:::o;19600:180::-;19648:77;19645:1;19638:88;19745:4;19742:1;19735:15;19769:4;19766:1;19759:15;19786:185;19826:1;19843:20;19861:1;19843:20;:::i;:::-;19838:25;;19877:20;19895:1;19877:20;:::i;:::-;19872:25;;19916:1;19906:35;;19921:18;;:::i;:::-;19906:35;19963:1;19960;19956:9;19951:14;;19786:185;;;;:::o;19977:220::-;20117:34;20113:1;20105:6;20101:14;20094:58;20186:3;20181:2;20173:6;20169:15;20162:28;19977:220;:::o;20203:366::-;20345:3;20366:67;20430:2;20425:3;20366:67;:::i;:::-;20359:74;;20442:93;20531:3;20442:93;:::i;:::-;20560:2;20555:3;20551:12;20544:19;;20203:366;;;:::o;20575:419::-;20741:4;20779:2;20768:9;20764:18;20756:26;;20828:9;20822:4;20818:20;20814:1;20803:9;20799:17;20792:47;20856:131;20982:4;20856:131;:::i;:::-;20848:139;;20575:419;;;:::o;21000:223::-;21140:34;21136:1;21128:6;21124:14;21117:58;21209:6;21204:2;21196:6;21192:15;21185:31;21000:223;:::o;21229:366::-;21371:3;21392:67;21456:2;21451:3;21392:67;:::i;:::-;21385:74;;21468:93;21557:3;21468:93;:::i;:::-;21586:2;21581:3;21577:12;21570:19;;21229:366;;;:::o;21601:419::-;21767:4;21805:2;21794:9;21790:18;21782:26;;21854:9;21848:4;21844:20;21840:1;21829:9;21825:17;21818:47;21882:131;22008:4;21882:131;:::i;:::-;21874:139;;21601:419;;;:::o;22026:221::-;22166:34;22162:1;22154:6;22150:14;22143:58;22235:4;22230:2;22222:6;22218:15;22211:29;22026:221;:::o;22253:366::-;22395:3;22416:67;22480:2;22475:3;22416:67;:::i;:::-;22409:74;;22492:93;22581:3;22492:93;:::i;:::-;22610:2;22605:3;22601:12;22594:19;;22253:366;;;:::o;22625:419::-;22791:4;22829:2;22818:9;22814:18;22806:26;;22878:9;22872:4;22868:20;22864:1;22853:9;22849:17;22842:47;22906:131;23032:4;22906:131;:::i;:::-;22898:139;;22625:419;;;:::o;23050:224::-;23190:34;23186:1;23178:6;23174:14;23167:58;23259:7;23254:2;23246:6;23242:15;23235:32;23050:224;:::o;23280:366::-;23422:3;23443:67;23507:2;23502:3;23443:67;:::i;:::-;23436:74;;23519:93;23608:3;23519:93;:::i;:::-;23637:2;23632:3;23628:12;23621:19;;23280:366;;;:::o;23652:419::-;23818:4;23856:2;23845:9;23841:18;23833:26;;23905:9;23899:4;23895:20;23891:1;23880:9;23876:17;23869:47;23933:131;24059:4;23933:131;:::i;:::-;23925:139;;23652:419;;;:::o;24077:222::-;24217:34;24213:1;24205:6;24201:14;24194:58;24286:5;24281:2;24273:6;24269:15;24262:30;24077:222;:::o;24305:366::-;24447:3;24468:67;24532:2;24527:3;24468:67;:::i;:::-;24461:74;;24544:93;24633:3;24544:93;:::i;:::-;24662:2;24657:3;24653:12;24646:19;;24305:366;;;:::o;24677:419::-;24843:4;24881:2;24870:9;24866:18;24858:26;;24930:9;24924:4;24920:20;24916:1;24905:9;24901:17;24894:47;24958:131;25084:4;24958:131;:::i;:::-;24950:139;;24677:419;;;:::o;25102:228::-;25242:34;25238:1;25230:6;25226:14;25219:58;25311:11;25306:2;25298:6;25294:15;25287:36;25102:228;:::o;25336:366::-;25478:3;25499:67;25563:2;25558:3;25499:67;:::i;:::-;25492:74;;25575:93;25664:3;25575:93;:::i;:::-;25693:2;25688:3;25684:12;25677:19;;25336:366;;;:::o;25708:419::-;25874:4;25912:2;25901:9;25897:18;25889:26;;25961:9;25955:4;25951:20;25947:1;25936:9;25932:17;25925:47;25989:131;26115:4;25989:131;:::i;:::-;25981:139;;25708:419;;;:::o;26133:169::-;26273:21;26269:1;26261:6;26257:14;26250:45;26133:169;:::o;26308:366::-;26450:3;26471:67;26535:2;26530:3;26471:67;:::i;:::-;26464:74;;26547:93;26636:3;26547:93;:::i;:::-;26665:2;26660:3;26656:12;26649:19;;26308:366;;;:::o;26680:419::-;26846:4;26884:2;26873:9;26869:18;26861:26;;26933:9;26927:4;26923:20;26919:1;26908:9;26904:17;26897:47;26961:131;27087:4;26961:131;:::i;:::-;26953:139;;26680:419;;;:::o;27105:179::-;27245:31;27241:1;27233:6;27229:14;27222:55;27105:179;:::o;27290:366::-;27432:3;27453:67;27517:2;27512:3;27453:67;:::i;:::-;27446:74;;27529:93;27618:3;27529:93;:::i;:::-;27647:2;27642:3;27638:12;27631:19;;27290:366;;;:::o;27662:419::-;27828:4;27866:2;27855:9;27851:18;27843:26;;27915:9;27909:4;27905:20;27901:1;27890:9;27886:17;27879:47;27943:131;28069:4;27943:131;:::i;:::-;27935:139;;27662:419;;;:::o;28087:227::-;28227:34;28223:1;28215:6;28211:14;28204:58;28296:10;28291:2;28283:6;28279:15;28272:35;28087:227;:::o;28320:366::-;28462:3;28483:67;28547:2;28542:3;28483:67;:::i;:::-;28476:74;;28559:93;28648:3;28559:93;:::i;:::-;28677:2;28672:3;28668:12;28661:19;;28320:366;;;:::o;28692:419::-;28858:4;28896:2;28885:9;28881:18;28873:26;;28945:9;28939:4;28935:20;28931:1;28920:9;28916:17;28909:47;28973:131;29099:4;28973:131;:::i;:::-;28965:139;;28692:419;;;:::o;29117:177::-;29257:29;29253:1;29245:6;29241:14;29234:53;29117:177;:::o;29300:366::-;29442:3;29463:67;29527:2;29522:3;29463:67;:::i;:::-;29456:74;;29539:93;29628:3;29539:93;:::i;:::-;29657:2;29652:3;29648:12;29641:19;;29300:366;;;:::o;29672:419::-;29838:4;29876:2;29865:9;29861:18;29853:26;;29925:9;29919:4;29915:20;29911:1;29900:9;29896:17;29889:47;29953:131;30079:4;29953:131;:::i;:::-;29945:139;;29672:419;;;:::o;30097:191::-;30137:4;30157:20;30175:1;30157:20;:::i;:::-;30152:25;;30191:20;30209:1;30191:20;:::i;:::-;30186:25;;30230:1;30227;30224:8;30221:34;;;30235:18;;:::i;:::-;30221:34;30280:1;30277;30273:9;30265:17;;30097:191;;;;:::o;30294:305::-;30334:3;30353:20;30371:1;30353:20;:::i;:::-;30348:25;;30387:20;30405:1;30387:20;:::i;:::-;30382:25;;30541:1;30473:66;30469:74;30466:1;30463:81;30460:107;;;30547:18;;:::i;:::-;30460:107;30591:1;30588;30584:9;30577:16;;30294:305;;;;:::o;30605:177::-;30745:29;30741:1;30733:6;30729:14;30722:53;30605:177;:::o;30788:366::-;30930:3;30951:67;31015:2;31010:3;30951:67;:::i;:::-;30944:74;;31027:93;31116:3;31027:93;:::i;:::-;31145:2;31140:3;31136:12;31129:19;;30788:366;;;:::o;31160:419::-;31326:4;31364:2;31353:9;31349:18;31341:26;;31413:9;31407:4;31403:20;31399:1;31388:9;31384:17;31377:47;31441:131;31567:4;31441:131;:::i;:::-;31433:139;;31160:419;;;:::o;31585:180::-;31633:77;31630:1;31623:88;31730:4;31727:1;31720:15;31754:4;31751:1;31744:15;31771:143;31828:5;31859:6;31853:13;31844:22;;31875:33;31902:5;31875:33;:::i;:::-;31771:143;;;;:::o;31920:351::-;31990:6;32039:2;32027:9;32018:7;32014:23;32010:32;32007:119;;;32045:79;;:::i;:::-;32007:119;32165:1;32190:64;32246:7;32237:6;32226:9;32222:22;32190:64;:::i;:::-;32180:74;;32136:128;31920:351;;;;:::o;32277:85::-;32322:7;32351:5;32340:16;;32277:85;;;:::o;32368:158::-;32426:9;32459:61;32477:42;32486:32;32512:5;32486:32;:::i;:::-;32477:42;:::i;:::-;32459:61;:::i;:::-;32446:74;;32368:158;;;:::o;32532:147::-;32627:45;32666:5;32627:45;:::i;:::-;32622:3;32615:58;32532:147;;:::o;32685:114::-;32752:6;32786:5;32780:12;32770:22;;32685:114;;;:::o;32805:184::-;32904:11;32938:6;32933:3;32926:19;32978:4;32973:3;32969:14;32954:29;;32805:184;;;;:::o;32995:132::-;33062:4;33085:3;33077:11;;33115:4;33110:3;33106:14;33098:22;;32995:132;;;:::o;33133:108::-;33210:24;33228:5;33210:24;:::i;:::-;33205:3;33198:37;33133:108;;:::o;33247:179::-;33316:10;33337:46;33379:3;33371:6;33337:46;:::i;:::-;33415:4;33410:3;33406:14;33392:28;;33247:179;;;;:::o;33432:113::-;33502:4;33534;33529:3;33525:14;33517:22;;33432:113;;;:::o;33581:732::-;33700:3;33729:54;33777:5;33729:54;:::i;:::-;33799:86;33878:6;33873:3;33799:86;:::i;:::-;33792:93;;33909:56;33959:5;33909:56;:::i;:::-;33988:7;34019:1;34004:284;34029:6;34026:1;34023:13;34004:284;;;34105:6;34099:13;34132:63;34191:3;34176:13;34132:63;:::i;:::-;34125:70;;34218:60;34271:6;34218:60;:::i;:::-;34208:70;;34064:224;34051:1;34048;34044:9;34039:14;;34004:284;;;34008:14;34304:3;34297:10;;33705:608;;;33581:732;;;;:::o;34319:831::-;34582:4;34620:3;34609:9;34605:19;34597:27;;34634:71;34702:1;34691:9;34687:17;34678:6;34634:71;:::i;:::-;34715:80;34791:2;34780:9;34776:18;34767:6;34715:80;:::i;:::-;34842:9;34836:4;34832:20;34827:2;34816:9;34812:18;34805:48;34870:108;34973:4;34964:6;34870:108;:::i;:::-;34862:116;;34988:72;35056:2;35045:9;35041:18;35032:6;34988:72;:::i;:::-;35070:73;35138:3;35127:9;35123:19;35114:6;35070:73;:::i;:::-;34319:831;;;;;;;;:::o;35156:483::-;35327:4;35365:2;35354:9;35350:18;35342:26;;35378:71;35446:1;35435:9;35431:17;35422:6;35378:71;:::i;:::-;35496:9;35490:4;35486:20;35481:2;35470:9;35466:18;35459:48;35524:108;35627:4;35618:6;35524:108;:::i;:::-;35516:116;;35156:483;;;;;:::o

Swarm Source

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