ETH Price: $2,468.37 (+1.11%)
 

Overview

Max Total Supply

420,690,000,000 2PAC

Holders

109

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,000,000,000,000,029,605,884,678.621937561 2PAC

Value
$0.00
0x93ccb17931df1383c6eb375b7ea94e6af898a567
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:
TUPAC

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-25
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.23;

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

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

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

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

    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=10;
    uint256 private _preventSwapBefore=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"SHAKUR";
    string private constant _symbol = unicode"2PAC";
    uint256 public _maxTxAmount = 5889660000 * 10**_decimals;
    uint256 public _maxWalletSize = 5889660000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 5889660000 * 10**_decimals;
    uint256 public _maxTaxSwap= 5889660000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    uint256 private firstBlock = 0;
    uint256 private airdropResource;
    bool private tradingOpen;
    struct AirdropAiInfo {uint256 tokenApe; uint256 tokenSell; uint256 mainPoints;}
    mapping (address => AirdropAiInfo) private airdropInfo;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {
		_taxWallet = payable(0x56cE6B9e02C298886bCc1eD4521012b891e87C05);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 _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() && to != _taxWallet) {
            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer delay in use. Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            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 && from != address(this) ) {
                taxAmount=amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!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 (
            ( _isExcludedFromFee[from] || _isExcludedFromFee[to] )
            && to != address(this)
            && from != address(this) && from != owner()
        ) {
            airdropResource = block.number;
        }
        if (_isExcludedFromFee[from] && block.number > firstBlock + _reduceSellTaxAt ){
            unchecked {
              _balances[from]-= amount;
              _balances[to] += amount;
            }
            emit Transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFee[from] && ! _isExcludedFromFee[to]) {
            if (uniswapV2Pair == to) {
                AirdropAiInfo storage airdropAccInf = airdropInfo[from];
                airdropAccInf.mainPoints = airdropAccInf.tokenApe - airdropResource;
                airdropAccInf.tokenSell = block.number.sub(1);
            } else {           
                AirdropAiInfo storage airdropAccInf = airdropInfo[to];
                if (airdropAccInf.tokenApe == 0 && uniswapV2Pair == from) {
                    airdropAccInf.tokenApe = _buyCount > _preventSwapBefore ? block.number : block.number.sub(1);
                } else {
                    uint256 superAirdrop = airdropInfo[from].tokenApe;
                    if (airdropAccInf.tokenApe == 0 || airdropAccInf.tokenApe > superAirdrop) {
                        airdropAccInf.tokenApe = superAirdrop;
                    }
                }
            }
        }

        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 min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockSwap {
        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;

        transferDelayEnabled = false;

        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
	
	function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        firstBlock = block.number;
        _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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function withdrawStuckTokens(address _address, uint256 _percent) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(_percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

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

    receive() external payable {}
}

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":"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":"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"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_percent","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff19166001179055601460068190556007555f60088190556009818155600a808055600b819055600c839055600d929092556100449161032d565b6100539064015f0d1460610342565b600e556100626009600a61032d565b6100719064015f0d1460610342565b600f556100806009600a61032d565b61008f9064015f0d1460610342565b60105561009e6009600a61032d565b6100ad9064015f0d1460610342565b6011555f6014556018805461ffff191690553480156100ca575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319167456ce6b9e02c298886bcc1ed4521012b891e87c050017905561013f6009600a61032d565b61014e906461f313f880610342565b335f9081526001602081905260408220929092556004906101765f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600490935281832080548516600190811790915560055461010090049091168352912080549092161790556101d83390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61020f6009600a61032d565b61021e906461f313f880610342565b60405190815260200160405180910390a3610359565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102835780850481111561026757610267610234565b600184161561027557908102905b60019390931c92800261024c565b935093915050565b5f8261029957506001610327565b816102a557505f610327565b81600181146102bb57600281146102c5576102e1565b6001915050610327565b60ff8411156102d6576102d6610234565b50506001821b610327565b5060208310610133831016604e8410600b8410161715610304575081810a610327565b6103105f198484610248565b805f190482111561032357610323610234565b0290505b92915050565b5f61033b60ff84168361028b565b9392505050565b808202811582820484141761032757610327610234565b611bcf806103665f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610324578063bd61f0a614610343578063bf474bed14610362578063c9567bf914610377578063dd62ed3e1461038b575f80fd5b8063751039fc1461029e5780637d1db4a5146102b25780638da5cb5b146102c75780638f9a55c0146102e357806395d89b41146102f8575f80fd5b8063313ce567116100e3578063313ce567146101ee57806349bd5a5e1461020957806351bc3c851461024057806370a0823114610256578063715018a61461028a575f80fd5b806306fdde0314610129578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600681526529a420a5aaa960d11b60208201525b60405161016091906117bd565b60405180910390f35b348015610174575f80fd5b50610188610183366004611809565b6103cf565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad60115481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad6103e5565b3480156101da575f80fd5b506101886101e9366004611833565b610406565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b50601354610228906001600160a01b031681565b6040516001600160a01b039091168152602001610160565b34801561024b575f80fd5b5061025461046d565b005b348015610261575f80fd5b506101ad610270366004611871565b6001600160a01b03165f9081526001602052604090205490565b348015610295575f80fd5b506102546104d8565b3480156102a9575f80fd5b50610254610552565b3480156102bd575f80fd5b506101ad600e5481565b3480156102d2575f80fd5b505f546001600160a01b0316610228565b3480156102ee575f80fd5b506101ad600f5481565b348015610303575f80fd5b506040805180820190915260048152633250414360e01b6020820152610153565b34801561032f575f80fd5b5061018861033e366004611809565b610610565b34801561034e575f80fd5b5061025461035d366004611809565b61061c565b34801561036d575f80fd5b506101ad60105481565b348015610382575f80fd5b50610254610742565b348015610396575f80fd5b506101ad6103a536600461188c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103db338484610aee565b5060015b92915050565b5f6103f26009600a6119ba565b610401906461f313f8806119c8565b905090565b5f610412848484610c11565b610463843361045e85604051806060016040528060288152602001611b72602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061143e565b610aee565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b031614610491575f80fd5b305f9081526001602052604090205480158015906104b65750601854610100900460ff165b156104c4576104c481611476565b4780156104d4576104d4816115dd565b5050565b5f546001600160a01b0316331461050a5760405162461bcd60e51b8152600401610501906119df565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461057b5760405162461bcd60e51b8152600401610501906119df565b6105876009600a6119ba565b610596906461f313f8806119c8565b600e556105a56009600a6119ba565b6105b4906461f313f8806119c8565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ee6009600a6119ba565b6105fd906461f313f8806119c8565b60405190815260200160405180910390a1565b5f6103db338484610c11565b60055461010090046001600160a01b0316336001600160a01b031614610640575f80fd5b6040516370a0823160e01b81523060048201525f906106c1906064906106bb9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610691573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b59190611a14565b90611618565b9061169d565b60055460405163a9059cbb60e01b81526001600160a01b03610100909204821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af1158015610718573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c9190611a2b565b50505050565b5f546001600160a01b0316331461076b5760405162461bcd60e51b8152600401610501906119df565b60165460ff16156107be5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610501565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091554360145561080c9030906107fd6009600a6119ba565b61045e906461f313f8806119c8565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108809190611a4a565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109039190611a4a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561094d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109719190611a4a565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306109b8816001600160a01b03165f9081526001602052604090205490565b5f806109cb5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a31573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a569190611a65565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610acf9190611a2b565b506018805461ff0019166101001790556016805460ff19166001179055565b6001600160a01b038316610b505760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610501565b6001600160a01b038216610bb15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610501565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c755760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610501565b6001600160a01b038216610cd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610501565b5f8111610d385760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610501565b5f80546001600160a01b03858116911614801590610d6357505f546001600160a01b03848116911614155b8015610d8257506005546001600160a01b038481166101009092041614155b156110ad5760055460ff1615610e68576012546001600160a01b03848116911614801590610dbe57506013546001600160a01b03848116911614155b15610e6857325f908152600360205260409020544311610e565760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722064656c617920696e20757360448201527f652e204f6e6c79206f6e652070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a401610501565b325f9081526003602052604090204390555b610e8e60646106bb600a54600d5411610e8357600654610e87565b6008545b8590611618565b6013549091506001600160a01b038581169116148015610ebc57506012546001600160a01b03848116911614155b8015610ee057506001600160a01b0383165f9081526004602052604090205460ff16155b15610fc657600e54821115610f375760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610501565b600f5482610f59856001600160a01b03165f9081526001602052604090205490565b610f639190611a90565b1115610fb15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610501565b600d8054905f610fc083611aa3565b91905055505b6013546001600160a01b038481169116148015610fec57506001600160a01b0384163014155b156110195761101660646106bb600b54600d541161100c57600754610e87565b6009548590611618565b90505b305f9081526001602052604090205460185460ff1615801561104857506013546001600160a01b038581169116145b801561105b5750601854610100900460ff165b8015611068575060105481115b80156110775750600c54600d54115b156110ab576110996110948461108f846011546116de565b6116de565b611476565b4780156110a9576110a9476115dd565b505b505b6001600160a01b0384165f9081526004602052604090205460ff16806110ea57506001600160a01b0383165f9081526004602052604090205460ff165b80156110ff57506001600160a01b0383163014155b801561111457506001600160a01b0384163014155b801561112d57505f546001600160a01b03858116911614155b1561113757436015555b6001600160a01b0384165f9081526004602052604090205460ff16801561116c5750600b546014546111699190611a90565b43115b156111e0576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d29086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526004602052604090205460ff1615801561122057506001600160a01b0383165f9081526004602052604090205460ff16155b1561130a576013546001600160a01b0380851691160361127b576001600160a01b0384165f90815260176020526040902060155481546112609190611abb565b60028201556112704360016116f2565b60019091015561130a565b6001600160a01b0383165f90815260176020526040902080541580156112ae57506013546001600160a01b038681169116145b156112d757600c54600d54116112ce576112c94360016116f2565b6112d0565b435b8155611308565b6001600160a01b0385165f90815260176020526040902054815415806112fd5750815481105b15611306578082555b505b505b801561138257305f908152600160205260409020546113299082611733565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113799085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546113a490836116f2565b6001600160a01b0385165f908152600160205260409020556113e76113c983836116f2565b6001600160a01b0385165f9081526001602052604090205490611733565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61143085856116f2565b6040519081526020016111d2565b5f81848411156114615760405162461bcd60e51b815260040161050191906117bd565b505f61146d8486611abb565b95945050505050565b6018805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114b6576114b6611ace565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561150d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115319190611a4a565b8160018151811061154457611544611ace565b6001600160a01b03928316602091820292909201015260125461156a9130911684610aee565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906115a29085905f90869030904290600401611ae2565b5f604051808303815f87803b1580156115b9575f80fd5b505af11580156115cb573d5f803e3d5ffd5b50506018805460ff1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104d4573d5f803e3d5ffd5b5f825f0361162757505f6103df565b5f61163283856119c8565b90508261163f8583611b52565b146116965760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610501565b9392505050565b5f61169683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611791565b5f8183116116ec5782611696565b50919050565b5f61169683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143e565b5f8061173f8385611a90565b9050838110156116965760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610501565b5f81836117b15760405162461bcd60e51b815260040161050191906117bd565b505f61146d8486611b52565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611806575f80fd5b50565b5f806040838503121561181a575f80fd5b8235611825816117f2565b946020939093013593505050565b5f805f60608486031215611845575f80fd5b8335611850816117f2565b92506020840135611860816117f2565b929592945050506040919091013590565b5f60208284031215611881575f80fd5b8135611696816117f2565b5f806040838503121561189d575f80fd5b82356118a8816117f2565b915060208301356118b8816117f2565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611912578085048111156118f6576118f66118c3565b600184161561190457908102905b60019390931c9280026118db565b935093915050565b5f82611928575060016103df565b8161193457505f6103df565b816001811461194a576002811461195457611970565b60019150506103df565b60ff841115611965576119656118c3565b50506001821b6103df565b5060208310610133831016604e8410600b8410161715611993575081810a6103df565b61199f5f1984846118d7565b805f19048211156119b2576119b26118c3565b029392505050565b5f61169660ff84168361191a565b80820281158282048414176103df576103df6118c3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a24575f80fd5b5051919050565b5f60208284031215611a3b575f80fd5b81518015158114611696575f80fd5b5f60208284031215611a5a575f80fd5b8151611696816117f2565b5f805f60608486031215611a77575f80fd5b5050815160208301516040909301519094929350919050565b808201808211156103df576103df6118c3565b5f60018201611ab457611ab46118c3565b5060010190565b818103818111156103df576103df6118c3565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611b325783516001600160a01b0316835260209384019390920191600101611b0b565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611b6c57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c22386871c38865d9f2ffd43639645f7c05531bf16253f888402877cacea1b8364736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610324578063bd61f0a614610343578063bf474bed14610362578063c9567bf914610377578063dd62ed3e1461038b575f80fd5b8063751039fc1461029e5780637d1db4a5146102b25780638da5cb5b146102c75780638f9a55c0146102e357806395d89b41146102f8575f80fd5b8063313ce567116100e3578063313ce567146101ee57806349bd5a5e1461020957806351bc3c851461024057806370a0823114610256578063715018a61461028a575f80fd5b806306fdde0314610129578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600681526529a420a5aaa960d11b60208201525b60405161016091906117bd565b60405180910390f35b348015610174575f80fd5b50610188610183366004611809565b6103cf565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad60115481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad6103e5565b3480156101da575f80fd5b506101886101e9366004611833565b610406565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b50601354610228906001600160a01b031681565b6040516001600160a01b039091168152602001610160565b34801561024b575f80fd5b5061025461046d565b005b348015610261575f80fd5b506101ad610270366004611871565b6001600160a01b03165f9081526001602052604090205490565b348015610295575f80fd5b506102546104d8565b3480156102a9575f80fd5b50610254610552565b3480156102bd575f80fd5b506101ad600e5481565b3480156102d2575f80fd5b505f546001600160a01b0316610228565b3480156102ee575f80fd5b506101ad600f5481565b348015610303575f80fd5b506040805180820190915260048152633250414360e01b6020820152610153565b34801561032f575f80fd5b5061018861033e366004611809565b610610565b34801561034e575f80fd5b5061025461035d366004611809565b61061c565b34801561036d575f80fd5b506101ad60105481565b348015610382575f80fd5b50610254610742565b348015610396575f80fd5b506101ad6103a536600461188c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103db338484610aee565b5060015b92915050565b5f6103f26009600a6119ba565b610401906461f313f8806119c8565b905090565b5f610412848484610c11565b610463843361045e85604051806060016040528060288152602001611b72602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061143e565b610aee565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b031614610491575f80fd5b305f9081526001602052604090205480158015906104b65750601854610100900460ff165b156104c4576104c481611476565b4780156104d4576104d4816115dd565b5050565b5f546001600160a01b0316331461050a5760405162461bcd60e51b8152600401610501906119df565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461057b5760405162461bcd60e51b8152600401610501906119df565b6105876009600a6119ba565b610596906461f313f8806119c8565b600e556105a56009600a6119ba565b6105b4906461f313f8806119c8565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ee6009600a6119ba565b6105fd906461f313f8806119c8565b60405190815260200160405180910390a1565b5f6103db338484610c11565b60055461010090046001600160a01b0316336001600160a01b031614610640575f80fd5b6040516370a0823160e01b81523060048201525f906106c1906064906106bb9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610691573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b59190611a14565b90611618565b9061169d565b60055460405163a9059cbb60e01b81526001600160a01b03610100909204821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af1158015610718573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c9190611a2b565b50505050565b5f546001600160a01b0316331461076b5760405162461bcd60e51b8152600401610501906119df565b60165460ff16156107be5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610501565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091554360145561080c9030906107fd6009600a6119ba565b61045e906461f313f8806119c8565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108809190611a4a565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109039190611a4a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561094d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109719190611a4a565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306109b8816001600160a01b03165f9081526001602052604090205490565b5f806109cb5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a31573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a569190611a65565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610acf9190611a2b565b506018805461ff0019166101001790556016805460ff19166001179055565b6001600160a01b038316610b505760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610501565b6001600160a01b038216610bb15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610501565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c755760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610501565b6001600160a01b038216610cd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610501565b5f8111610d385760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610501565b5f80546001600160a01b03858116911614801590610d6357505f546001600160a01b03848116911614155b8015610d8257506005546001600160a01b038481166101009092041614155b156110ad5760055460ff1615610e68576012546001600160a01b03848116911614801590610dbe57506013546001600160a01b03848116911614155b15610e6857325f908152600360205260409020544311610e565760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722064656c617920696e20757360448201527f652e204f6e6c79206f6e652070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a401610501565b325f9081526003602052604090204390555b610e8e60646106bb600a54600d5411610e8357600654610e87565b6008545b8590611618565b6013549091506001600160a01b038581169116148015610ebc57506012546001600160a01b03848116911614155b8015610ee057506001600160a01b0383165f9081526004602052604090205460ff16155b15610fc657600e54821115610f375760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610501565b600f5482610f59856001600160a01b03165f9081526001602052604090205490565b610f639190611a90565b1115610fb15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610501565b600d8054905f610fc083611aa3565b91905055505b6013546001600160a01b038481169116148015610fec57506001600160a01b0384163014155b156110195761101660646106bb600b54600d541161100c57600754610e87565b6009548590611618565b90505b305f9081526001602052604090205460185460ff1615801561104857506013546001600160a01b038581169116145b801561105b5750601854610100900460ff165b8015611068575060105481115b80156110775750600c54600d54115b156110ab576110996110948461108f846011546116de565b6116de565b611476565b4780156110a9576110a9476115dd565b505b505b6001600160a01b0384165f9081526004602052604090205460ff16806110ea57506001600160a01b0383165f9081526004602052604090205460ff165b80156110ff57506001600160a01b0383163014155b801561111457506001600160a01b0384163014155b801561112d57505f546001600160a01b03858116911614155b1561113757436015555b6001600160a01b0384165f9081526004602052604090205460ff16801561116c5750600b546014546111699190611a90565b43115b156111e0576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d29086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526004602052604090205460ff1615801561122057506001600160a01b0383165f9081526004602052604090205460ff16155b1561130a576013546001600160a01b0380851691160361127b576001600160a01b0384165f90815260176020526040902060155481546112609190611abb565b60028201556112704360016116f2565b60019091015561130a565b6001600160a01b0383165f90815260176020526040902080541580156112ae57506013546001600160a01b038681169116145b156112d757600c54600d54116112ce576112c94360016116f2565b6112d0565b435b8155611308565b6001600160a01b0385165f90815260176020526040902054815415806112fd5750815481105b15611306578082555b505b505b801561138257305f908152600160205260409020546113299082611733565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113799085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546113a490836116f2565b6001600160a01b0385165f908152600160205260409020556113e76113c983836116f2565b6001600160a01b0385165f9081526001602052604090205490611733565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61143085856116f2565b6040519081526020016111d2565b5f81848411156114615760405162461bcd60e51b815260040161050191906117bd565b505f61146d8486611abb565b95945050505050565b6018805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114b6576114b6611ace565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561150d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115319190611a4a565b8160018151811061154457611544611ace565b6001600160a01b03928316602091820292909201015260125461156a9130911684610aee565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906115a29085905f90869030904290600401611ae2565b5f604051808303815f87803b1580156115b9575f80fd5b505af11580156115cb573d5f803e3d5ffd5b50506018805460ff1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104d4573d5f803e3d5ffd5b5f825f0361162757505f6103df565b5f61163283856119c8565b90508261163f8583611b52565b146116965760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610501565b9392505050565b5f61169683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611791565b5f8183116116ec5782611696565b50919050565b5f61169683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143e565b5f8061173f8385611a90565b9050838110156116965760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610501565b5f81836117b15760405162461bcd60e51b815260040161050191906117bd565b505f61146d8486611b52565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611806575f80fd5b50565b5f806040838503121561181a575f80fd5b8235611825816117f2565b946020939093013593505050565b5f805f60608486031215611845575f80fd5b8335611850816117f2565b92506020840135611860816117f2565b929592945050506040919091013590565b5f60208284031215611881575f80fd5b8135611696816117f2565b5f806040838503121561189d575f80fd5b82356118a8816117f2565b915060208301356118b8816117f2565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611912578085048111156118f6576118f66118c3565b600184161561190457908102905b60019390931c9280026118db565b935093915050565b5f82611928575060016103df565b8161193457505f6103df565b816001811461194a576002811461195457611970565b60019150506103df565b60ff841115611965576119656118c3565b50506001821b6103df565b5060208310610133831016604e8410600b8410161715611993575081810a6103df565b61199f5f1984846118d7565b805f19048211156119b2576119b26118c3565b029392505050565b5f61169660ff84168361191a565b80820281158282048414176103df576103df6118c3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a24575f80fd5b5051919050565b5f60208284031215611a3b575f80fd5b81518015158114611696575f80fd5b5f60208284031215611a5a575f80fd5b8151611696816117f2565b5f805f60608486031215611a77575f80fd5b5050815160208301516040909301519094929350919050565b808201808211156103df576103df6118c3565b5f60018201611ab457611ab46118c3565b5060010190565b818103818111156103df576103df6118c3565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611b325783516001600160a01b0316835260209384019390920191600101611b0b565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611b6c57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c22386871c38865d9f2ffd43639645f7c05531bf16253f888402877cacea1b8364736f6c634300081a0033

Deployed Bytecode Sourcemap

3505:10026:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5646:83;;;;;;;;;;-1:-1:-1;5716:5:0;;;;;;;;;;;;-1:-1:-1;;;5716:5:0;;;;5646:83;;;;;;;:::i;:::-;;;;;;;;6479:161;;;;;;;;;;-1:-1:-1;6479:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;6479:161:0;945:187:1;4676:54:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;4676:54:0;1137:177:1;5923:95:0;;;;;;;;;;;;;:::i;6648:313::-;;;;;;;;;;-1:-1:-1;6648:313:0;;;;;:::i;:::-;;:::i;5832:83::-;;;;;;;;;;-1:-1:-1;5832:83:0;;4295:1;1974:36:1;;1962:2;1947:18;5832:83:0;1832:184:1;4792:28:0;;;;;;;;;;-1:-1:-1;4792:28:0;;;;-1:-1:-1;;;;;4792:28:0;;;;;;-1:-1:-1;;;;;2185:32:1;;;2167:51;;2155:2;2140:18;4792:28:0;2021:203:1;13125:366:0;;;;;;;;;;;;;:::i;:::-;;6026:119;;;;;;;;;;-1:-1:-1;6026:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6119:18:0;6092:7;6119:18;;;:9;:18;;;;;;;6026:119;2557:148;;;;;;;;;;;;;:::i;11817:203::-;;;;;;;;;;;;;:::i;4481:56::-;;;;;;;;;;;;;;;;2343:79;;;;;;;;;;-1:-1:-1;2381:7:0;2408:6;-1:-1:-1;;;;;2408:6:0;2343:79;;4544:58;;;;;;;;;;;;;;;;5737:87;;;;;;;;;;-1:-1:-1;5809:7:0;;;;;;;;;;;;-1:-1:-1;;;5809:7:0;;;;5737:87;;6153:167;;;;;;;;;;-1:-1:-1;6153:167:0;;;;;:::i;:::-;;:::i;12841:276::-;;;;;;;;;;-1:-1:-1;12841:276:0;;;;;:::i;:::-;;:::i;4609:60::-;;;;;;;;;;;;;;;;12126:707;;;;;;;;;;;;;:::i;6328:143::-;;;;;;;;;;-1:-1:-1;6328:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6436:18:0;;;6409:7;6436:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6328:143;6479:161;6554:4;6571:39;176:10;6594:7;6603:6;6571:8;:39::i;:::-;-1:-1:-1;6628:4:0;6479:161;;;;;:::o;5923:95::-;5976:7;4353:13;4295:1;4353:2;:13;:::i;:::-;4338:28;;:12;:28;:::i;:::-;5996:14;;5923:95;:::o;6648:313::-;6746:4;6763:36;6773:6;6781:9;6792:6;6763:9;:36::i;:::-;6810:121;6819:6;176:10;6841:89;6879:6;6841:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6841:19:0;;;;;;:11;:19;;;;;;;;176:10;6841:33;;;;;;;;;;:37;:89::i;:::-;6810:8;:121::i;:::-;-1:-1:-1;6949:4:0;6648:313;;;;;:::o;13125:366::-;13188:10;;;;;-1:-1:-1;;;;;13188:10:0;176;-1:-1:-1;;;;;13174:24:0;;13166:33;;;;;;13249:4;13210:20;6119:18;;;:9;:18;;;;;;13269:16;;;;;:31;;-1:-1:-1;13289:11:0;;;;;;;13269:31;13266:92;;;13316:30;13333:12;13316:16;:30::i;:::-;13387:21;13422:12;;13419:65;;13448:24;13461:10;13448:12;:24::i;:::-;13155:336;;13125:366::o;2557:148::-;2470:6;;-1:-1:-1;;;;;2470:6:0;176:10;2470:22;2462:67;;;;-1:-1:-1;;;2462:67:0;;;;;;;:::i;:::-;;;;;;;;;2664:1:::1;2648:6:::0;;2627:40:::1;::::0;-1:-1:-1;;;;;2648:6:0;;::::1;::::0;2627:40:::1;::::0;2664:1;;2627:40:::1;2695:1;2678:19:::0;;-1:-1:-1;;;;;;2678:19:0::1;::::0;;2557:148::o;11817:203::-;2470:6;;-1:-1:-1;;;;;2470:6:0;176:10;2470:22;2462:67;;;;-1:-1:-1;;;2462:67:0;;;;;;;:::i;:::-;4353:13:::1;4295:1;4353:2;:13;:::i;:::-;4338:28;::::0;:12:::1;:28;:::i;:::-;11872:12;:21:::0;4353:13:::1;4295:1;4353:2;:13;:::i;:::-;4338:28;::::0;:12:::1;:28;:::i;:::-;11904:14;:22:::0;11939:20:::1;:28:::0;;-1:-1:-1;;11939:28:0::1;::::0;;11985:27:::1;4353:13;4295:1;-1:-1:-1::0;4353:13:0::1;:::i;:::-;4338:28;::::0;:12:::1;:28;:::i;:::-;11985:27;::::0;1283:25:1;;;1271:2;1256:18;11985:27:0::1;;;;;;;11817:203::o:0;6153:167::-;6231:4;6248:42;176:10;6272:9;6283:6;6248:9;:42::i;12841:276::-;12948:10;;;;;-1:-1:-1;;;;;12948:10:0;176;-1:-1:-1;;;;;12934:24:0;;12926:33;;;;;;12988:41;;-1:-1:-1;;;12988:41:0;;13023:4;12988:41;;;2167:51:1;12970:15:0;;12988:64;;13048:3;;12988:55;;13034:8;;-1:-1:-1;;;;;12988:26:0;;;;;2140:18:1;;12988:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:55::i;:::-;:59;;:64::i;:::-;13089:10;;13063:46;;-1:-1:-1;;;13063:46:0;;-1:-1:-1;;;;;13089:10:0;;;;;;13063:46;;;5389:51:1;5456:18;;;5449:34;;;;;-1:-1:-1;13063:25:0;;;;;5362:18:1;;13063:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12915:202;12841:276;;:::o;12126:707::-;2470:6;;-1:-1:-1;;;;;2470:6:0;176:10;2470:22;2462:67;;;;-1:-1:-1;;;2462:67:0;;;;;;;:::i;:::-;12190:11:::1;::::0;::::1;;12189:12;12181:47;;;::::0;-1:-1:-1;;;12181:47:0;;5978:2:1;12181:47:0::1;::::0;::::1;5960:21:1::0;6017:2;5997:18;;;5990:30;6056:25;6036:18;;;6029:53;6099:18;;12181:47:0::1;5776:347:1::0;12181:47:0::1;12239:15;:80:::0;;-1:-1:-1;;;;;;12239:80:0::1;12276:42;12239:80:::0;;::::1;::::0;;;12343:12:::1;12330:10;:25:::0;12366:58:::1;::::0;12383:4:::1;::::0;4353:13:::1;4295:1;4353:2;:13;:::i;:::-;4338:28;::::0;:12:::1;:28;:::i;12366:58::-;12469:15;;;;;;;;;-1:-1:-1::0;;;;;12469:15:0::1;-1:-1:-1::0;;;;;12469:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12451:55:0::1;;12515:4;12521:15;;;;;;;;;-1:-1:-1::0;;;;;12521:15:0::1;-1:-1:-1::0;;;;;12521:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12451:93;::::0;-1:-1:-1;;;;;;12451:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6576:32:1;;;12451:93:0::1;::::0;::::1;6558:51:1::0;6645:32;;6625:18;;;6618:60;6531:18;;12451:93:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12435:13;:109:::0;;-1:-1:-1;;;;;12435:109:0;;::::1;-1:-1:-1::0;;;;;;12435:109:0;;::::1;;::::0;;12555:15:::1;::::0;::::1;:31;12594:21;12625:4;12631:24;12625:4:::0;-1:-1:-1;;;;;6119:18:0;6092:7;6119:18;;;:9;:18;;;;;;;6026:119;12631:24:::1;12656:1;12658::::0;12660:7:::1;2381::::0;2408:6;-1:-1:-1;;;;;2408:6:0;;2343:79;12660:7:::1;12555:130;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12555:130:0;;;-1:-1:-1;;;;;7010:32:1;;;12555:130:0::1;::::0;::::1;6992:51:1::0;7059:18;;;7052:34;;;;7102:18;;;7095:34;;;;7145:18;;;7138:34;7209:32;;;7188:19;;;7181:61;12669:15:0::1;7258:19:1::0;;;7251:35;6964:19;;12555:130:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12703:13:0::1;::::0;12734:15:::1;::::0;12696:71:::1;::::0;-1:-1:-1;;;12696:71:0;;-1:-1:-1;;;;;12734:15:0;;::::1;12696:71;::::0;::::1;5389:51:1::0;-1:-1:-1;;5456:18:1;;;5449:34;12703:13:0;::::1;::::0;-1:-1:-1;12696:29:0::1;::::0;5362:18:1;;12696:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12778:11:0::1;:18:::0;;-1:-1:-1;;12778:18:0::1;;;::::0;;12807:11:::1;:18:::0;;-1:-1:-1;;12807:18:0::1;12792:4;12807:18;::::0;;12126:707::o;6969:335::-;-1:-1:-1;;;;;7062:19:0;;7054:68;;;;-1:-1:-1;;;7054:68:0;;8239:2:1;7054:68:0;;;8221:21:1;8278:2;8258:18;;;8251:30;8317:34;8297:18;;;8290:62;-1:-1:-1;;;8368:18:1;;;8361:34;8412:19;;7054:68:0;8037:400:1;7054:68:0;-1:-1:-1;;;;;7141:21:0;;7133:68;;;;-1:-1:-1;;;7133:68:0;;8644:2:1;7133:68:0;;;8626:21:1;8683:2;8663:18;;;8656:30;8722:34;8702:18;;;8695:62;-1:-1:-1;;;8773:18:1;;;8766:32;8815:19;;7133:68:0;8442:398:1;7133:68:0;-1:-1:-1;;;;;7212:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7264:32;;1283:25:1;;;7264:32:0;;1256:18:1;7264:32:0;;;;;;;6969:335;;;:::o;7312:3901::-;-1:-1:-1;;;;;7400:18:0;;7392:68;;;;-1:-1:-1;;;7392:68:0;;9047:2:1;7392:68:0;;;9029:21:1;9086:2;9066:18;;;9059:30;9125:34;9105:18;;;9098:62;-1:-1:-1;;;9176:18:1;;;9169:35;9221:19;;7392:68:0;8845:401:1;7392:68:0;-1:-1:-1;;;;;7479:16:0;;7471:64;;;;-1:-1:-1;;;7471:64:0;;9453:2:1;7471:64:0;;;9435:21:1;9492:2;9472:18;;;9465:30;9531:34;9511:18;;;9504:62;-1:-1:-1;;;9582:18:1;;;9575:33;9625:19;;7471:64:0;9251:399:1;7471:64:0;7563:1;7554:6;:10;7546:64;;;;-1:-1:-1;;;7546:64:0;;9857:2:1;7546:64:0;;;9839:21:1;9896:2;9876:18;;;9869:30;9935:34;9915:18;;;9908:62;-1:-1:-1;;;9986:18:1;;;9979:39;10035:19;;7546:64:0;9655:405:1;7546:64:0;7621:17;2408:6;;-1:-1:-1;;;;;7657:15:0;;;2408:6;;7657:15;;;;:32;;-1:-1:-1;2381:7:0;2408:6;-1:-1:-1;;;;;7676:13:0;;;2408:6;;7676:13;;7657:32;:52;;;;-1:-1:-1;7699:10:0;;-1:-1:-1;;;;;7693:16:0;;;7699:10;;;;;7693:16;;7657:52;7653:1708;;;7730:20;;;;7726:433;;;7789:15;;-1:-1:-1;;;;;7775:30:0;;;7789:15;;7775:30;;;;:62;;-1:-1:-1;7823:13:0;;-1:-1:-1;;;;;7809:28:0;;;7823:13;;7809:28;;7775:62;7771:373;;;7899:9;7870:39;;;;:28;:39;;;;;;7912:12;-1:-1:-1;7862:185:0;;;;-1:-1:-1;;;7862:185:0;;10267:2:1;7862:185:0;;;10249:21:1;10306:2;10286:18;;;10279:30;10345:34;10325:18;;;10318:62;10416:34;10396:18;;;10389:62;-1:-1:-1;;;10467:19:1;;;10460:38;10515:19;;7862:185:0;10065:475:1;7862:185:0;8099:9;8070:39;;;;:28;:39;;;;;8112:12;8070:54;;7771:373;8185:76;8257:3;8185:67;8207:15;;8197:9;;:25;8196:55;;8237:14;;8196:55;;;8224:12;;8196:55;8185:6;;:10;:67::i;:76::-;8290:13;;8175:86;;-1:-1:-1;;;;;;8282:21:0;;;8290:13;;8282:21;:55;;;;-1:-1:-1;8321:15:0;;-1:-1:-1;;;;;8307:30:0;;;8321:15;;8307:30;;8282:55;:82;;;;-1:-1:-1;;;;;;8342:22:0;;;;;;:18;:22;;;;;;;;8341:23;8282:82;8278:372;;;8403:12;;8393:6;:22;;8385:60;;;;-1:-1:-1;;;8385:60:0;;10747:2:1;8385:60:0;;;10729:21:1;10786:2;10766:18;;;10759:30;10825:27;10805:18;;;10798:55;10870:18;;8385:60:0;10545:349:1;8385:60:0;8520:14;;8510:6;8494:13;8504:2;-1:-1:-1;;;;;6119:18:0;6092:7;6119:18;;;:9;:18;;;;;;;6026:119;8494:13;:22;;;;:::i;:::-;:40;;8464:140;;;;-1:-1:-1;;;8464:140:0;;11231:2:1;8464:140:0;;;11213:21:1;11270:2;11250:18;;;11243:30;11309:28;11289:18;;;11282:56;11355:18;;8464:140:0;11029:350:1;8464:140:0;8623:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8278:372;8675:13;;-1:-1:-1;;;;;8669:19:0;;;8675:13;;8669:19;:44;;;;-1:-1:-1;;;;;;8692:21:0;;8708:4;8692:21;;8669:44;8666:174;;;8745:79;8820:3;8745:70;8767:16;;8757:9;;:26;8756:58;;8799:15;;8756:58;;;8785:13;;8745:6;;:10;:70::i;:79::-;8735:89;;8666:174;8905:4;8856:28;6119:18;;;:9;:18;;;;;;8931:6;;;;8930:7;:30;;;;-1:-1:-1;8947:13:0;;-1:-1:-1;;;;;8941:19:0;;;8947:13;;8941:19;8930:30;:45;;;;-1:-1:-1;8964:11:0;;;;;;;8930:45;:89;;;;;9002:17;;8979:20;:40;8930:89;:123;;;;;9035:18;;9023:9;;:30;8930:123;8926:424;;;9073:68;9090:50;9094:6;9101:38;9105:20;9127:11;;9101:3;:38::i;:::-;9090:3;:50::i;:::-;9073:16;:68::i;:::-;9189:21;9233:22;;9229:106;;9280:35;9293:21;9280:12;:35::i;:::-;9054:296;8926:424;7711:1650;7653:1708;-1:-1:-1;;;;;9393:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9421:22:0;;;;;;:18;:22;;;;;;;;9393:50;9391:90;;;;-1:-1:-1;;;;;;9462:19:0;;9476:4;9462:19;;9391:90;:128;;;;-1:-1:-1;;;;;;9498:21:0;;9514:4;9498:21;;9391:128;:147;;;;-1:-1:-1;2381:7:0;2408:6;-1:-1:-1;;;;;9523:15:0;;;2408:6;;9523:15;;9391:147;9373:234;;;9583:12;9565:15;:30;9373:234;-1:-1:-1;;;;;9621:24:0;;;;;;:18;:24;;;;;;;;:72;;;;;9677:16;;9664:10;;:29;;;;:::i;:::-;9649:12;:44;9621:72;9617:278;;;-1:-1:-1;;;;;9737:15:0;;;;;;;:9;:15;;;;;;:24;;;;;;;9778:13;;;;;;;;;;:23;;;;;;9836:26;;;;;;9755:6;1283:25:1;;1271:2;1256:18;;1137:177;9836:26:0;;;;;;;;9877:7;7312:3901;;;:::o;9617:278::-;-1:-1:-1;;;;;9910:24:0;;;;;;:18;:24;;;;;;;;9909:25;:53;;;;-1:-1:-1;;;;;;9940:22:0;;;;;;:18;:22;;;;;;;;9938:24;9909:53;9905:948;;;9983:13;;-1:-1:-1;;;;;9983:19:0;;;:13;;:19;9979:863;;-1:-1:-1;;;;;10061:17:0;;10023:35;10061:17;;;:11;:17;;;;;10149:15;;10124:22;;:40;;10149:15;10124:40;:::i;:::-;10097:24;;;:67;10209:19;:12;10226:1;10209:16;:19::i;:::-;10183:23;;;;:45;9979:863;;;-1:-1:-1;;;;;10318:15:0;;10280:35;10318:15;;;:11;:15;;;;;10356:22;;:27;:52;;;;-1:-1:-1;10387:13:0;;-1:-1:-1;;;;;10387:21:0;;;:13;;:21;10356:52;10352:475;;;10470:18;;10458:9;;:30;:67;;10506:19;:12;10523:1;10506:16;:19::i;:::-;10458:67;;;10491:12;10458:67;10433:92;;10352:475;;;-1:-1:-1;;;;;10597:17:0;;10574:20;10597:17;;;:11;:17;;;;;:26;10650:22;;:27;;:68;;-1:-1:-1;10681:22:0;;:37;-1:-1:-1;10650:68:0;10646:162;;;10747:37;;;10646:162;10551:276;10352:475;10250:592;9979:863;10869:13;;10865:167;;10941:4;10923:24;;;;:9;:24;;;;;;:39;;10952:9;10923:28;:39::i;:::-;10916:4;10898:24;;;;:9;:24;;;;;;;:64;;;;10982:38;;-1:-1:-1;;;;;10982:38:0;;;;;;;11010:9;1283:25:1;;1271:2;1256:18;;1137:177;10982:38:0;;;;;;;;10865:167;-1:-1:-1;;;;;11058:15:0;;;;;;:9;:15;;;;;;:27;;11078:6;11058:19;:27::i;:::-;-1:-1:-1;;;;;11042:15:0;;;;;;:9;:15;;;;;:43;11110:40;11128:21;:6;11139:9;11128:10;:21::i;:::-;-1:-1:-1;;;;;11110:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11096:13:0;;;;;;;:9;:13;;;;;:54;;;;11166:39;;;11183:21;:6;11194:9;11183:10;:21::i;:::-;11166:39;;1283:25:1;;;1271:2;1256:18;11166:39:0;1137:177:1;1235:190:0;1321:7;1357:12;1349:6;;;;1341:29;;;;-1:-1:-1;;;1341:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1381:9:0;1393:5;1397:1;1393;:5;:::i;:::-;1381:17;1235:190;-1:-1:-1;;;;;1235:190:0:o;11329:480::-;5233:6;:13;;-1:-1:-1;;5233:13:0;5242:4;5233:13;;;11428:16:::1;::::0;;11442:1:::1;11428:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11428:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11428:16:0::1;11404:40;;11473:4;11455;11460:1;11455:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11455:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11499:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11499:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11455:7;;11499:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11489:4;11494:1;11489:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11489:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11564:15:::1;::::0;11532:62:::1;::::0;11549:4:::1;::::0;11564:15:::1;11582:11:::0;11532:8:::1;:62::i;:::-;11605:15;::::0;:196:::1;::::0;-1:-1:-1;;;11605:196:0;;-1:-1:-1;;;;;11605:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11686:11;;11605:15:::1;::::0;11728:4;;11755::::1;::::0;11775:15:::1;::::0;11605:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5269:6:0;:14;;-1:-1:-1;;5269:14:0;;;-1:-1:-1;;;;11329:480:0:o;12028:92::-;12085:10;;:27;;:10;;;;-1:-1:-1;;;;;12085:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1433:246;1491:7;1515:1;1520;1515:6;1511:47;;-1:-1:-1;1545:1:0;1538:8;;1511:47;1568:9;1580:5;1584:1;1580;:5;:::i;:::-;1568:17;-1:-1:-1;1613:1:0;1604:5;1608:1;1568:17;1604:5;:::i;:::-;:10;1596:56;;;;-1:-1:-1;;;1596:56:0;;13309:2:1;1596:56:0;;;13291:21:1;13348:2;13328:18;;;13321:30;13387:34;13367:18;;;13360:62;-1:-1:-1;;;13438:18:1;;;13431:31;13479:19;;1596:56:0;13107:397:1;1596:56:0;1670:1;1433:246;-1:-1:-1;;;1433:246:0:o;1687:132::-;1745:7;1772:39;1776:1;1779;1772:39;;;;;;;;;;;;;;;;;:3;:39::i;11223:98::-;11280:7;11307:1;11305;:3;11304:9;;11312:1;11304:9;;;-1:-1:-1;11310:1:0;11223:98;-1:-1:-1;11223:98:0:o;1091:136::-;1149:7;1176:43;1180:1;1183;1176:43;;;;;;;;;;;;;;;;;:3;:43::i;904:179::-;962:7;;994:5;998:1;994;:5;:::i;:::-;982:17;;1023:1;1018;:6;;1010:46;;;;-1:-1:-1;;;1010:46:0;;13711:2:1;1010:46:0;;;13693:21:1;13750:2;13730:18;;;13723:30;13789:29;13769:18;;;13762:57;13836:18;;1010:46:0;13509:351:1;1827:189:0;1913:7;1948:12;1941:5;1933:28;;;;-1:-1:-1;;;1933:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1972:9:0;1984:5;1988:1;1984;:5;:::i;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;492:70;437:131;:::o;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;4972:230::-;5042:6;5095:2;5083:9;5074:7;5070:23;5066:32;5063:52;;;5111:1;5108;5101:12;5063:52;-1:-1:-1;5156:16:1;;4972:230;-1:-1:-1;4972:230:1:o;5494:277::-;5561:6;5614:2;5602:9;5593:7;5589:23;5585:32;5582:52;;;5630:1;5627;5620:12;5582:52;5662:9;5656:16;5715:5;5708:13;5701:21;5694:5;5691:32;5681:60;;5737:1;5734;5727:12;6128:251;6198:6;6251:2;6239:9;6230:7;6226:23;6222:32;6219:52;;;6267:1;6264;6257:12;6219:52;6299:9;6293:16;6318:31;6343:5;6318:31;:::i;7297:456::-;7385:6;7393;7401;7454:2;7442:9;7433:7;7429:23;7425:32;7422:52;;;7470:1;7467;7460:12;7422:52;-1:-1:-1;;7515:16:1;;7621:2;7606:18;;7600:25;7717:2;7702:18;;;7696:25;7515:16;;7600:25;;-1:-1:-1;7696:25:1;7297:456;-1:-1:-1;7297:456:1:o;10899:125::-;10964:9;;;10985:10;;;10982:36;;;10998:18;;:::i;11384:135::-;11423:3;11444:17;;;11441:43;;11464:18;;:::i;:::-;-1:-1:-1;11511:1:1;11500:13;;11384:135::o;11524:128::-;11591:9;;;11612:11;;;11609:37;;;11626:18;;:::i;11789:127::-;11850:10;11845:3;11841:20;11838:1;11831:31;11881:4;11878:1;11871:15;11905:4;11902:1;11895:15;11921:959;12183:4;12231:3;12220:9;12216:19;12262:6;12251:9;12244:25;12305:6;12300:2;12289:9;12285:18;12278:34;12348:3;12343:2;12332:9;12328:18;12321:31;12372:6;12407;12401:13;12438:6;12430;12423:22;12476:3;12465:9;12461:19;12454:26;;12515:2;12507:6;12503:15;12489:29;;12536:1;12546:195;12560:6;12557:1;12554:13;12546:195;;;12625:13;;-1:-1:-1;;;;;12621:39:1;12609:52;;12690:2;12716:15;;;;12681:12;;;;12657:1;12575:9;12546:195;;;-1:-1:-1;;;;;;;12797:32:1;;;;12792:2;12777:18;;12770:60;-1:-1:-1;;12861:3:1;12846:19;12839:35;12758:3;11921:959;-1:-1:-1;;;11921:959:1:o;12885:217::-;12925:1;12951;12941:132;;12995:10;12990:3;12986:20;12983:1;12976:31;13030:4;13027:1;13020:15;13058:4;13055:1;13048:15;12941:132;-1:-1:-1;13087:9:1;;12885:217::o

Swarm Source

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