ETH Price: $2,648.77 (+0.47%)

Token

LOVEEARTH COIN (LEC)
 

Overview

Max Total Supply

1,000,000,000 LEC

Holders

4,728

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
600 LEC

Value
$0.00
0x4bfaf354aabe1748b1fe9125b6680f26cfe1c7a3
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:
LoveEarthToken

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-29
*/

pragma solidity ^0.8.0;

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

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

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

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

    /**
     * @dev Returns the bep token owner.
     */
    function getOwner() external view returns (address);

    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @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 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 GSN 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.
 */
contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor ()  {}

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

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

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

/**
 * @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.
 */
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 ()  {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        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 onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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 onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


contract LoveEarthToken is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    uint8 private _decimals;
    string private _symbol;
    string private _name;

    mapping(address => bool)private _isExist;
    uint256 private addressNumber;

    address public publicWelfareFund = address(0);
    address public publicWareHouse = address(0);
    address public uniSwap = address(0);
  
    

    constructor()  {
        _name = "LOVEEARTH COIN";
        _symbol = "LEC";
        _totalSupply = 1000000000 * 10 ** 18;
        _decimals = 18;
        _balances[msg.sender] = _totalSupply;
        _isExist[msg.sender] = true;
        addressNumber = addressNumber.add(1);
        
        // IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x05fF2B0DB69458A0750badebc4f9e13aDd608C7F);
         // Create a uniswap pair for this new token
        // uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            // .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        // uniswapV2Router = _uniswapV2Router;
        
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function setPublicWelfareFund(address _publicWelfareFund) external onlyOwner {
        require(address(_publicWelfareFund) != address(0),"_publicWelfareFund is zero value!");
        publicWelfareFund = _publicWelfareFund;
    }

    function setPublicWareHouse(address _publicWareHouse) external onlyOwner {
        require(address(_publicWareHouse) != address(0),"_publicWareHouse is zero value!");
        publicWareHouse = _publicWareHouse;
    }

    function setUniSwap(address _uniSwap) external onlyOwner {
        require(address(_uniSwap) != address(0),"_uniSwap is zero value!");
        uniSwap = _uniSwap;
    }

    function transferToPublicWelfareFund() external onlyOwner returns (bool){
        return transfer(publicWelfareFund, _totalSupply.mul(50).div(100));
    }

    function transferToPublicWareHouse() external onlyOwner returns (bool){
        return transfer(publicWareHouse, _totalSupply.mul(10).div(100));
    }

    function transferToUniSwap() external onlyOwner returns (bool){
        return transfer(uniSwap, _totalSupply.mul(40).div(100));
    }

    function upDateIsExist(address account, bool isexist) public onlyOwner {
        if (_isExist[account]) {
            require(!isexist, "this account is exist!");
            _isExist[account] = isexist;
            addressNumber = addressNumber.sub(1);
        } else {
            require(isexist, "this account is not exist!");
            _isExist[account] = isexist;
            addressNumber = addressNumber.add(1);
        }
    }

    function upDateAddressNumber(uint256 _number) public onlyOwner {
        addressNumber = _number;
    }

    function getAddressNumber() public view returns (uint256){
        return addressNumber;
    }

    function _calaAddressNumber(address account) internal {
        if (_balances[account] < 1 * 10 ** 18) {
            if (_isExist[account]) {
                _isExist[account] = false;
                addressNumber = addressNumber.sub(1);
            }
        } else {
            if (!_isExist[account]) {
                _isExist[account] = true;
                addressNumber = addressNumber.add(1);
            }
        }
    }

    /**
     * @dev Returns the bep token owner.
     */
    function getOwner() external override view returns (address) {
        return owner();
    }

    /**
     * @dev Returns the token decimals.
     */
    function decimals() external override view returns (uint8) {
        return _decimals;
    }

    /**
     * @dev Returns the token symbol.
     */
    function symbol() external override view returns (string memory) {
        return _symbol;
    }

    /**
    * @dev Returns the token name.
    */
    function name() external override view returns (string memory) {
        return _name;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() external override view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) external override view returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) external override view returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {IERC20};
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for `sender`'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "IERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "IERC20: transfer from the zero address");
        require(recipient != address(0), "IERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "IERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);

        _calaAddressNumber(sender);
        _calaAddressNumber(recipient);

        emit Transfer(sender, recipient, amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    //   function addLiquidityETH(uint256 tokenAmount) external payable {
    //     // approve token transfer to cover all possible scenarios
    //     _approve(address(this), address(uniswapV2Router), tokenAmount);

    //     // add the liquidity
    //     uniswapV2Router.addLiquidityETH{value: msg.value}(
    //         address(this),
    //         tokenAmount,
    //         0, // slippage is unavoidable
    //         0, // slippage is unavoidable
    //         msg.sender,
    //         block.timestamp
    //     );
    // }
     
     
    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "IERC20: approve from the zero address");
        require(spender != address(0), "IERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

}

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"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"publicWareHouse","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicWelfareFund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_publicWareHouse","type":"address"}],"name":"setPublicWareHouse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_publicWelfareFund","type":"address"}],"name":"setPublicWelfareFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniSwap","type":"address"}],"name":"setUniSwap","outputs":[],"stateMutability":"nonpayable","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":[{"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":"transferToPublicWareHouse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferToPublicWelfareFund","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferToUniSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniSwap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"name":"upDateAddressNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isexist","type":"bool"}],"name":"upDateIsExist","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600980546001600160a01b0319908116909155600a805482169055600b805490911690553480156200003557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600e8082526d2627ab22a2a0a92a241021a7a4a760911b6020909201918252620000ae91600691620001f1565b50604080518082019091526003808252624c454360e81b6020909201918252620000db91600591620001f1565b506b033b2e3c9fd0803ce800000060038190556004805460ff19908116601217909155336000908152600160208181526040808420959095556007815293909120805490921681179091556008546200014092909190620009b862000184821b17901c565b60085560035460405190815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620002fb565b60008062000193838562000297565b905083811015620001ea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b9392505050565b828054620001ff90620002be565b90600052602060002090601f0160209004810192826200022357600085556200026e565b82601f106200023e57805160ff19168380011785556200026e565b828001600101855582156200026e579182015b828111156200026e57825182559160200191906001019062000251565b506200027c92915062000280565b5090565b5b808211156200027c576000815560010162000281565b60008219821115620002b957634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002d357607f821691505b60208210811415620002f557634e487b7160e01b600052602260045260246000fd5b50919050565b6112d9806200030b6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806376744321116100de578063bd06aff511610097578063eab4ea7111610071578063eab4ea711461032d578063eb052e2614610335578063f2fde38b14610348578063fc3168dd1461035b57600080fd5b8063bd06aff5146102d9578063dd62ed3e146102e1578063e317e78b1461031a57600080fd5b80637674432114610292578063893d20e81461029a5780638da5cb5b1461029a57806395d89b41146102ab578063a9059cbb146102b3578063aa396b36146102c657600080fd5b80633168234c116101305780633168234c146101fb57806356210a6514610210578063610abd66146102235780636541749c1461024e57806370a0823114610261578063715018a61461028a57600080fd5b806306fdde0314610178578063095ea7b31461019657806318160ddd146101b957806318aaf756146101cb57806323b872dd146101d3578063313ce567146101e6575b600080fd5b61018061036e565b60405161018d9190611108565b60405180910390f35b6101a96101a43660046110c5565b610400565b604051901515815260200161018d565b6003545b60405190815260200161018d565b6101a9610417565b6101a96101e136600461104d565b61047c565b60045460405160ff909116815260200161018d565b61020e610209366004610fff565b6104e5565b005b61020e61021e366004610fff565b610587565b600a54610236906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b61020e61025c366004611089565b610633565b6101bd61026f366004610fff565b6001600160a01b031660009081526001602052604090205490565b61020e61077d565b6101a96107f1565b6000546001600160a01b0316610236565b610180610844565b6101a96102c13660046110c5565b610853565b600b54610236906001600160a01b031681565b6008546101bd565b6101bd6102ef36600461101a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61020e6103283660046110ef565b610860565b6101a961088f565b600954610236906001600160a01b031681565b61020e610356366004610fff565b6108e0565b61020e610369366004610fff565b610916565b60606006805461037d90611202565b80601f01602080910402602001604051908101604052809291908181526020018280546103a990611202565b80156103f65780601f106103cb576101008083540402835291602001916103f6565b820191906000526020600020905b8154815290600101906020018083116103d957829003601f168201915b5050505050905090565b600061040d338484610a1e565b5060015b92915050565b600080546001600160a01b0316331461044b5760405162461bcd60e51b81526004016104429061115d565b60405180910390fd5b600b54600354610477916001600160a01b0316906102c190606490610471906028610b46565b90610bc5565b905090565b6000610489848484610c07565b6104db84336104d68560405180606001604052806029815260200161127b602991396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610daa565b610a1e565b5060019392505050565b6000546001600160a01b0316331461050f5760405162461bcd60e51b81526004016104429061115d565b6001600160a01b0381166105655760405162461bcd60e51b815260206004820152601f60248201527f5f7075626c696357617265486f757365206973207a65726f2076616c756521006044820152606401610442565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146105b15760405162461bcd60e51b81526004016104429061115d565b6001600160a01b0381166106115760405162461bcd60e51b815260206004820152602160248201527f5f7075626c696357656c6661726546756e64206973207a65726f2076616c75656044820152602160f81b6064820152608401610442565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461065d5760405162461bcd60e51b81526004016104429061115d565b6001600160a01b03821660009081526007602052604090205460ff16156106fe5780156106c55760405162461bcd60e51b815260206004820152601660248201527574686973206163636f756e742069732065786973742160501b6044820152606401610442565b6001600160a01b0382166000908152600760205260409020805460ff19168215151790556008546106f7906001610de4565b6008555050565b8061074b5760405162461bcd60e51b815260206004820152601a60248201527f74686973206163636f756e74206973206e6f74206578697374210000000000006044820152606401610442565b6001600160a01b0382166000908152600760205260409020805460ff19168215151790556008546106f79060016109b8565b6000546001600160a01b031633146107a75760405162461bcd60e51b81526004016104429061115d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b0316331461081c5760405162461bcd60e51b81526004016104429061115d565b600a8054600354610477926001600160a01b03909216916102c1916064916104719190610b46565b60606005805461037d90611202565b600061040d338484610c07565b6000546001600160a01b0316331461088a5760405162461bcd60e51b81526004016104429061115d565b600855565b600080546001600160a01b031633146108ba5760405162461bcd60e51b81526004016104429061115d565b600954600354610477916001600160a01b0316906102c190606490610471906032610b46565b6000546001600160a01b0316331461090a5760405162461bcd60e51b81526004016104429061115d565b61091381610e26565b50565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016104429061115d565b6001600160a01b0381166109965760405162461bcd60e51b815260206004820152601760248201527f5f756e6953776170206973207a65726f2076616c7565210000000000000000006044820152606401610442565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806109c58385611192565b905083811015610a175760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610442565b9392505050565b6001600160a01b038316610a825760405162461bcd60e51b815260206004820152602560248201527f4945524332303a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610442565b6001600160a01b038216610ae45760405162461bcd60e51b815260206004820152602360248201527f4945524332303a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610442565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600082610b5557506000610411565b6000610b6183856111cc565b905082610b6e85836111aa565b14610a175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610442565b6000610a1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ee6565b6001600160a01b038316610c6c5760405162461bcd60e51b815260206004820152602660248201527f4945524332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610442565b6001600160a01b038216610cce5760405162461bcd60e51b8152602060048201526024808201527f4945524332303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610442565b610d0b81604051806060016040528060278152602001611254602791396001600160a01b0386166000908152600160205260409020549190610daa565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610d3a90826109b8565b6001600160a01b038316600090815260016020526040902055610d5c83610f14565b610d6582610f14565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b3991815260200190565b60008184841115610dce5760405162461bcd60e51b81526004016104429190611108565b506000610ddb84866111eb565b95945050505050565b6000610a1783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610daa565b6001600160a01b038116610e8b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610442565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008183610f075760405162461bcd60e51b81526004016104429190611108565b506000610ddb84866111aa565b6001600160a01b038116600090815260016020526040902054670de0b6b3a76400001115610f91576001600160a01b03811660009081526007602052604090205460ff1615610913576001600160a01b0381166000908152600760205260409020805460ff19169055600854610f8b906001610de4565b60085550565b6001600160a01b03811660009081526007602052604090205460ff16610913576001600160a01b0381166000908152600760205260409020805460ff19166001908117909155600854610f8b916109b8565b80356001600160a01b0381168114610ffa57600080fd5b919050565b60006020828403121561101157600080fd5b610a1782610fe3565b6000806040838503121561102d57600080fd5b61103683610fe3565b915061104460208401610fe3565b90509250929050565b60008060006060848603121561106257600080fd5b61106b84610fe3565b925061107960208501610fe3565b9150604084013590509250925092565b6000806040838503121561109c57600080fd5b6110a583610fe3565b9150602083013580151581146110ba57600080fd5b809150509250929050565b600080604083850312156110d857600080fd5b6110e183610fe3565b946020939093013593505050565b60006020828403121561110157600080fd5b5035919050565b600060208083528351808285015260005b8181101561113557858101830151858201604001528201611119565b81811115611147576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156111a5576111a561123d565b500190565b6000826111c757634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156111e6576111e661123d565b500290565b6000828210156111fd576111fd61123d565b500390565b600181811c9082168061121657607f821691505b6020821081141561123757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfe4945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654945524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220acdf6321941dee1b17c6b050d249ee851d9ff8aff9d1741d567830f5ddeb66f964736f6c63430008060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c806376744321116100de578063bd06aff511610097578063eab4ea7111610071578063eab4ea711461032d578063eb052e2614610335578063f2fde38b14610348578063fc3168dd1461035b57600080fd5b8063bd06aff5146102d9578063dd62ed3e146102e1578063e317e78b1461031a57600080fd5b80637674432114610292578063893d20e81461029a5780638da5cb5b1461029a57806395d89b41146102ab578063a9059cbb146102b3578063aa396b36146102c657600080fd5b80633168234c116101305780633168234c146101fb57806356210a6514610210578063610abd66146102235780636541749c1461024e57806370a0823114610261578063715018a61461028a57600080fd5b806306fdde0314610178578063095ea7b31461019657806318160ddd146101b957806318aaf756146101cb57806323b872dd146101d3578063313ce567146101e6575b600080fd5b61018061036e565b60405161018d9190611108565b60405180910390f35b6101a96101a43660046110c5565b610400565b604051901515815260200161018d565b6003545b60405190815260200161018d565b6101a9610417565b6101a96101e136600461104d565b61047c565b60045460405160ff909116815260200161018d565b61020e610209366004610fff565b6104e5565b005b61020e61021e366004610fff565b610587565b600a54610236906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b61020e61025c366004611089565b610633565b6101bd61026f366004610fff565b6001600160a01b031660009081526001602052604090205490565b61020e61077d565b6101a96107f1565b6000546001600160a01b0316610236565b610180610844565b6101a96102c13660046110c5565b610853565b600b54610236906001600160a01b031681565b6008546101bd565b6101bd6102ef36600461101a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61020e6103283660046110ef565b610860565b6101a961088f565b600954610236906001600160a01b031681565b61020e610356366004610fff565b6108e0565b61020e610369366004610fff565b610916565b60606006805461037d90611202565b80601f01602080910402602001604051908101604052809291908181526020018280546103a990611202565b80156103f65780601f106103cb576101008083540402835291602001916103f6565b820191906000526020600020905b8154815290600101906020018083116103d957829003601f168201915b5050505050905090565b600061040d338484610a1e565b5060015b92915050565b600080546001600160a01b0316331461044b5760405162461bcd60e51b81526004016104429061115d565b60405180910390fd5b600b54600354610477916001600160a01b0316906102c190606490610471906028610b46565b90610bc5565b905090565b6000610489848484610c07565b6104db84336104d68560405180606001604052806029815260200161127b602991396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610daa565b610a1e565b5060019392505050565b6000546001600160a01b0316331461050f5760405162461bcd60e51b81526004016104429061115d565b6001600160a01b0381166105655760405162461bcd60e51b815260206004820152601f60248201527f5f7075626c696357617265486f757365206973207a65726f2076616c756521006044820152606401610442565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146105b15760405162461bcd60e51b81526004016104429061115d565b6001600160a01b0381166106115760405162461bcd60e51b815260206004820152602160248201527f5f7075626c696357656c6661726546756e64206973207a65726f2076616c75656044820152602160f81b6064820152608401610442565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461065d5760405162461bcd60e51b81526004016104429061115d565b6001600160a01b03821660009081526007602052604090205460ff16156106fe5780156106c55760405162461bcd60e51b815260206004820152601660248201527574686973206163636f756e742069732065786973742160501b6044820152606401610442565b6001600160a01b0382166000908152600760205260409020805460ff19168215151790556008546106f7906001610de4565b6008555050565b8061074b5760405162461bcd60e51b815260206004820152601a60248201527f74686973206163636f756e74206973206e6f74206578697374210000000000006044820152606401610442565b6001600160a01b0382166000908152600760205260409020805460ff19168215151790556008546106f79060016109b8565b6000546001600160a01b031633146107a75760405162461bcd60e51b81526004016104429061115d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b0316331461081c5760405162461bcd60e51b81526004016104429061115d565b600a8054600354610477926001600160a01b03909216916102c1916064916104719190610b46565b60606005805461037d90611202565b600061040d338484610c07565b6000546001600160a01b0316331461088a5760405162461bcd60e51b81526004016104429061115d565b600855565b600080546001600160a01b031633146108ba5760405162461bcd60e51b81526004016104429061115d565b600954600354610477916001600160a01b0316906102c190606490610471906032610b46565b6000546001600160a01b0316331461090a5760405162461bcd60e51b81526004016104429061115d565b61091381610e26565b50565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016104429061115d565b6001600160a01b0381166109965760405162461bcd60e51b815260206004820152601760248201527f5f756e6953776170206973207a65726f2076616c7565210000000000000000006044820152606401610442565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806109c58385611192565b905083811015610a175760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610442565b9392505050565b6001600160a01b038316610a825760405162461bcd60e51b815260206004820152602560248201527f4945524332303a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610442565b6001600160a01b038216610ae45760405162461bcd60e51b815260206004820152602360248201527f4945524332303a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610442565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600082610b5557506000610411565b6000610b6183856111cc565b905082610b6e85836111aa565b14610a175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610442565b6000610a1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ee6565b6001600160a01b038316610c6c5760405162461bcd60e51b815260206004820152602660248201527f4945524332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610442565b6001600160a01b038216610cce5760405162461bcd60e51b8152602060048201526024808201527f4945524332303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610442565b610d0b81604051806060016040528060278152602001611254602791396001600160a01b0386166000908152600160205260409020549190610daa565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610d3a90826109b8565b6001600160a01b038316600090815260016020526040902055610d5c83610f14565b610d6582610f14565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b3991815260200190565b60008184841115610dce5760405162461bcd60e51b81526004016104429190611108565b506000610ddb84866111eb565b95945050505050565b6000610a1783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610daa565b6001600160a01b038116610e8b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610442565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008183610f075760405162461bcd60e51b81526004016104429190611108565b506000610ddb84866111aa565b6001600160a01b038116600090815260016020526040902054670de0b6b3a76400001115610f91576001600160a01b03811660009081526007602052604090205460ff1615610913576001600160a01b0381166000908152600760205260409020805460ff19169055600854610f8b906001610de4565b60085550565b6001600160a01b03811660009081526007602052604090205460ff16610913576001600160a01b0381166000908152600760205260409020805460ff19166001908117909155600854610f8b916109b8565b80356001600160a01b0381168114610ffa57600080fd5b919050565b60006020828403121561101157600080fd5b610a1782610fe3565b6000806040838503121561102d57600080fd5b61103683610fe3565b915061104460208401610fe3565b90509250929050565b60008060006060848603121561106257600080fd5b61106b84610fe3565b925061107960208501610fe3565b9150604084013590509250925092565b6000806040838503121561109c57600080fd5b6110a583610fe3565b9150602083013580151581146110ba57600080fd5b809150509250929050565b600080604083850312156110d857600080fd5b6110e183610fe3565b946020939093013593505050565b60006020828403121561110157600080fd5b5035919050565b600060208083528351808285015260005b8181101561113557858101830151858201604001528201611119565b81811115611147576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156111a5576111a561123d565b500190565b6000826111c757634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156111e6576111e661123d565b500290565b6000828210156111fd576111fd61123d565b500390565b600181811c9082168061121657607f821691505b6020821081141561123757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfe4945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654945524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220acdf6321941dee1b17c6b050d249ee851d9ff8aff9d1741d567830f5ddeb66f964736f6c63430008060033

