ETH Price: $2,791.81 (-0.99%)

Token

Ordinal HODL (HODL)
 

Overview

Max Total Supply

21,000,000 HODL

Holders

3

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
HODL

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*────────────────────────────┐
  Name: Ordinal HODL
  Symbol: HODL
  Decimals: 
  Total supply: 21M (21 million)
  Network: ETH Network

  Developed by coinsult.net                             
 _____     _             _ _   
|     |___|_|___ ___ _ _| | |_ 
|   --| . | |   |_ -| | | |  _|
|_____|___|_|_|_|___|___|_|_|  
                               
  t.me/coinsult_tg
──────────────────────────────┘

 SPDX-License-Identifier: MIT */

pragma solidity 0.8.19;

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

interface IUniswapV2Router01 {
    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);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

        (bool success, ) = recipient.call{value: amount}("");
        return success; // always proceeds
    }
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mintOnce(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }
}

contract HODL is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public  feeOnBuy;
    uint256 public  feeOnSell;

    uint256 public  feeOnTransfer;

    address public  feeReceiver;

    uint256 public  swapTokensAtAmount;
    bool    private swapping;

    bool    public swapEnabled;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);

    constructor () ERC20("Ordinal HODL", "HODL") 
    {   
        address router;
        address pinkLock;
        
        if (block.chainid == 56) {
            router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Pancake Mainnet Router
            pinkLock = 0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE; // BSC PinkLock
        } else if (block.chainid == 97) {
            router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC Pancake Testnet Router
            pinkLock = 0x5E5b9bE5fd939c578ABE5800a90C566eeEbA44a5; // BSC Testnet PinkLock
        } else if (block.chainid == 1 || block.chainid == 5) {
            router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap Mainnet % Testnet
            pinkLock = 0x71B5759d73262FBb223956913ecF4ecC51057641; // ETH PinkLock
        } else {
            revert();
        }

        transferOwnership(0x7243023EA382257A98eE131a14D06fFB8b1C067d);

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        feeOnBuy  = 1;
        feeOnSell = 1;

        feeOnTransfer = 1;

        feeReceiver = 0xB6434C784a0B9B0a7148bBD505878B0EB7495120;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[pinkLock] = true;

        _mintOnce(owner(), 21e6 * (10 ** decimals()));
        swapTokensAtAmount = totalSupply() / 5_000;

        swapEnabled = false;
    }

    receive() external payable {}

    function creator() public pure returns (string memory) {
        return "tg.me/coinsult_tg";
    }

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "CSLT: Owner cannot claim contract's balance of its own tokens");
        if (token == address(0x0)) {
            payable(msg.sender).sendValue(address(this).balance);
            return;
        }
        
        IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner{
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    event FeeReceiverChanged(address feeReceiver);

    function changeFeeReceiver(address _feeReceiver) external onlyOwner{
        require(_feeReceiver != address(0), "CSLT: Fee receiver cannot be the zero address");
        feeReceiver = _feeReceiver;

        emit FeeReceiverChanged(feeReceiver);
    }
    
    event TradingEnabled(bool tradingEnabled);

    bool public tradingEnabled;

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "CSLT: Trading already enabled.");
        tradingEnabled = true;
        swapEnabled = true;

        emit TradingEnabled(tradingEnabled);
    }

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "CSLT: transfer from the zero address");
        require(to != address(0), "CSLT: transfer to the zero address");
        require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "CSLT: Trading not yet enabled!");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            to == uniswapV2Pair &&
            feeOnBuy + feeOnSell > 0 &&
            !_isExcludedFromFees[from] &&
            swapEnabled
        ) {
            swapping = true;

            swapAndSendFee(contractTokenBalance);     

            swapping = false;
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            _totalFees = feeOnBuy;
        } else if (to == uniswapV2Pair) {
            _totalFees =  feeOnSell;
        } else {
            _totalFees = feeOnTransfer;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
    }

    function setSwapTokensAtAmount(uint256 newAmount, bool _swapEnabled) external onlyOwner{
        require(newAmount > totalSupply() / 1_000_000, "CSLT: SwapTokensAtAmount must be greater than 0.0001% of total supply");
        swapTokensAtAmount = newAmount;
        swapEnabled = _swapEnabled;

        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
    }

    function swapAndSendFee(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 newBalance = address(this).balance - initialBalance;

        payable(feeReceiver).sendValue(newBalance);

        emit SwapAndSendFee(tokenAmount, newBalance);
    }
}

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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeReceiver","type":"address"}],"name":"FeeReceiverChanged","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"}],"name":"TradingEnabled","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creator","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"},{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280600c81526020016b13dc991a5b985b081213d11360a21b815250604051806040016040528060048152602001631213d11360e21b815250816003908162000065919062000843565b50600462000074828262000843565b5050506000620000896200047b60201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062002555833981519152908290a350600080466038036200010557507310ed43c718714eb63d5aa57b78b54704e256024e905073407993575c91ce7643a4d4ccacc9a98c36ee1bbe6200018f565b4660610362000141575073d99d1c33f9fc3444f8101754abc46c52416550d19050735e5b9be5fd939c578abe5800a90c566eeeba44a56200018f565b4660011480620001515750466005145b156200018a5750737a250d5630b4cf539739df2c5dacb4c659f2488d90507371b5759d73262fbb223956913ecf4ecc510576416200018f565b600080fd5b620001ae737243023ea382257a98ee131a14d06ffb8b1c067d6200047f565b60008290506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021a91906200090f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000268573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028e91906200090f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030291906200090f565b600680546001600160a01b038086166001600160a01b0319928316811790935560078054918516919092161790559091506200034390309060001962000591565b60016009819055600a819055600b819055600c80546001600160a01b03191673b6434c784a0b9b0a7148bbd505878b0eb749512017905560086000620003916005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560089093527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299805485166001908117909155308452828420805486168217905590871683529120805490921617905562000449620004256005546001600160a01b031690565b620004336012600a62000a56565b62000443906301406f4062000a67565b620006b9565b6113886200045660025490565b62000462919062000a81565b600d555050600e805461ff00191690555062000aba9050565b3390565b6005546001600160a01b03163314620004df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620005465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004d6565b6005546040516001600160a01b038084169216906000805160206200255583398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316620005f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620004d6565b6001600160a01b038216620006585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004d6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620007115760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004d6565b806002600082825462000725919062000aa4565b90915550506001600160a01b038216600090815260208190526040812080548392906200075490849062000aa4565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007c957607f821691505b602082108103620007ea57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200083e57600081815260208120601f850160051c81016020861015620008195750805b601f850160051c820191505b818110156200083a5782815560010162000825565b5050505b505050565b81516001600160401b038111156200085f576200085f6200079e565b6200087781620008708454620007b4565b84620007f0565b602080601f831160018114620008af5760008415620008965750858301515b600019600386901b1c1916600185901b1785556200083a565b600085815260208120601f198616915b82811015620008e057888601518255948401946001909101908401620008bf565b5085821015620008ff5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200092257600080fd5b81516001600160a01b03811681146200093a57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620009985781600019048211156200097c576200097c62000941565b808516156200098a57918102915b93841c93908002906200095c565b509250929050565b600082620009b15750600162000a50565b81620009c05750600062000a50565b8160018114620009d95760028114620009e45762000a04565b600191505062000a50565b60ff841115620009f857620009f862000941565b50506001821b62000a50565b5060208310610133831016604e8410600b841016171562000a29575081810a62000a50565b62000a35838362000957565b806000190482111562000a4c5762000a4c62000941565b0290505b92915050565b60006200093a60ff841683620009a0565b808202811582820484141762000a505762000a5062000941565b60008262000a9f57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000a505762000a5062000941565b611a8b8062000aca6000396000f3fe6080604052600436106101d15760003560e01c8063715018a6116100f7578063b1fde9f811610095578063dd62ed3e11610064578063dd62ed3e14610554578063e2f456051461059a578063f2fde38b146105b0578063f9d0831a146105d057600080fd5b8063b1fde9f8146104de578063b3f00674146104fe578063bb8c3ee01461051e578063c02466681461053457600080fd5b80638da5cb5b116100d15780638da5cb5b1461046b57806395d89b4114610489578063a457c2d71461049e578063a9059cbb146104be57600080fd5b8063715018a61461041f5780637c08b964146104365780638a8c523c1461045657600080fd5b8063313ce5671161016f5780634fbee1931161013e5780634fbee1931461037b57806365048d08146103b45780636ddd1713146103ca57806370a08231146103e957600080fd5b8063313ce567146102ff578063395093511461031b57806349bd5a5e1461033b5780634ada218b1461035b57600080fd5b80630fa1eeab116101ab5780630fa1eeab1461026e5780631694505e1461029257806318160ddd146102ca57806323b872dd146102df57600080fd5b806302d05d3f146101dd57806306fdde0314610229578063095ea7b31461023e57600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152601181527074672e6d652f636f696e73756c745f746760781b60208201525b6040516102209190611709565b60405180910390f35b34801561023557600080fd5b506102136105f0565b34801561024a57600080fd5b5061025e61025936600461176c565b610682565b6040519015158152602001610220565b34801561027a57600080fd5b50610284600b5481565b604051908152602001610220565b34801561029e57600080fd5b506006546102b2906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156102d657600080fd5b50600254610284565b3480156102eb57600080fd5b5061025e6102fa366004611798565b610699565b34801561030b57600080fd5b5060405160128152602001610220565b34801561032757600080fd5b5061025e61033636600461176c565b61074f565b34801561034757600080fd5b506007546102b2906001600160a01b031681565b34801561036757600080fd5b50600e5461025e9062010000900460ff1681565b34801561038757600080fd5b5061025e6103963660046117d9565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103c057600080fd5b50610284600a5481565b3480156103d657600080fd5b50600e5461025e90610100900460ff1681565b3480156103f557600080fd5b506102846104043660046117d9565b6001600160a01b031660009081526020819052604090205490565b34801561042b57600080fd5b5061043461078b565b005b34801561044257600080fd5b506104346104513660046117d9565b6107ff565b34801561046257600080fd5b506104346108e9565b34801561047757600080fd5b506005546001600160a01b03166102b2565b34801561049557600080fd5b506102136109c1565b3480156104aa57600080fd5b5061025e6104b936600461176c565b6109d0565b3480156104ca57600080fd5b5061025e6104d936600461176c565b610a69565b3480156104ea57600080fd5b506104346104f936600461180b565b610a76565b34801561050a57600080fd5b50600c546102b2906001600160a01b031681565b34801561052a57600080fd5b5061028460095481565b34801561054057600080fd5b5061043461054f36600461183b565b610b88565b34801561056057600080fd5b5061028461056f366004611869565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105a657600080fd5b50610284600d5481565b3480156105bc57600080fd5b506104346105cb3660046117d9565b610c11565b3480156105dc57600080fd5b506104346105eb3660046117d9565b610cfc565b6060600380546105ff90611897565b80601f016020809104026020016040519081016040528092919081815260200182805461062b90611897565b80156106785780601f1061064d57610100808354040283529160200191610678565b820191906000526020600020905b81548152906001019060200180831161065b57829003601f168201915b5050505050905090565b600061068f338484610ea4565b5060015b92915050565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000198114610739578281101561072c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107398533858403610ea4565b610744858585610fc8565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161068f9185906107869086906118e7565b610ea4565b6005546001600160a01b031633146107b55760405162461bcd60e51b8152600401610723906118fa565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146108295760405162461bcd60e51b8152600401610723906118fa565b6001600160a01b0381166108955760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610723565b600c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146109135760405162461bcd60e51b8152600401610723906118fa565b600e5462010000900460ff161561096c5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610723565b600e80546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b6060600480546105ff90611897565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610a525760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610723565b610a5f3385858403610ea4565b5060019392505050565b600061068f338484610fc8565b6005546001600160a01b03163314610aa05760405162461bcd60e51b8152600401610723906118fa565b620f4240610aad60025490565b610ab7919061192f565b8211610b395760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610723565b600d829055600e805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b6005546001600160a01b03163314610bb25760405162461bcd60e51b8152600401610723906118fa565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c3b5760405162461bcd60e51b8152600401610723906118fa565b6001600160a01b038116610ca05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610723565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d265760405162461bcd60e51b8152600401610723906118fa565b306001600160a01b03821603610da45760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e730000006064820152608401610723565b6001600160a01b038116610dc057610dbc33476112e3565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e329190611951565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc919061196a565b50565b6001600160a01b038316610f065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610723565b6001600160a01b038216610f675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610723565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661102a5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610723565b6001600160a01b03821661108b5760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610723565b600e5462010000900460ff16806110ba57506001600160a01b03831660009081526008602052604090205460ff165b806110dd57506001600160a01b03821660009081526008602052604090205460ff165b6111295760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610723565b806000036111425761113d83836000611392565b505050565b30600090815260208190526040902054600d54811080159081906111695750600e5460ff16155b801561118257506007546001600160a01b038581169116145b801561119d57506000600a5460095461119b91906118e7565b115b80156111c257506001600160a01b03851660009081526008602052604090205460ff16155b80156111d55750600e54610100900460ff165b156111fb57600e805460ff191660011790556111f082611561565b600e805460ff191690555b6001600160a01b03851660009081526008602052604081205460ff168061123a57506001600160a01b03851660009081526008602052604090205460ff165b806112475750600e5460ff165b1561125457506000611297565b6007546001600160a01b03908116908716036112735750600954611297565b6007546001600160a01b03908116908616036112925750600a54611297565b50600b545b80156112d057600060646112ab8387611987565b6112b5919061192f565b90506112c1818661199e565b94506112ce873083611392565b505b6112db868686611392565b505050505050565b6000814710156113355760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610723565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114611382576040519150601f19603f3d011682016040523d82523d6000602084013e611387565b606091505b509095945050505050565b6001600160a01b0383166113f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610723565b6001600160a01b0382166114585760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610723565b6001600160a01b038316600090815260208190526040902054818110156114d05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610723565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906115079084906118e7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161155391815260200190565b60405180910390a350505050565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061159a5761159a6119b1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161791906119c7565b8160018151811061162a5761162a6119b1565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906116709086906000908690309042906004016119e4565b600060405180830381600087803b15801561168a57600080fd5b505af192505050801561169b575060015b6116a457505050565b60006116b0834761199e565b600c549091506116c9906001600160a01b0316826112e3565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156117365785810183015185820160400152820161171a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ea157600080fd5b6000806040838503121561177f57600080fd5b823561178a81611757565b946020939093013593505050565b6000806000606084860312156117ad57600080fd5b83356117b881611757565b925060208401356117c881611757565b929592945050506040919091013590565b6000602082840312156117eb57600080fd5b81356117f681611757565b9392505050565b8015158114610ea157600080fd5b6000806040838503121561181e57600080fd5b823591506020830135611830816117fd565b809150509250929050565b6000806040838503121561184e57600080fd5b823561185981611757565b91506020830135611830816117fd565b6000806040838503121561187c57600080fd5b823561188781611757565b9150602083013561183081611757565b600181811c908216806118ab57607f821691505b6020821081036118cb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610693576106936118d1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261194c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561196357600080fd5b5051919050565b60006020828403121561197c57600080fd5b81516117f6816117fd565b8082028115828204841417610693576106936118d1565b81810381811115610693576106936118d1565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119d957600080fd5b81516117f681611757565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a345784516001600160a01b031683529383019391830191600101611a0f565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122039fe46ddd671c38f55492f30e494a3e037c7f32703579a5a15f9621b196b346f64736f6c634300081300338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063715018a6116100f7578063b1fde9f811610095578063dd62ed3e11610064578063dd62ed3e14610554578063e2f456051461059a578063f2fde38b146105b0578063f9d0831a146105d057600080fd5b8063b1fde9f8146104de578063b3f00674146104fe578063bb8c3ee01461051e578063c02466681461053457600080fd5b80638da5cb5b116100d15780638da5cb5b1461046b57806395d89b4114610489578063a457c2d71461049e578063a9059cbb146104be57600080fd5b8063715018a61461041f5780637c08b964146104365780638a8c523c1461045657600080fd5b8063313ce5671161016f5780634fbee1931161013e5780634fbee1931461037b57806365048d08146103b45780636ddd1713146103ca57806370a08231146103e957600080fd5b8063313ce567146102ff578063395093511461031b57806349bd5a5e1461033b5780634ada218b1461035b57600080fd5b80630fa1eeab116101ab5780630fa1eeab1461026e5780631694505e1461029257806318160ddd146102ca57806323b872dd146102df57600080fd5b806302d05d3f146101dd57806306fdde0314610229578063095ea7b31461023e57600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152601181527074672e6d652f636f696e73756c745f746760781b60208201525b6040516102209190611709565b60405180910390f35b34801561023557600080fd5b506102136105f0565b34801561024a57600080fd5b5061025e61025936600461176c565b610682565b6040519015158152602001610220565b34801561027a57600080fd5b50610284600b5481565b604051908152602001610220565b34801561029e57600080fd5b506006546102b2906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156102d657600080fd5b50600254610284565b3480156102eb57600080fd5b5061025e6102fa366004611798565b610699565b34801561030b57600080fd5b5060405160128152602001610220565b34801561032757600080fd5b5061025e61033636600461176c565b61074f565b34801561034757600080fd5b506007546102b2906001600160a01b031681565b34801561036757600080fd5b50600e5461025e9062010000900460ff1681565b34801561038757600080fd5b5061025e6103963660046117d9565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103c057600080fd5b50610284600a5481565b3480156103d657600080fd5b50600e5461025e90610100900460ff1681565b3480156103f557600080fd5b506102846104043660046117d9565b6001600160a01b031660009081526020819052604090205490565b34801561042b57600080fd5b5061043461078b565b005b34801561044257600080fd5b506104346104513660046117d9565b6107ff565b34801561046257600080fd5b506104346108e9565b34801561047757600080fd5b506005546001600160a01b03166102b2565b34801561049557600080fd5b506102136109c1565b3480156104aa57600080fd5b5061025e6104b936600461176c565b6109d0565b3480156104ca57600080fd5b5061025e6104d936600461176c565b610a69565b3480156104ea57600080fd5b506104346104f936600461180b565b610a76565b34801561050a57600080fd5b50600c546102b2906001600160a01b031681565b34801561052a57600080fd5b5061028460095481565b34801561054057600080fd5b5061043461054f36600461183b565b610b88565b34801561056057600080fd5b5061028461056f366004611869565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105a657600080fd5b50610284600d5481565b3480156105bc57600080fd5b506104346105cb3660046117d9565b610c11565b3480156105dc57600080fd5b506104346105eb3660046117d9565b610cfc565b6060600380546105ff90611897565b80601f016020809104026020016040519081016040528092919081815260200182805461062b90611897565b80156106785780601f1061064d57610100808354040283529160200191610678565b820191906000526020600020905b81548152906001019060200180831161065b57829003601f168201915b5050505050905090565b600061068f338484610ea4565b5060015b92915050565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000198114610739578281101561072c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107398533858403610ea4565b610744858585610fc8565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161068f9185906107869086906118e7565b610ea4565b6005546001600160a01b031633146107b55760405162461bcd60e51b8152600401610723906118fa565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146108295760405162461bcd60e51b8152600401610723906118fa565b6001600160a01b0381166108955760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610723565b600c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146109135760405162461bcd60e51b8152600401610723906118fa565b600e5462010000900460ff161561096c5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610723565b600e80546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b6060600480546105ff90611897565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610a525760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610723565b610a5f3385858403610ea4565b5060019392505050565b600061068f338484610fc8565b6005546001600160a01b03163314610aa05760405162461bcd60e51b8152600401610723906118fa565b620f4240610aad60025490565b610ab7919061192f565b8211610b395760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610723565b600d829055600e805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b6005546001600160a01b03163314610bb25760405162461bcd60e51b8152600401610723906118fa565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c3b5760405162461bcd60e51b8152600401610723906118fa565b6001600160a01b038116610ca05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610723565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d265760405162461bcd60e51b8152600401610723906118fa565b306001600160a01b03821603610da45760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e730000006064820152608401610723565b6001600160a01b038116610dc057610dbc33476112e3565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e329190611951565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc919061196a565b50565b6001600160a01b038316610f065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610723565b6001600160a01b038216610f675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610723565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661102a5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610723565b6001600160a01b03821661108b5760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610723565b600e5462010000900460ff16806110ba57506001600160a01b03831660009081526008602052604090205460ff165b806110dd57506001600160a01b03821660009081526008602052604090205460ff165b6111295760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610723565b806000036111425761113d83836000611392565b505050565b30600090815260208190526040902054600d54811080159081906111695750600e5460ff16155b801561118257506007546001600160a01b038581169116145b801561119d57506000600a5460095461119b91906118e7565b115b80156111c257506001600160a01b03851660009081526008602052604090205460ff16155b80156111d55750600e54610100900460ff165b156111fb57600e805460ff191660011790556111f082611561565b600e805460ff191690555b6001600160a01b03851660009081526008602052604081205460ff168061123a57506001600160a01b03851660009081526008602052604090205460ff165b806112475750600e5460ff165b1561125457506000611297565b6007546001600160a01b03908116908716036112735750600954611297565b6007546001600160a01b03908116908616036112925750600a54611297565b50600b545b80156112d057600060646112ab8387611987565b6112b5919061192f565b90506112c1818661199e565b94506112ce873083611392565b505b6112db868686611392565b505050505050565b6000814710156113355760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610723565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114611382576040519150601f19603f3d011682016040523d82523d6000602084013e611387565b606091505b509095945050505050565b6001600160a01b0383166113f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610723565b6001600160a01b0382166114585760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610723565b6001600160a01b038316600090815260208190526040902054818110156114d05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610723565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906115079084906118e7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161155391815260200190565b60405180910390a350505050565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061159a5761159a6119b1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161791906119c7565b8160018151811061162a5761162a6119b1565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906116709086906000908690309042906004016119e4565b600060405180830381600087803b15801561168a57600080fd5b505af192505050801561169b575060015b6116a457505050565b60006116b0834761199e565b600c549091506116c9906001600160a01b0316826112e3565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156117365785810183015185820160400152820161171a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ea157600080fd5b6000806040838503121561177f57600080fd5b823561178a81611757565b946020939093013593505050565b6000806000606084860312156117ad57600080fd5b83356117b881611757565b925060208401356117c881611757565b929592945050506040919091013590565b6000602082840312156117eb57600080fd5b81356117f681611757565b9392505050565b8015158114610ea157600080fd5b6000806040838503121561181e57600080fd5b823591506020830135611830816117fd565b809150509250929050565b6000806040838503121561184e57600080fd5b823561185981611757565b91506020830135611830816117fd565b6000806040838503121561187c57600080fd5b823561188781611757565b9150602083013561183081611757565b600181811c908216806118ab57607f821691505b6020821081036118cb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610693576106936118d1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261194c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561196357600080fd5b5051919050565b60006020828403121561197c57600080fd5b81516117f6816117fd565b8082028115828204841417610693576106936118d1565b81810381811115610693576106936118d1565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119d957600080fd5b81516117f681611757565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a345784516001600160a01b031683529383019391830191600101611a0f565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122039fe46ddd671c38f55492f30e494a3e037c7f32703579a5a15f9621b196b346f64736f6c63430008130033