Deployed Bytecode Sourcemap

11905:8685:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16058:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17238:163;;;;;;:::i;:::-;;:::i;:::-;;;2150:14:1;;2143:22;2125:41;;2113:2;2098:18;17238:163:0;2080:92:1;16217:102:0;16299:12;;16217:102;;;7893:25:1;;;7881:2;7866:18;16217:102:0;7848:76:1;14250:136:0;;;:::i;17874:316::-;;;;;;:::i;:::-;;:::i;15740:94::-;15817:9;;15740:94;;15817:9;;;;8071:36:1;;8059:2;8044:18;15740:94:0;8026:87:1;13520:219:0;;;;;;:::i;:::-;;:::i;:::-;;13281:231;;;;;;:::i;:::-;;:::i;12387:43::-;;;;;-1:-1:-1;;;;;12387:43:0;;;;;;-1:-1:-1;;;;;1941:32:1;;;1923:51;;1911:2;1896:18;12387:43:0;1878:102:1;14394:447:0;;;;;;:::i;:::-;;:::i;16382:121::-;;;;;;:::i;:::-;-1:-1:-1;;;;;16477:18:0;16450:7;16477:18;;;:9;:18;;;;;;;16382:121;11157:140;;;:::i;14090:152::-;;;:::i;15579:94::-;15631:7;10580:6;-1:-1:-1;;;;;10580:6:0;15579:94;14250:136;15899:98;;;:::i;16716:167::-;;;;;;:::i;:::-;;:::i;12437:35::-;;;;;-1:-1:-1;;;;;12437:35:0;;;14962:96;15037:13;;14962:96;;16946:145;;;;;;:::i;:::-;-1:-1:-1;;;;;17056:18:0;;;17029:7;17056:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16946:145;14849:105;;;;;;:::i;:::-;;:::i;13926:156::-;;;:::i;12335:45::-;;;;;-1:-1:-1;;;;;12335:45:0;;;11452:109;;;;;;:::i;:::-;;:::i;13747:171::-;;;;;;:::i;:::-;;:::i;16058:94::-;16106:13;16139:5;16132:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16058:94;:::o;17238:163::-;17315:4;17332:39;3944:10;17355:7;17364:6;17332:8;:39::i;:::-;-1:-1:-1;17389:4:0;17238:163;;;;;:::o;14250:136::-;14307:4;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;;;;;;;;;14339:7:::1;::::0;14348:12:::1;::::0;14330:48:::1;::::0;-1:-1:-1;;;;;14339:7:0::1;::::0;14348:29:::1;::::0;14373:3:::1;::::0;14348:20:::1;::::0;14365:2:::1;14348:16;:20::i;:::-;:24:::0;::::1;:29::i;14330:48::-;14323:55;;14250:136:::0;:::o;17874:316::-;17974:4;17991:36;18001:6;18009:9;18020:6;17991:9;:36::i;:::-;18038:122;18047:6;3944:10;18069:90;18107:6;18069:90;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18069:19:0;;;;;;:11;:19;;;;;;;;3944:10;18069:33;;;;;;;;;;:37;:90::i;:::-;18038:8;:122::i;:::-;-1:-1:-1;18178:4:0;17874:316;;;;;:::o;13520:219::-;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13612:39:0;::::1;13604:82;;;::::0;-1:-1:-1;;;13604:82:0;;7185:2:1;13604:82:0::1;::::0;::::1;7167:21:1::0;7224:2;7204:18;;;7197:30;7263:33;7243:18;;;7236:61;7314:18;;13604:82:0::1;7157:181:1::0;13604:82:0::1;13697:15;:34:::0;;-1:-1:-1;;;;;;13697:34:0::1;-1:-1:-1::0;;;;;13697:34:0;;;::::1;::::0;;;::::1;::::0;;13520:219::o;13281:231::-;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13377:41:0;::::1;13369:86;;;::::0;-1:-1:-1;;;13369:86:0;;4506:2:1;13369:86:0::1;::::0;::::1;4488:21:1::0;4545:2;4525:18;;;4518:30;4584:34;4564:18;;;4557:62;-1:-1:-1;;;4635:18:1;;;4628:31;4676:19;;13369:86:0::1;4478:223:1::0;13369:86:0::1;13466:17;:38:::0;;-1:-1:-1;;;;;;13466:38:0::1;-1:-1:-1::0;;;;;13466:38:0;;;::::1;::::0;;;::::1;::::0;;13281:231::o;14394:447::-;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14480:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;;::::1;;14476:358;;;14523:7;14522:8;14514:43;;;::::0;-1:-1:-1;;;14514:43:0;;6834:2:1;14514:43:0::1;::::0;::::1;6816:21:1::0;6873:2;6853:18;;;6846:30;-1:-1:-1;;;6892:18:1;;;6885:52;6954:18;;14514:43:0::1;6806:172:1::0;14514:43:0::1;-1:-1:-1::0;;;;;14572:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;:27;;-1:-1:-1;;14572:27:0::1;::::0;::::1;;;::::0;;14630:13:::1;::::0;:20:::1;::::0;-1:-1:-1;14630:17:0::1;:20::i;:::-;14614:13;:36:::0;14394:447;;:::o;14476:358::-:1;14691:7;14683:46;;;::::0;-1:-1:-1;;;14683:46:0;;4151:2:1;14683:46:0::1;::::0;::::1;4133:21:1::0;4190:2;4170:18;;;4163:30;4229:28;4209:18;;;4202:56;4275:18;;14683:46:0::1;4123:176:1::0;14683:46:0::1;-1:-1:-1::0;;;;;14744:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;:27;;-1:-1:-1;;14744:27:0::1;::::0;::::1;;;::::0;;14802:13:::1;::::0;:20:::1;::::0;-1:-1:-1;14802:17:0::1;:20::i;11157:140::-:0;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;11256:1:::1;11240:6:::0;;11219:40:::1;::::0;-1:-1:-1;;;;;11240:6:0;;::::1;::::0;11219:40:::1;::::0;11256:1;;11219:40:::1;11287:1;11270:19:::0;;-1:-1:-1;;;;;;11270:19:0::1;::::0;;11157:140::o;14090:152::-;14155:4;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;14187:15:::1;::::0;;14204:12:::1;::::0;14178:56:::1;::::0;-1:-1:-1;;;;;14187:15:0;;::::1;::::0;14204:29:::1;::::0;14229:3:::1;::::0;14204:20:::1;::::0;:12;:16:::1;:20::i;15899:98::-:0;15949:13;15982:7;15975:14;;;;;:::i;16716:167::-;16794:4;16811:42;3944:10;16835:9;16846:6;16811:9;:42::i;14849:105::-;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;14923:13:::1;:23:::0;14849:105::o;13926:156::-;13993:4;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;14025:17:::1;::::0;14044:12:::1;::::0;14016:58:::1;::::0;-1:-1:-1;;;;;14025:17:0::1;::::0;14044:29:::1;::::0;14069:3:::1;::::0;14044:20:::1;::::0;14061:2:::1;14044:16;:20::i;11452:109::-:0;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;11525:28:::1;11544:8;11525:18;:28::i;:::-;11452:109:::0;:::o;13747:171::-;10727:6;;-1:-1:-1;;;;;10727:6:0;3944:10;10727:22;10719:67;;;;-1:-1:-1;;;10719:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13823:31:0;::::1;13815:66;;;::::0;-1:-1:-1;;;13815:66:0;;5671:2:1;13815:66:0::1;::::0;::::1;5653:21:1::0;5710:2;5690:18;;;5683:30;5749:25;5729:18;;;5722:53;5792:18;;13815:66:0::1;5643:173:1::0;13815:66:0::1;13892:7;:18:::0;;-1:-1:-1;;;;;;13892:18:0::1;-1:-1:-1::0;;;;;13892:18:0;;;::::1;::::0;;;::::1;::::0;;13747:171::o;5044:181::-;5102:7;;5134:5;5138:1;5134;:5;:::i;:::-;5122:17;;5163:1;5158;:6;;5150:46;;;;-1:-1:-1;;;5150:46:0;;3795:2:1;5150:46:0;;;3777:21:1;3834:2;3814:18;;;3807:30;3873:29;3853:18;;;3846:57;3920:18;;5150:46:0;3767:177:1;5150:46:0;5216:1;5044:181;-1:-1:-1;;;5044:181:0:o;20245:340::-;-1:-1:-1;;;;;20339:19:0;;20331:69;;;;-1:-1:-1;;;20331:69:0;;6428:2:1;20331:69:0;;;6410:21:1;6467:2;6447:18;;;6440:30;6506:34;6486:18;;;6479:62;-1:-1:-1;;;6557:18:1;;;6550:35;6602:19;;20331:69:0;6400:227:1;20331:69:0;-1:-1:-1;;;;;20419:21:0;;20411:69;;;;-1:-1:-1;;;20411:69:0;;7545:2:1;20411:69:0;;;7527:21:1;7584:2;7564:18;;;7557:30;7623:34;7603:18;;;7596:62;-1:-1:-1;;;7674:18:1;;;7667:33;7717:19;;20411:69:0;7517:225:1;20411:69:0;-1:-1:-1;;;;;20493:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20545:32;;7893:25:1;;;20545:32:0;;7866:18:1;20545:32:0;;;;;;;;20245:340;;;:::o;6374:471::-;6432:7;6677:6;6673:47;;-1:-1:-1;6707:1:0;6700:8;;6673:47;6732:9;6744:5;6748:1;6744;:5;:::i;:::-;6732:17;-1:-1:-1;6777:1:0;6768:5;6772:1;6732:17;6768:5;:::i;:::-;:10;6760:56;;;;-1:-1:-1;;;6760:56:0;;4908:2:1;6760:56:0;;;4890:21:1;4947:2;4927:18;;;4920:30;4986:34;4966:18;;;4959:62;-1:-1:-1;;;5037:18:1;;;5030:31;5078:19;;6760:56:0;4880:223:1;7313:132:0;7371:7;7398:39;7402:1;7405;7398:39;;;;;;;;;;;;;;;;;:3;:39::i;18680:555::-;-1:-1:-1;;;;;18778:20:0;;18770:71;;;;-1:-1:-1;;;18770:71:0;;2981:2:1;18770:71:0;;;2963:21:1;3020:2;3000:18;;;2993:30;3059:34;3039:18;;;3032:62;-1:-1:-1;;;3110:18:1;;;3103:36;3156:19;;18770:71:0;2953:228:1;18770:71:0;-1:-1:-1;;;;;18860:23:0;;18852:72;;;;-1:-1:-1;;;18852:72:0;;6023:2:1;18852:72:0;;;6005:21:1;6062:2;6042:18;;;6035:30;6101:34;6081:18;;;6074:62;-1:-1:-1;;;6152:18:1;;;6145:34;6196:19;;18852:72:0;5995:226:1;18852:72:0;18957;18979:6;18957:72;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18957:17:0;;;;;;:9;:17;;;;;;;:72;:21;:72::i;:::-;-1:-1:-1;;;;;18937:17:0;;;;;;;:9;:17;;;;;;:92;;;;19063:20;;;;;;;:32;;19088:6;19063:24;:32::i;:::-;-1:-1:-1;;;;;19040:20:0;;;;;;:9;:20;;;;;:55;19108:26;19127:6;19108:18;:26::i;:::-;19145:29;19164:9;19145:18;:29::i;:::-;19209:9;-1:-1:-1;;;;;19192:35:0;19201:6;-1:-1:-1;;;;;19192:35:0;;19220:6;19192:35;;;;7893:25:1;;7881:2;7866:18;;7848:76;5931:192:0;6017:7;6053:12;6045:6;;;;6037:29;;;;-1:-1:-1;;;6037:29:0;;;;;;;;:::i;:::-;-1:-1:-1;6077:9:0;6089:5;6093:1;6089;:5;:::i;:::-;6077:17;5931:192;-1:-1:-1;;;;;5931:192:0:o;5500:136::-;5558:7;5585:43;5589:1;5592;5585:43;;;;;;;;;;;;;;;;;:3;:43::i;11667:229::-;-1:-1:-1;;;;;11741:22:0;;11733:73;;;;-1:-1:-1;;;11733:73:0;;3388:2:1;11733:73:0;;;3370:21:1;3427:2;3407:18;;;3400:30;3466:34;3446:18;;;3439:62;-1:-1:-1;;;3517:18:1;;;3510:36;3563:19;;11733:73:0;3360:228:1;11733:73:0;11843:6;;;11822:38;;-1:-1:-1;;;;;11822:38:0;;;;11843:6;;;11822:38;;;11871:6;:17;;-1:-1:-1;;;;;;11871:17:0;-1:-1:-1;;;;;11871:17:0;;;;;;;;;;11667:229::o;7933:345::-;8019:7;8121:12;8114:5;8106:28;;;;-1:-1:-1;;;8106:28:0;;;;;;;;:::i;:::-;-1:-1:-1;8145:9:0;8157:5;8161:1;8157;:5;:::i;15066:445::-;-1:-1:-1;;;;;15135:18:0;;;;;;:9;:18;;;;;;15156:12;-1:-1:-1;15131:373:0;;;-1:-1:-1;;;;;15189:17:0;;;;;;:8;:17;;;;;;;;15185:138;;;-1:-1:-1;;;;;15227:17:0;;15247:5;15227:17;;;:8;:17;;;;;:25;;-1:-1:-1;;15227:25:0;;;15287:13;;:20;;15227:25;15287:17;:20::i;:::-;15271:13;:36;11452:109;:::o;15131:373::-;-1:-1:-1;;;;;15360:17:0;;;;;;:8;:17;;;;;;;;15355:138;;-1:-1:-1;;;;;15398:17:0;;;;;;:8;:17;;;;;:24;;-1:-1:-1;;15398:24:0;15418:4;15398:24;;;;;;15457:13;;:20;;:17;:20::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;320:1;317;310:12;272:2;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:2;;;528:1;525;518:12;480:2;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;470:173;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:2;;;810:1;807;800:12;762:2;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;752:224;;;;;:::o;981:347::-;1046:6;1054;1107:2;1095:9;1086:7;1082:23;1078:32;1075:2;;;1123:1;1120;1113:12;1075:2;1146:29;1165:9;1146:29;:::i;:::-;1136:39;;1225:2;1214:9;1210:18;1197:32;1272:5;1265:13;1258:21;1251:5;1248:32;1238:2;;1294:1;1291;1284:12;1238:2;1317:5;1307:15;;;1065:263;;;;;:::o;1333:254::-;1401:6;1409;1462:2;1450:9;1441:7;1437:23;1433:32;1430:2;;;1478:1;1475;1468:12;1430:2;1501:29;1520:9;1501:29;:::i;:::-;1491:39;1577:2;1562:18;;;;1549:32;;-1:-1:-1;;;1420:167:1:o;1592:180::-;1651:6;1704:2;1692:9;1683:7;1679:23;1675:32;1672:2;;;1720:1;1717;1710:12;1672:2;-1:-1:-1;1743:23:1;;1662:110;-1:-1:-1;1662:110:1:o;2177:597::-;2289:4;2318:2;2347;2336:9;2329:21;2379:6;2373:13;2422:6;2417:2;2406:9;2402:18;2395:34;2447:1;2457:140;2471:6;2468:1;2465:13;2457:140;;;2566:14;;;2562:23;;2556:30;2532:17;;;2551:2;2528:26;2521:66;2486:10;;2457:140;;;2615:6;2612:1;2609:13;2606:2;;;2685:1;2680:2;2671:6;2660:9;2656:22;2652:31;2645:42;2606:2;-1:-1:-1;2758:2:1;2737:15;-1:-1:-1;;2733:29:1;2718:45;;;;2765:2;2714:54;;2298:476;-1:-1:-1;;;2298:476:1:o;5108:356::-;5310:2;5292:21;;;5329:18;;;5322:30;5388:34;5383:2;5368:18;;5361:62;5455:2;5440:18;;5282:182::o;8118:128::-;8158:3;8189:1;8185:6;8182:1;8179:13;8176:2;;;8195:18;;:::i;:::-;-1:-1:-1;8231:9:1;;8166:80::o;8251:217::-;8291:1;8317;8307:2;;8361:10;8356:3;8352:20;8349:1;8342:31;8396:4;8393:1;8386:15;8424:4;8421:1;8414:15;8307:2;-1:-1:-1;8453:9:1;;8297:171::o;8473:168::-;8513:7;8579:1;8575;8571:6;8567:14;8564:1;8561:21;8556:1;8549:9;8542:17;8538:45;8535:2;;;8586:18;;:::i;:::-;-1:-1:-1;8626:9:1;;8525:116::o;8646:125::-;8686:4;8714:1;8711;8708:8;8705:2;;;8719:18;;:::i;:::-;-1:-1:-1;8756:9:1;;8695:76::o;8776:380::-;8855:1;8851:12;;;;8898;;;8919:2;;8973:4;8965:6;8961:17;8951:27;;8919:2;9026;9018:6;9015:14;8995:18;8992:38;8989:2;;;9072:10;9067:3;9063:20;9060:1;9053:31;9107:4;9104:1;9097:15;9135:4;9132:1;9125:15;8989:2;;8831:325;;;:::o;9161:127::-;9222:10;9217:3;9213:20;9210:1;9203:31;9253:4;9250:1;9243:15;9277:4;9274:1;9267:15

Swarm Source

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