Deployed Bytecode Sourcemap

8500:6685:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11058:100;;;;;;;;;;-1:-1:-1;11124:26:0;;;;;;;;;;;;-1:-1:-1;;;11124:26:0;;;;11058:100;;;;;;;:::i;:::-;;;;;;;;4411;;;;;;;;;;;;;:::i;5325:169::-;;;;;;;;;;-1:-1:-1;5325:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5325:169:0;1023:187:1;8794:29:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;8794:29:0;1215:177:1;8581:41:0;;;;;;;;;;-1:-1:-1;8581:41:0;;;;-1:-1:-1;;;;;8581:41:0;;;;;;-1:-1:-1;;;;;1586:32:1;;;1568:51;;1556:2;1541:18;8581:41:0;1397:228:1;4732:108:0;;;;;;;;;;-1:-1:-1;4820:12:0;;4732:108;;5502:573;;;;;;;;;;-1:-1:-1;5502:573:0;;;;;:::i;:::-;;:::i;4631:93::-;;;;;;;;;;-1:-1:-1;4631:93:0;;4714:2;2233:36:1;;2221:2;2206:18;4631:93:0;2091:184:1;6083:215:0;;;;;;;;;;-1:-1:-1;6083:215:0;;;;;:::i;:::-;;:::i;8629:29::-;;;;;;;;;;-1:-1:-1;8629:29:0;;;;-1:-1:-1;;;;;8629:29:0;;;12279:26;;;;;;;;;;-1:-1:-1;12279:26:0;;;;;;;;;;;11774:125;;;;;;;;;;-1:-1:-1;11774:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;11863:28:0;11839:4;11863:28;;;:19;:28;;;;;;;;;11774:125;8760:25;;;;;;;;;;;;;;;;8942:26;;;;;;;;;;-1:-1:-1;8942:26:0;;;;;;;;;;;4848:127;;;;;;;;;;-1:-1:-1;4848:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4949:18:0;4922:7;4949:18;;;;;;;;;;;;4848:127;3600:148;;;;;;;;;;;;;:::i;:::-;;11961:256;;;;;;;;;;-1:-1:-1;11961:256:0;;;;;:::i;:::-;;:::i;12314:229::-;;;;;;;;;;;;;:::i;3386:79::-;;;;;;;;;;-1:-1:-1;3451:6:0;;-1:-1:-1;;;;;3451:6:0;3386:79;;4519:104;;;;;;;;;;;;;:::i;6306:413::-;;;;;;;;;;-1:-1:-1;6306:413:0;;;;;:::i;:::-;;:::i;4983:175::-;;;;;;;;;;-1:-1:-1;4983:175:0;;;;;:::i;:::-;;:::i;14121:366::-;;;;;;;;;;-1:-1:-1;14121:366:0;;;;;:::i;:::-;;:::i;8832:27::-;;;;;;;;;;-1:-1:-1;8832:27:0;;;;-1:-1:-1;;;;;8832:27:0;;;8729:24;;;;;;;;;;;;;;;;11581:185;;;;;;;;;;-1:-1:-1;11581:185:0;;;;;:::i;:::-;;:::i;5166:151::-;;;;;;;;;;-1:-1:-1;5166:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;5282:18:0;;;5255:7;5282:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5166:151;8868:34;;;;;;;;;;;;;;;;3756:244;;;;;;;;;;-1:-1:-1;3756:244:0;;;;;:::i;:::-;;:::i;11166:407::-;;;;;;;;;;-1:-1:-1;11166:407:0;;;;;:::i;:::-;;:::i;4411:100::-;4465:13;4498:5;4491:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4411:100;:::o;5325:169::-;5408:4;5425:39;2789:10;5448:7;5457:6;5425:8;:39::i;:::-;-1:-1:-1;5482:4:0;5325:169;;;;;:::o;5502:573::-;-1:-1:-1;;;;;5686:19:0;;5642:4;5686:19;;;:11;:19;;;;;;;;2789:10;5686:33;;;;;;;;-1:-1:-1;;5734:37:0;;5730:265;;5816:6;5796:16;:26;;5788:79;;;;-1:-1:-1;;;5788:79:0;;4544:2:1;5788:79:0;;;4526:21:1;4583:2;4563:18;;;4556:30;4622:34;4602:18;;;4595:62;-1:-1:-1;;;4673:18:1;;;4666:38;4721:19;;5788:79:0;;;;;;;;;5911:57;5920:6;2789:10;5961:6;5942:16;:25;5911:8;:57::i;:::-;6007:36;6017:6;6025:9;6036:6;6007:9;:36::i;:::-;-1:-1:-1;6063:4:0;;5502:573;-1:-1:-1;;;;5502:573:0:o;6083:215::-;2789:10;6171:4;6220:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6220:34:0;;;;;;;;;;6171:4;;6188:80;;6211:7;;6220:47;;6257:10;;6220:47;:::i;:::-;6188:8;:80::i;3600:148::-;3513:6;;-1:-1:-1;;;;;3513:6:0;2789:10;3513:22;3505:67;;;;-1:-1:-1;;;3505:67:0;;;;;;;:::i;:::-;3691:6:::1;::::0;3670:40:::1;::::0;3707:1:::1;::::0;-1:-1:-1;;;;;3691:6:0::1;::::0;3670:40:::1;::::0;3707:1;;3670:40:::1;3721:6;:19:::0;;-1:-1:-1;;;;;;3721:19:0::1;::::0;;3600:148::o;11961:256::-;3513:6;;-1:-1:-1;;;;;3513:6:0;2789:10;3513:22;3505:67;;;;-1:-1:-1;;;3505:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12047:26:0;::::1;12039:84;;;::::0;-1:-1:-1;;;12039:84:0;;5576:2:1;12039:84:0::1;::::0;::::1;5558:21:1::0;5615:2;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;-1:-1:-1;;;5705:18:1;;;5698:43;5758:19;;12039:84:0::1;5374:409:1::0;12039:84:0::1;12134:11;:26:::0;;-1:-1:-1;;;;;;12134:26:0::1;-1:-1:-1::0;;;;;12134:26:0;::::1;::::0;;::::1;::::0;;;12178:31:::1;::::0;1568:51:1;;;12178:31:0::1;::::0;1556:2:1;1541:18;12178:31:0::1;;;;;;;11961:256:::0;:::o;12314:229::-;3513:6;;-1:-1:-1;;;;;3513:6:0;2789:10;3513:22;3505:67;;;;-1:-1:-1;;;3505:67:0;;;;;;;:::i;:::-;12377:14:::1;::::0;;;::::1;;;12376:15;12368:58;;;::::0;-1:-1:-1;;;12368:58:0;;5990:2:1;12368:58:0::1;::::0;::::1;5972:21:1::0;6029:2;6009:18;;;6002:30;6068:32;6048:18;;;6041:60;6118:18;;12368:58:0::1;5788:354:1::0;12368:58:0::1;12437:14;:21:::0;;12469:18;-1:-1:-1;;12469:18:0;;;;;;;;12505:30:::1;::::0;12437:21;12520:14;;::::1;12437:21;12520:14;1188::1::0;1181:22;1163:41;;12505:30:0::1;::::0;1151:2:1;1136:18;12505:30:0::1;;;;;;;12314:229::o:0;4519:104::-;4575:13;4608:7;4601:14;;;;;:::i;6306:413::-;2789:10;6399:4;6443:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6443:34:0;;;;;;;;;;6496:35;;;;6488:85;;;;-1:-1:-1;;;6488:85:0;;6349:2:1;6488:85:0;;;6331:21:1;6388:2;6368:18;;;6361:30;6427:34;6407:18;;;6400:62;-1:-1:-1;;;6478:18:1;;;6471:35;6523:19;;6488:85:0;6147:401:1;6488:85:0;6609:67;2789:10;6632:7;6660:15;6641:16;:34;6609:8;:67::i;:::-;-1:-1:-1;6707:4:0;;6306:413;-1:-1:-1;;;6306:413:0:o;4983:175::-;5069:4;5086:42;2789:10;5110:9;5121:6;5086:9;:42::i;14121:366::-;3513:6;;-1:-1:-1;;;;;3513:6:0;2789:10;3513:22;3505:67;;;;-1:-1:-1;;;3505:67:0;;;;;;;:::i;:::-;14255:9:::1;14239:13;4820:12:::0;;;4732:108;14239:13:::1;:25;;;;:::i;:::-;14227:9;:37;14219:119;;;::::0;-1:-1:-1;;;14219:119:0;;6977:2:1;14219:119:0::1;::::0;::::1;6959:21:1::0;7016:2;6996:18;;;6989:30;7055:34;7035:18;;;7028:62;7126:34;7106:18;;;7099:62;-1:-1:-1;;;7177:19:1;;;7170:36;7223:19;;14219:119:0::1;6775:473:1::0;14219:119:0::1;14349:18;:30:::0;;;14390:11:::1;:26:::0;;-1:-1:-1;;14390:26:0::1;;::::0;::::1;;;;::::0;;14434:45:::1;::::0;1361:25:1;;;14434:45:0::1;::::0;1349:2:1;1334:18;14434:45:0::1;;;;;;;14121:366:::0;;:::o;11581:185::-;3513:6;;-1:-1:-1;;;;;3513:6:0;2789:10;3513:22;3505:67;;;;-1:-1:-1;;;3505:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11667:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;11667:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11724:34;;1163:41:1;;;11724:34:0::1;::::0;1136:18:1;11724:34:0::1;;;;;;;11581:185:::0;;:::o;3756:244::-;3513:6;;-1:-1:-1;;;;;3513:6:0;2789:10;3513:22;3505:67;;;;-1:-1:-1;;;3505:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3845:22:0;::::1;3837:73;;;::::0;-1:-1:-1;;;3837:73:0;;7455:2:1;3837:73:0::1;::::0;::::1;7437:21:1::0;7494:2;7474:18;;;7467:30;7533:34;7513:18;;;7506:62;-1:-1:-1;;;7584:18:1;;;7577:36;7630:19;;3837:73:0::1;7253:402:1::0;3837:73:0::1;3947:6;::::0;3926:38:::1;::::0;-1:-1:-1;;;;;3926:38:0;;::::1;::::0;3947:6:::1;::::0;3926:38:::1;::::0;3947:6:::1;::::0;3926:38:::1;3975:6;:17:::0;;-1:-1:-1;;;;;;3975:17:0::1;-1:-1:-1::0;;;;;3975:17:0;;;::::1;::::0;;;::::1;::::0;;3756:244::o;11166:407::-;3513:6;;-1:-1:-1;;;;;3513:6:0;2789:10;3513:22;3505:67;;;;-1:-1:-1;;;3505:67:0;;;;;;;:::i;:::-;11262:4:::1;-1:-1:-1::0;;;;;11245:22:0;::::1;::::0;11237:96:::1;;;::::0;-1:-1:-1;;;11237:96:0;;7862:2:1;11237:96:0::1;::::0;::::1;7844:21:1::0;7901:2;7881:18;;;7874:30;7940:34;7920:18;;;7913:62;8011:31;7991:18;;;7984:59;8060:19;;11237:96:0::1;7660:425:1::0;11237:96:0::1;-1:-1:-1::0;;;;;11348:21:0;::::1;11344:127;;11386:52;11394:10;11416:21;11386:29;:52::i;:::-;;11166:407:::0;:::o;11344:127::-:1;11526:38;::::0;-1:-1:-1;;;11526:38:0;;11558:4:::1;11526:38;::::0;::::1;1568:51:1::0;-1:-1:-1;;;;;11491:22:0;::::1;::::0;::::1;::::0;11514:10:::1;::::0;11491:22;;11526:23:::1;::::0;1541:18:1;;11526:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11491:74;::::0;-1:-1:-1;;;;;;11491:74:0::1;::::0;;;;;;-1:-1:-1;;;;;8471:32:1;;;11491:74:0::1;::::0;::::1;8453:51:1::0;8520:18;;;8513:34;8426:18;;11491:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3583:1::-;11166:407:::0;:::o;8113:380::-;-1:-1:-1;;;;;8249:19:0;;8241:68;;;;-1:-1:-1;;;8241:68:0;;9010:2:1;8241:68:0;;;8992:21:1;9049:2;9029:18;;;9022:30;9088:34;9068:18;;;9061:62;-1:-1:-1;;;9139:18:1;;;9132:34;9183:19;;8241:68:0;8808:400:1;8241:68:0;-1:-1:-1;;;;;8328:21:0;;8320:68;;;;-1:-1:-1;;;8320:68:0;;9415:2:1;8320:68:0;;;9397:21:1;9454:2;9434:18;;;9427:30;9493:34;9473:18;;;9466:62;-1:-1:-1;;;9544:18:1;;;9537:32;9586:19;;8320:68:0;9213:398:1;8320:68:0;-1:-1:-1;;;;;8401:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8453:32;;1361:25:1;;;8453:32:0;;1334:18:1;8453:32:0;;;;;;;8113:380;;;:::o;12551:1562::-;-1:-1:-1;;;;;12648:18:0;;12640:67;;;;-1:-1:-1;;;12640:67:0;;9818:2:1;12640:67:0;;;9800:21:1;9857:2;9837:18;;;9830:30;9896:34;9876:18;;;9869:62;-1:-1:-1;;;9947:18:1;;;9940:34;9991:19;;12640:67:0;9616:400:1;12640:67:0;-1:-1:-1;;;;;12726:16:0;;12718:63;;;;-1:-1:-1;;;12718:63:0;;10223:2:1;12718:63:0;;;10205:21:1;10262:2;10242:18;;;10235:30;10301:34;10281:18;;;10274:62;-1:-1:-1;;;10352:18:1;;;10345:32;10394:19;;12718:63:0;10021:398:1;12718:63:0;12800:14;;;;;;;;:43;;-1:-1:-1;;;;;;12818:25:0;;;;;;:19;:25;;;;;;;;12800:43;:70;;;-1:-1:-1;;;;;;12847:23:0;;;;;;:19;:23;;;;;;;;12800:70;12792:113;;;;-1:-1:-1;;;12792:113:0;;10626:2:1;12792:113:0;;;10608:21:1;10665:2;10645:18;;;10638:30;10704:32;10684:18;;;10677:60;10754:18;;12792:113:0;10424:354:1;12792:113:0;12929:6;12939:1;12929:11;12925:93;;12957:28;12973:4;12979:2;12983:1;12957:15;:28::i;:::-;12551:1562;;;:::o;12925:93::-;13073:4;13024:28;4949:18;;;;;;;;;;;13131;;13107:42;;;;;;;13166:33;;-1:-1:-1;13191:8:0;;;;13190:9;13166:33;:69;;;;-1:-1:-1;13222:13:0;;-1:-1:-1;;;;;13216:19:0;;;13222:13;;13216:19;13166:69;:110;;;;;13275:1;13263:9;;13252:8;;:20;;;;:::i;:::-;:24;13166:110;:153;;;;-1:-1:-1;;;;;;13294:25:0;;;;;;:19;:25;;;;;;;;13293:26;13166:153;:181;;;;-1:-1:-1;13336:11:0;;;;;;;13166:181;13162:330;;;13374:8;:15;;-1:-1:-1;;13374:15:0;13385:4;13374:15;;;13406:36;13421:20;13406:14;:36::i;:::-;13464:8;:16;;-1:-1:-1;;13464:16:0;;;13162:330;-1:-1:-1;;;;;13537:25:0;;13504:18;13537:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13566:23:0;;;;;;:19;:23;;;;;;;;13537:52;:64;;;-1:-1:-1;13593:8:0;;;;13537:64;13533:332;;;-1:-1:-1;13631:1:0;13533:332;;;13662:13;;-1:-1:-1;;;;;13662:13:0;;;13654:21;;;;13650:215;;-1:-1:-1;13705:8:0;;13650:215;;;13741:13;;-1:-1:-1;;;;;13741:13:0;;;13735:19;;;;13731:134;;-1:-1:-1;13785:9:0;;13731:134;;;-1:-1:-1;13840:13:0;;13731:134;13881:14;;13877:183;;13912:12;13951:3;13928:19;13937:10;13928:6;:19;:::i;:::-;13927:27;;;;:::i;:::-;13912:42;-1:-1:-1;13978:13:0;13912:42;13978:6;:13;:::i;:::-;13969:22;;14006:42;14022:4;14036;14043;14006:15;:42::i;:::-;13897:163;13877:183;14072:33;14088:4;14094:2;14098:6;14072:15;:33::i;:::-;12629:1484;;;12551:1562;;;:::o;2384:285::-;2463:4;2512:6;2487:21;:31;;2479:73;;;;-1:-1:-1;;;2479:73:0;;11291:2:1;2479:73:0;;;11273:21:1;11330:2;11310:18;;;11303:30;11369:31;11349:18;;;11342:59;11418:18;;2479:73:0;11089:353:1;2479:73:0;2566:12;2584:9;-1:-1:-1;;;;;2584:14:0;2606:6;2584:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2565:52:0;;2384:285;-1:-1:-1;;;;;2384:285:0:o;6727:614::-;-1:-1:-1;;;;;6867:20:0;;6859:70;;;;-1:-1:-1;;;6859:70:0;;11859:2:1;6859:70:0;;;11841:21:1;11898:2;11878:18;;;11871:30;11937:34;11917:18;;;11910:62;-1:-1:-1;;;11988:18:1;;;11981:35;12033:19;;6859:70:0;11657:401:1;6859:70:0;-1:-1:-1;;;;;6948:23:0;;6940:71;;;;-1:-1:-1;;;6940:71:0;;12265:2:1;6940:71:0;;;12247:21:1;12304:2;12284:18;;;12277:30;12343:34;12323:18;;;12316:62;-1:-1:-1;;;12394:18:1;;;12387:33;12437:19;;6940:71:0;12063:399:1;6940:71:0;-1:-1:-1;;;;;7048:17:0;;7024:21;7048:17;;;;;;;;;;;7084:23;;;;7076:74;;;;-1:-1:-1;;;7076:74:0;;12669:2:1;7076:74:0;;;12651:21:1;12708:2;12688:18;;;12681:30;12747:34;12727:18;;;12720:62;-1:-1:-1;;;12798:18:1;;;12791:36;12844:19;;7076:74:0;12467:402:1;7076:74:0;-1:-1:-1;;;;;7186:17:0;;;:9;:17;;;;;;;;;;;7206:22;;;7186:42;;7250:20;;;;;;;;:30;;7222:6;;7186:9;7250:30;;7222:6;;7250:30;:::i;:::-;;;;;;;;7315:9;-1:-1:-1;;;;;7298:35:0;7307:6;-1:-1:-1;;;;;7298:35:0;;7326:6;7298:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;7298:35:0;;;;;;;;6848:493;6727:614;;;:::o;14495:687::-;14642:16;;;14656:1;14642:16;;;;;;;;14584:21;;14559:22;;14642:16;14656:1;14642:16;;;;;;;;;;-1:-1:-1;14642:16:0;14618:40;;14687:4;14669;14674:1;14669:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14669:23:0;;;:7;;;;;;;;;;:23;;;;14713:15;;:22;;;-1:-1:-1;;;14713:22:0;;;;:15;;;;;:20;;:22;;;;;14669:7;;14713:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14703:4;14708:1;14703:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14703:32:0;;;:7;;;;;;;;;:32;14752:15;;:196;;-1:-1:-1;;;14752:196:0;;:15;;;:66;;:196;;14833:11;;14752:15;;14875:4;;14902;;14922:15;;14752:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14748:243;;14973:7;;14495:687;:::o;14748:243::-;15003:18;15024:38;15048:14;15024:21;:38;:::i;:::-;15083:11;;15003:59;;-1:-1:-1;15075:42:0;;-1:-1:-1;;;;;15083:11:0;15003:59;15075:30;:42::i;:::-;-1:-1:-1;15135:39:0;;;14553:25:1;;;14609:2;14594:18;;14587:34;;;15135:39:0;;14526:18:1;15135:39:0;;;;;;;14548:634;;;14495:687;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2488:247::-;2547:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:52;;;2616:1;2613;2606:12;2568:52;2655:9;2642:23;2674:31;2699:5;2674:31;:::i;:::-;2724:5;2488:247;-1:-1:-1;;;2488:247:1:o;2740:118::-;2826:5;2819:13;2812:21;2805:5;2802:32;2792:60;;2848:1;2845;2838:12;2863:309;2928:6;2936;2989:2;2977:9;2968:7;2964:23;2960:32;2957:52;;;3005:1;3002;2995:12;2957:52;3041:9;3028:23;3018:33;;3101:2;3090:9;3086:18;3073:32;3114:28;3136:5;3114:28;:::i;:::-;3161:5;3151:15;;;2863:309;;;;;:::o;3177:382::-;3242:6;3250;3303:2;3291:9;3282:7;3278:23;3274:32;3271:52;;;3319:1;3316;3309:12;3271:52;3358:9;3345:23;3377:31;3402:5;3377:31;:::i;:::-;3427:5;-1:-1:-1;3484:2:1;3469:18;;3456:32;3497:30;3456:32;3497:30;:::i;3564:388::-;3632:6;3640;3693:2;3681:9;3672:7;3668:23;3664:32;3661:52;;;3709:1;3706;3699:12;3661:52;3748:9;3735:23;3767:31;3792:5;3767:31;:::i;:::-;3817:5;-1:-1:-1;3874:2:1;3859:18;;3846:32;3887:33;3846:32;3887:33;:::i;3957:380::-;4036:1;4032:12;;;;4079;;;4100:61;;4154:4;4146:6;4142:17;4132:27;;4100:61;4207:2;4199:6;4196:14;4176:18;4173:38;4170:161;;4253:10;4248:3;4244:20;4241:1;4234:31;4288:4;4285:1;4278:15;4316:4;4313:1;4306:15;4170:161;;3957:380;;;:::o;4751:127::-;4812:10;4807:3;4803:20;4800:1;4793:31;4843:4;4840:1;4833:15;4867:4;4864:1;4857:15;4883:125;4948:9;;;4969:10;;;4966:36;;;4982:18;;:::i;5013:356::-;5215:2;5197:21;;;5234:18;;;5227:30;5293:34;5288:2;5273:18;;5266:62;5360:2;5345:18;;5013:356::o;6553:217::-;6593:1;6619;6609:132;;6663:10;6658:3;6654:20;6651:1;6644:31;6698:4;6695:1;6688:15;6726:4;6723:1;6716:15;6609:132;-1:-1:-1;6755:9:1;;6553:217::o;8090:184::-;8160:6;8213:2;8201:9;8192:7;8188:23;8184:32;8181:52;;;8229:1;8226;8219:12;8181:52;-1:-1:-1;8252:16:1;;8090:184;-1:-1:-1;8090:184:1:o;8558:245::-;8625:6;8678:2;8666:9;8657:7;8653:23;8649:32;8646:52;;;8694:1;8691;8684:12;8646:52;8726:9;8720:16;8745:28;8767:5;8745:28;:::i;10783:168::-;10856:9;;;10887;;10904:15;;;10898:22;;10884:37;10874:71;;10925:18;;:::i;10956:128::-;11023:9;;;11044:11;;;11041:37;;;11058:18;;:::i;13006:127::-;13067:10;13062:3;13058:20;13055:1;13048:31;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13138:251;13208:6;13261:2;13249:9;13240:7;13236:23;13232:32;13229:52;;;13277:1;13274;13267:12;13229:52;13309:9;13303:16;13328:31;13353:5;13328:31;:::i;13394:980::-;13656:4;13704:3;13693:9;13689:19;13735:6;13724:9;13717:25;13761:2;13799:6;13794:2;13783:9;13779:18;13772:34;13842:3;13837:2;13826:9;13822:18;13815:31;13866:6;13901;13895:13;13932:6;13924;13917:22;13970:3;13959:9;13955:19;13948:26;;14009:2;14001:6;13997:15;13983:29;;14030:1;14040:195;14054:6;14051:1;14048:13;14040:195;;;14119:13;;-1:-1:-1;;;;;14115:39:1;14103:52;;14210:15;;;;14175:12;;;;14151:1;14069:9;14040:195;;;-1:-1:-1;;;;;;;14291:32:1;;;;14286:2;14271:18;;14264:60;-1:-1:-1;;;14355:3:1;14340:19;14333:35;14252:3;13394:980;-1:-1:-1;;;13394:980:1:o

Swarm Source

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