ETH Price: $2,884.64 (-10.99%)
Gas: 20 Gwei

Token

DeepFuckingValue (DFV)
 

Overview

Max Total Supply

210,609,609,609,609 DFV

Holders

1,613

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000165306478349497 DFV

Value
$0.00
0x7e246a00d7d1f07d28e93577731eb4aff422a295
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:
DeepFuckingValue

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-01
*/

// https://t.me/DFVether
// https://twitter.com/deepfingvalue

// Sources flattened with hardhat v2.7.0 https://hardhat.org

// File @openzeppelin/contracts/utils/[email protected]

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @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;
    }
}


// File @openzeppelin/contracts/access/[email protected]


// OpenZeppelin Contracts v4.4.0 (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @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 Returns the address of the current owner.
     */
    function owner() public view virtual 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 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);
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 `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);
}


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @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);
}


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;



/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override 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 virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual 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 {ERC20}.
     *
     * 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
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This 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 virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

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

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

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

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

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This 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 _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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


// File contracts/DFVToken.sol


pragma solidity ^0.8.0;


contract DeepFuckingValue is Ownable, ERC20 {
    bool public limited;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    address public uniswapV2Pair;
    mapping(address => bool) public blacklists;

    constructor(uint256 _totalSupply) ERC20("DeepFuckingValue", "DFV") {
        _mint(msg.sender, _totalSupply);
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        uniswapV2Pair = _uniswapV2Pair;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        require(!blacklists[to] && !blacklists[from], "Blacklisted.");

        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "Trading has not started.");
            return;
        }

        if (limited && from == uniswapV2Pair) {
            require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbidden.");
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b5060405162002a3138038062002a318339818101604052810190620000379190620007b1565b6040518060400160405280601081526020017f446565704675636b696e6756616c7565000000000000000000000000000000008152506040518060400160405280600381526020017f4446560000000000000000000000000000000000000000000000000000000000815250620000c3620000b76200011060201b60201c565b6200011860201b60201c565b8160049080519060200190620000db929190620006ea565b508060059080519060200190620000f4929190620006ea565b505050620001093382620001dc60201b60201c565b5062000ac1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200024f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000246906200095c565b60405180910390fd5b62000263600083836200035660201b60201c565b8060036000828254620002779190620009ac565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002cf9190620009ac565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200033691906200097e565b60405180910390a362000352600083836200067360201b60201c565b5050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620003fb5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6200043d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200043490620008f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200056157620004a56200067860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620005195750620004ea6200067860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200055b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005529062000918565b60405180910390fd5b6200066e565b600660009054906101000a900460ff168015620005cb5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156200066d5760075481620005eb84620006a160201b6200089d1760201c565b620005f79190620009ac565b111580156200062a5750600854816200061b84620006a160201b6200089d1760201c565b620006279190620009ac565b10155b6200066c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000663906200093a565b60405180910390fd5b5b5b505050565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b828054620006f89062000a13565b90600052602060002090601f0160209004810192826200071c576000855562000768565b82601f106200073757805160ff191683800117855562000768565b8280016001018555821562000768579182015b82811115620007675782518255916020019190600101906200074a565b5b5090506200077791906200077b565b5090565b5b80821115620007965760008160009055506001016200077c565b5090565b600081519050620007ab8162000aa7565b92915050565b600060208284031215620007c457600080fd5b6000620007d4848285016200079a565b91505092915050565b6000620007ec600c836200099b565b91507f426c61636b6c69737465642e00000000000000000000000000000000000000006000830152602082019050919050565b60006200082e6018836200099b565b91507f54726164696e6720686173206e6f7420737461727465642e00000000000000006000830152602082019050919050565b600062000870600a836200099b565b91507f466f7262696464656e2e000000000000000000000000000000000000000000006000830152602082019050919050565b6000620008b2601f836200099b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620008f08162000a09565b82525050565b600060208201905081810360008301526200091181620007dd565b9050919050565b6000602082019050818103600083015262000933816200081f565b9050919050565b60006020820190508181036000830152620009558162000861565b9050919050565b600060208201905081810360008301526200097781620008a3565b9050919050565b6000602082019050620009956000830184620008e5565b92915050565b600082825260208201905092915050565b6000620009b98262000a09565b9150620009c68362000a09565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620009fe57620009fd62000a49565b5b828201905092915050565b6000819050919050565b6000600282049050600182168062000a2c57607f821691505b6020821081141562000a435762000a4262000a78565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b62000ab28162000a09565b811462000abe57600080fd5b50565b611f608062000ad16000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806349bd5a5e116100b85780638da5cb5b1161007c5780638da5cb5b1461034057806395d89b411461035e578063a457c2d71461037c578063a9059cbb146103ac578063dd62ed3e146103dc578063f2fde38b1461040c57610137565b806349bd5a5e146102ac57806370a08231146102ca578063715018a6146102fa578063860a32ec1461030457806389f9a1d31461032257610137565b806323b872dd116100ff57806323b872dd146101f6578063313ce5671461022657806339509351146102445780633aa633aa14610274578063404e51291461029057610137565b806306fdde031461013c578063095ea7b31461015a57806316c021291461018a57806318160ddd146101ba5780631ab99e12146101d8575b600080fd5b610144610428565b6040516101519190611b72565b60405180910390f35b610174600480360381019061016f91906115f8565b6104ba565b6040516101819190611b57565b60405180910390f35b6101a4600480360381019061019f9190611508565b6104d8565b6040516101b19190611b57565b60405180910390f35b6101c26104f8565b6040516101cf9190611d14565b60405180910390f35b6101e0610502565b6040516101ed9190611d14565b60405180910390f35b610210600480360381019061020b919061156d565b610508565b60405161021d9190611b57565b60405180910390f35b61022e610600565b60405161023b9190611d2f565b60405180910390f35b61025e600480360381019061025991906115f8565b610609565b60405161026b9190611b57565b60405180910390f35b61028e60048036038101906102899190611634565b6106b5565b005b6102aa60048036038101906102a591906115bc565b6107a0565b005b6102b4610877565b6040516102c19190611b3c565b60405180910390f35b6102e460048036038101906102df9190611508565b61089d565b6040516102f19190611d14565b60405180910390f35b6103026108e6565b005b61030c61096e565b6040516103199190611b57565b60405180910390f35b61032a610981565b6040516103379190611d14565b60405180910390f35b610348610987565b6040516103559190611b3c565b60405180910390f35b6103666109b0565b6040516103739190611b72565b60405180910390f35b610396600480360381019061039191906115f8565b610a42565b6040516103a39190611b57565b60405180910390f35b6103c660048036038101906103c191906115f8565b610b2d565b6040516103d39190611b57565b60405180910390f35b6103f660048036038101906103f19190611531565b610b4b565b6040516104039190611d14565b60405180910390f35b61042660048036038101906104219190611508565b610bd2565b005b60606004805461043790611e44565b80601f016020809104026020016040519081016040528092919081815260200182805461046390611e44565b80156104b05780601f10610485576101008083540402835291602001916104b0565b820191906000526020600020905b81548152906001019060200180831161049357829003601f168201915b5050505050905090565b60006104ce6104c7610cca565b8484610cd2565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60085481565b6000610515848484610e9d565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610560610cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d790611c74565b60405180910390fd5b6105f4856105ec610cca565b858403610cd2565b60019150509392505050565b60006012905090565b60006106ab610616610cca565b848460026000610624610cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106a69190611d66565b610cd2565b6001905092915050565b6106bd610cca565b73ffffffffffffffffffffffffffffffffffffffff166106db610987565b73ffffffffffffffffffffffffffffffffffffffff1614610731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072890611c94565b60405180910390fd5b83600660006101000a81548160ff02191690831515021790555082600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6107a8610cca565b73ffffffffffffffffffffffffffffffffffffffff166107c6610987565b73ffffffffffffffffffffffffffffffffffffffff161461081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081390611c94565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108ee610cca565b73ffffffffffffffffffffffffffffffffffffffff1661090c610987565b73ffffffffffffffffffffffffffffffffffffffff1614610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990611c94565b60405180910390fd5b61096c6000611121565b565b600660009054906101000a900460ff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546109bf90611e44565b80601f01602080910402602001604051908101604052809291908181526020018280546109eb90611e44565b8015610a385780601f10610a0d57610100808354040283529160200191610a38565b820191906000526020600020905b815481529060010190602001808311610a1b57829003601f168201915b5050505050905090565b60008060026000610a51610cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0590611cf4565b60405180910390fd5b610b22610b19610cca565b85858403610cd2565b600191505092915050565b6000610b41610b3a610cca565b8484610e9d565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bda610cca565b73ffffffffffffffffffffffffffffffffffffffff16610bf8610987565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590611c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb590611bf4565b60405180910390fd5b610cc781611121565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990611cd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da990611c14565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e909190611d14565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490611cb4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490611bb4565b60405180910390fd5b610f888383836111e5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690611c54565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110a49190611d66565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111089190611d14565b60405180910390a361111b8484846114c4565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112895750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90611b94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113d657611327610987565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806113925750611363610987565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890611bd4565b60405180910390fd5b6114bf565b600660009054906101000a900460ff16801561143f5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156114be57600754816114518461089d565b61145b9190611d66565b1115801561147e5750600854816114718461089d565b61147b9190611d66565b10155b6114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490611c34565b60405180910390fd5b5b5b505050565b505050565b6000813590506114d881611ee5565b92915050565b6000813590506114ed81611efc565b92915050565b60008135905061150281611f13565b92915050565b60006020828403121561151a57600080fd5b6000611528848285016114c9565b91505092915050565b6000806040838503121561154457600080fd5b6000611552858286016114c9565b9250506020611563858286016114c9565b9150509250929050565b60008060006060848603121561158257600080fd5b6000611590868287016114c9565b93505060206115a1868287016114c9565b92505060406115b2868287016114f3565b9150509250925092565b600080604083850312156115cf57600080fd5b60006115dd858286016114c9565b92505060206115ee858286016114de565b9150509250929050565b6000806040838503121561160b57600080fd5b6000611619858286016114c9565b925050602061162a858286016114f3565b9150509250929050565b6000806000806080858703121561164a57600080fd5b6000611658878288016114de565b9450506020611669878288016114c9565b935050604061167a878288016114f3565b925050606061168b878288016114f3565b91505092959194509250565b6116a081611dbc565b82525050565b6116af81611dce565b82525050565b60006116c082611d4a565b6116ca8185611d55565b93506116da818560208601611e11565b6116e381611ed4565b840191505092915050565b60006116fb600c83611d55565b91507f426c61636b6c69737465642e00000000000000000000000000000000000000006000830152602082019050919050565b600061173b602383611d55565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117a1601883611d55565b91507f54726164696e6720686173206e6f7420737461727465642e00000000000000006000830152602082019050919050565b60006117e1602683611d55565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611847602283611d55565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118ad600a83611d55565b91507f466f7262696464656e2e000000000000000000000000000000000000000000006000830152602082019050919050565b60006118ed602683611d55565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611953602883611d55565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006119b9602083611d55565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006119f9602583611d55565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a5f602483611d55565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ac5602583611d55565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b611b2781611dfa565b82525050565b611b3681611e04565b82525050565b6000602082019050611b516000830184611697565b92915050565b6000602082019050611b6c60008301846116a6565b92915050565b60006020820190508181036000830152611b8c81846116b5565b905092915050565b60006020820190508181036000830152611bad816116ee565b9050919050565b60006020820190508181036000830152611bcd8161172e565b9050919050565b60006020820190508181036000830152611bed81611794565b9050919050565b60006020820190508181036000830152611c0d816117d4565b9050919050565b60006020820190508181036000830152611c2d8161183a565b9050919050565b60006020820190508181036000830152611c4d816118a0565b9050919050565b60006020820190508181036000830152611c6d816118e0565b9050919050565b60006020820190508181036000830152611c8d81611946565b9050919050565b60006020820190508181036000830152611cad816119ac565b9050919050565b60006020820190508181036000830152611ccd816119ec565b9050919050565b60006020820190508181036000830152611ced81611a52565b9050919050565b60006020820190508181036000830152611d0d81611ab8565b9050919050565b6000602082019050611d296000830184611b1e565b92915050565b6000602082019050611d446000830184611b2d565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611d7182611dfa565b9150611d7c83611dfa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611db157611db0611e76565b5b828201905092915050565b6000611dc782611dda565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611e2f578082015181840152602081019050611e14565b83811115611e3e576000848401525b50505050565b60006002820490506001821680611e5c57607f821691505b60208210811415611e7057611e6f611ea5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611eee81611dbc565b8114611ef957600080fd5b50565b611f0581611dce565b8114611f1057600080fd5b50565b611f1c81611dfa565b8114611f2757600080fd5b5056fea2646970667358221220c634acd195311ec189fe923ddd5e9f56e1d42e340ba021b43bd0655faad62a1364736f6c634300080000330000000000000000000000000000000000000a624459e2ed1a3ac17038840000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806349bd5a5e116100b85780638da5cb5b1161007c5780638da5cb5b1461034057806395d89b411461035e578063a457c2d71461037c578063a9059cbb146103ac578063dd62ed3e146103dc578063f2fde38b1461040c57610137565b806349bd5a5e146102ac57806370a08231146102ca578063715018a6146102fa578063860a32ec1461030457806389f9a1d31461032257610137565b806323b872dd116100ff57806323b872dd146101f6578063313ce5671461022657806339509351146102445780633aa633aa14610274578063404e51291461029057610137565b806306fdde031461013c578063095ea7b31461015a57806316c021291461018a57806318160ddd146101ba5780631ab99e12146101d8575b600080fd5b610144610428565b6040516101519190611b72565b60405180910390f35b610174600480360381019061016f91906115f8565b6104ba565b6040516101819190611b57565b60405180910390f35b6101a4600480360381019061019f9190611508565b6104d8565b6040516101b19190611b57565b60405180910390f35b6101c26104f8565b6040516101cf9190611d14565b60405180910390f35b6101e0610502565b6040516101ed9190611d14565b60405180910390f35b610210600480360381019061020b919061156d565b610508565b60405161021d9190611b57565b60405180910390f35b61022e610600565b60405161023b9190611d2f565b60405180910390f35b61025e600480360381019061025991906115f8565b610609565b60405161026b9190611b57565b60405180910390f35b61028e60048036038101906102899190611634565b6106b5565b005b6102aa60048036038101906102a591906115bc565b6107a0565b005b6102b4610877565b6040516102c19190611b3c565b60405180910390f35b6102e460048036038101906102df9190611508565b61089d565b6040516102f19190611d14565b60405180910390f35b6103026108e6565b005b61030c61096e565b6040516103199190611b57565b60405180910390f35b61032a610981565b6040516103379190611d14565b60405180910390f35b610348610987565b6040516103559190611b3c565b60405180910390f35b6103666109b0565b6040516103739190611b72565b60405180910390f35b610396600480360381019061039191906115f8565b610a42565b6040516103a39190611b57565b60405180910390f35b6103c660048036038101906103c191906115f8565b610b2d565b6040516103d39190611b57565b60405180910390f35b6103f660048036038101906103f19190611531565b610b4b565b6040516104039190611d14565b60405180910390f35b61042660048036038101906104219190611508565b610bd2565b005b60606004805461043790611e44565b80601f016020809104026020016040519081016040528092919081815260200182805461046390611e44565b80156104b05780601f10610485576101008083540402835291602001916104b0565b820191906000526020600020905b81548152906001019060200180831161049357829003601f168201915b5050505050905090565b60006104ce6104c7610cca565b8484610cd2565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60085481565b6000610515848484610e9d565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610560610cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d790611c74565b60405180910390fd5b6105f4856105ec610cca565b858403610cd2565b60019150509392505050565b60006012905090565b60006106ab610616610cca565b848460026000610624610cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106a69190611d66565b610cd2565b6001905092915050565b6106bd610cca565b73ffffffffffffffffffffffffffffffffffffffff166106db610987565b73ffffffffffffffffffffffffffffffffffffffff1614610731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072890611c94565b60405180910390fd5b83600660006101000a81548160ff02191690831515021790555082600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6107a8610cca565b73ffffffffffffffffffffffffffffffffffffffff166107c6610987565b73ffffffffffffffffffffffffffffffffffffffff161461081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081390611c94565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108ee610cca565b73ffffffffffffffffffffffffffffffffffffffff1661090c610987565b73ffffffffffffffffffffffffffffffffffffffff1614610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990611c94565b60405180910390fd5b61096c6000611121565b565b600660009054906101000a900460ff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546109bf90611e44565b80601f01602080910402602001604051908101604052809291908181526020018280546109eb90611e44565b8015610a385780601f10610a0d57610100808354040283529160200191610a38565b820191906000526020600020905b815481529060010190602001808311610a1b57829003601f168201915b5050505050905090565b60008060026000610a51610cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0590611cf4565b60405180910390fd5b610b22610b19610cca565b85858403610cd2565b600191505092915050565b6000610b41610b3a610cca565b8484610e9d565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bda610cca565b73ffffffffffffffffffffffffffffffffffffffff16610bf8610987565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590611c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb590611bf4565b60405180910390fd5b610cc781611121565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990611cd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da990611c14565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e909190611d14565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490611cb4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490611bb4565b60405180910390fd5b610f888383836111e5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690611c54565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110a49190611d66565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111089190611d14565b60405180910390a361111b8484846114c4565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112895750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90611b94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113d657611327610987565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806113925750611363610987565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890611bd4565b60405180910390fd5b6114bf565b600660009054906101000a900460ff16801561143f5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156114be57600754816114518461089d565b61145b9190611d66565b1115801561147e5750600854816114718461089d565b61147b9190611d66565b10155b6114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490611c34565b60405180910390fd5b5b5b505050565b505050565b6000813590506114d881611ee5565b92915050565b6000813590506114ed81611efc565b92915050565b60008135905061150281611f13565b92915050565b60006020828403121561151a57600080fd5b6000611528848285016114c9565b91505092915050565b6000806040838503121561154457600080fd5b6000611552858286016114c9565b9250506020611563858286016114c9565b9150509250929050565b60008060006060848603121561158257600080fd5b6000611590868287016114c9565b93505060206115a1868287016114c9565b92505060406115b2868287016114f3565b9150509250925092565b600080604083850312156115cf57600080fd5b60006115dd858286016114c9565b92505060206115ee858286016114de565b9150509250929050565b6000806040838503121561160b57600080fd5b6000611619858286016114c9565b925050602061162a858286016114f3565b9150509250929050565b6000806000806080858703121561164a57600080fd5b6000611658878288016114de565b9450506020611669878288016114c9565b935050604061167a878288016114f3565b925050606061168b878288016114f3565b91505092959194509250565b6116a081611dbc565b82525050565b6116af81611dce565b82525050565b60006116c082611d4a565b6116ca8185611d55565b93506116da818560208601611e11565b6116e381611ed4565b840191505092915050565b60006116fb600c83611d55565b91507f426c61636b6c69737465642e00000000000000000000000000000000000000006000830152602082019050919050565b600061173b602383611d55565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117a1601883611d55565b91507f54726164696e6720686173206e6f7420737461727465642e00000000000000006000830152602082019050919050565b60006117e1602683611d55565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611847602283611d55565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118ad600a83611d55565b91507f466f7262696464656e2e000000000000000000000000000000000000000000006000830152602082019050919050565b60006118ed602683611d55565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611953602883611d55565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006119b9602083611d55565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006119f9602583611d55565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a5f602483611d55565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ac5602583611d55565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b611b2781611dfa565b82525050565b611b3681611e04565b82525050565b6000602082019050611b516000830184611697565b92915050565b6000602082019050611b6c60008301846116a6565b92915050565b60006020820190508181036000830152611b8c81846116b5565b905092915050565b60006020820190508181036000830152611bad816116ee565b9050919050565b60006020820190508181036000830152611bcd8161172e565b9050919050565b60006020820190508181036000830152611bed81611794565b9050919050565b60006020820190508181036000830152611c0d816117d4565b9050919050565b60006020820190508181036000830152611c2d8161183a565b9050919050565b60006020820190508181036000830152611c4d816118a0565b9050919050565b60006020820190508181036000830152611c6d816118e0565b9050919050565b60006020820190508181036000830152611c8d81611946565b9050919050565b60006020820190508181036000830152611cad816119ac565b9050919050565b60006020820190508181036000830152611ccd816119ec565b9050919050565b60006020820190508181036000830152611ced81611a52565b9050919050565b60006020820190508181036000830152611d0d81611ab8565b9050919050565b6000602082019050611d296000830184611b1e565b92915050565b6000602082019050611d446000830184611b2d565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611d7182611dfa565b9150611d7c83611dfa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611db157611db0611e76565b5b828201905092915050565b6000611dc782611dda565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611e2f578082015181840152602081019050611e14565b83811115611e3e576000848401525b50505050565b60006002820490506001821680611e5c57607f821691505b60208210811415611e7057611e6f611ea5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611eee81611dbc565b8114611ef957600080fd5b50565b611f0581611dce565b8114611f1057600080fd5b50565b611f1c81611dfa565b8114611f2757600080fd5b5056fea2646970667358221220c634acd195311ec189fe923ddd5e9f56e1d42e340ba021b43bd0655faad62a1364736f6c63430008000033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000a624459e2ed1a3ac17038840000

-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 210609609609609000000000000000000

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000a624459e2ed1a3ac17038840000


Deployed Bytecode Sourcemap

19406:1393:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9378:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11545:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19594:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10498:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19521:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12196:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10340:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13097:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19913:301;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19770:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19559:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10669:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:103;;;:::i;:::-;;19457:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19483:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2128:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9597:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13815:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11009:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11247:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3037:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9378:100;9432:13;9465:5;9458:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9378:100;:::o;11545:169::-;11628:4;11645:39;11654:12;:10;:12::i;:::-;11668:7;11677:6;11645:8;:39::i;:::-;11702:4;11695:11;;11545:169;;;;:::o;19594:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10498:108::-;10559:7;10586:12;;10579:19;;10498:108;:::o;19521:31::-;;;;:::o;12196:492::-;12336:4;12353:36;12363:6;12371:9;12382:6;12353:9;:36::i;:::-;12402:24;12429:11;:19;12441:6;12429:19;;;;;;;;;;;;;;;:33;12449:12;:10;:12::i;:::-;12429:33;;;;;;;;;;;;;;;;12402:60;;12501:6;12481:16;:26;;12473:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12588:57;12597:6;12605:12;:10;:12::i;:::-;12638:6;12619:16;:25;12588:8;:57::i;:::-;12676:4;12669:11;;;12196:492;;;;;:::o;10340:93::-;10398:5;10423:2;10416:9;;10340:93;:::o;13097:215::-;13185:4;13202:80;13211:12;:10;:12::i;:::-;13225:7;13271:10;13234:11;:25;13246:12;:10;:12::i;:::-;13234:25;;;;;;;;;;;;;;;:34;13260:7;13234:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13202:8;:80::i;:::-;13300:4;13293:11;;13097:215;;;;:::o;19913:301::-;2359:12;:10;:12::i;:::-;2348:23;;:7;:5;:7::i;:::-;:23;;;2340:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20063:8:::1;20053:7;;:18;;;;;;;;;;;;;;;;;;20098:14;20082:13;;:30;;;;;;;;;;;;;;;;;;20142:17;20123:16;:36;;;;20189:17;20170:16;:36;;;;19913:301:::0;;;;:::o;19770:135::-;2359:12;:10;:12::i;:::-;2348:23;;:7;:5;:7::i;:::-;:23;;;2340:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19882:15:::1;19859:10;:20;19870:8;19859:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19770:135:::0;;:::o;19559:28::-;;;;;;;;;;;;;:::o;10669:127::-;10743:7;10770:9;:18;10780:7;10770:18;;;;;;;;;;;;;;;;10763:25;;10669:127;;;:::o;2779:103::-;2359:12;:10;:12::i;:::-;2348:23;;:7;:5;:7::i;:::-;:23;;;2340:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2844:30:::1;2871:1;2844:18;:30::i;:::-;2779:103::o:0;19457:19::-;;;;;;;;;;;;;:::o;19483:31::-;;;;:::o;2128:87::-;2174:7;2201:6;;;;;;;;;;;2194:13;;2128:87;:::o;9597:104::-;9653:13;9686:7;9679:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9597:104;:::o;13815:413::-;13908:4;13925:24;13952:11;:25;13964:12;:10;:12::i;:::-;13952:25;;;;;;;;;;;;;;;:34;13978:7;13952:34;;;;;;;;;;;;;;;;13925:61;;14025:15;14005:16;:35;;13997:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14118:67;14127:12;:10;:12::i;:::-;14141:7;14169:15;14150:16;:34;14118:8;:67::i;:::-;14216:4;14209:11;;;13815:413;;;;:::o;11009:175::-;11095:4;11112:42;11122:12;:10;:12::i;:::-;11136:9;11147:6;11112:9;:42::i;:::-;11172:4;11165:11;;11009:175;;;;:::o;11247:151::-;11336:7;11363:11;:18;11375:5;11363:18;;;;;;;;;;;;;;;:27;11382:7;11363:27;;;;;;;;;;;;;;;;11356:34;;11247:151;;;;:::o;3037:201::-;2359:12;:10;:12::i;:::-;2348:23;;:7;:5;:7::i;:::-;:23;;;2340:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3146:1:::1;3126:22;;:8;:22;;;;3118:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3202:28;3221:8;3202:18;:28::i;:::-;3037:201:::0;:::o;846:98::-;899:7;926:10;919:17;;846:98;:::o;17499:380::-;17652:1;17635:19;;:5;:19;;;;17627:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17733:1;17714:21;;:7;:21;;;;17706:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17817:6;17787:11;:18;17799:5;17787:18;;;;;;;;;;;;;;;:27;17806:7;17787:27;;;;;;;;;;;;;;;:36;;;;17855:7;17839:32;;17848:5;17839:32;;;17864:6;17839:32;;;;;;:::i;:::-;;;;;;;;17499:380;;;:::o;14718:733::-;14876:1;14858:20;;:6;:20;;;;14850:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14960:1;14939:23;;:9;:23;;;;14931:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15015:47;15036:6;15044:9;15055:6;15015:20;:47::i;:::-;15075:21;15099:9;:17;15109:6;15099:17;;;;;;;;;;;;;;;;15075:41;;15152:6;15135:13;:23;;15127:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15273:6;15257:13;:22;15237:9;:17;15247:6;15237:17;;;;;;;;;;;;;;;:42;;;;15325:6;15301:9;:20;15311:9;15301:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15366:9;15349:35;;15358:6;15349:35;;;15377:6;15349:35;;;;;;:::i;:::-;;;;;;;;15397:46;15417:6;15425:9;15436:6;15397:19;:46::i;:::-;14718:733;;;;:::o;3398:191::-;3472:16;3491:6;;;;;;;;;;;3472:25;;3517:8;3508:6;;:17;;;;;;;;;;;;;;;;;;3572:8;3541:40;;3562:8;3541:40;;;;;;;;;;;;3398:191;;:::o;20222:574::-;20374:10;:14;20385:2;20374:14;;;;;;;;;;;;;;;;;;;;;;;;;20373:15;:36;;;;;20393:10;:16;20404:4;20393:16;;;;;;;;;;;;;;;;;;;;;;;;;20392:17;20373:36;20365:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;20468:1;20443:27;;:13;;;;;;;;;;;:27;;;20439:150;;;20503:7;:5;:7::i;:::-;20495:15;;:4;:15;;;:32;;;;20520:7;:5;:7::i;:::-;20514:13;;:2;:13;;;20495:32;20487:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;20571:7;;20439:150;20605:7;;;;;;;;;;;:32;;;;;20624:13;;;;;;;;;;;20616:21;;:4;:21;;;20605:32;20601:188;;;20694:16;;20684:6;20662:19;20678:2;20662:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;20746:16;;20736:6;20714:19;20730:2;20714:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20662:100;20654:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;20601:188;20222:574;;;;:::o;19208:124::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:407::-;;;829:2;817:9;808:7;804:23;800:32;797:2;;;845:1;842;835:12;797:2;888:1;913:53;958:7;949:6;938:9;934:22;913:53;:::i;:::-;903:63;;859:117;1015:2;1041:53;1086:7;1077:6;1066:9;1062:22;1041:53;:::i;:::-;1031:63;;986:118;787:324;;;;;:::o;1117:552::-;;;;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1275:1;1272;1265:12;1227:2;1318:1;1343:53;1388:7;1379:6;1368:9;1364:22;1343:53;:::i;:::-;1333:63;;1289:117;1445:2;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1416:118;1573:2;1599:53;1644:7;1635:6;1624:9;1620:22;1599:53;:::i;:::-;1589:63;;1544:118;1217:452;;;;;:::o;1675:401::-;;;1797:2;1785:9;1776:7;1772:23;1768:32;1765:2;;;1813:1;1810;1803:12;1765:2;1856:1;1881:53;1926:7;1917:6;1906:9;1902:22;1881:53;:::i;:::-;1871:63;;1827:117;1983:2;2009:50;2051:7;2042:6;2031:9;2027:22;2009:50;:::i;:::-;1999:60;;1954:115;1755:321;;;;;:::o;2082:407::-;;;2207:2;2195:9;2186:7;2182:23;2178:32;2175:2;;;2223:1;2220;2213:12;2175:2;2266:1;2291:53;2336:7;2327:6;2316:9;2312:22;2291:53;:::i;:::-;2281:63;;2237:117;2393:2;2419:53;2464:7;2455:6;2444:9;2440:22;2419:53;:::i;:::-;2409:63;;2364:118;2165:324;;;;;:::o;2495:692::-;;;;;2651:3;2639:9;2630:7;2626:23;2622:33;2619:2;;;2668:1;2665;2658:12;2619:2;2711:1;2736:50;2778:7;2769:6;2758:9;2754:22;2736:50;:::i;:::-;2726:60;;2682:114;2835:2;2861:53;2906:7;2897:6;2886:9;2882:22;2861:53;:::i;:::-;2851:63;;2806:118;2963:2;2989:53;3034:7;3025:6;3014:9;3010:22;2989:53;:::i;:::-;2979:63;;2934:118;3091:2;3117:53;3162:7;3153:6;3142:9;3138:22;3117:53;:::i;:::-;3107:63;;3062:118;2609:578;;;;;;;:::o;3193:118::-;3280:24;3298:5;3280:24;:::i;:::-;3275:3;3268:37;3258:53;;:::o;3317:109::-;3398:21;3413:5;3398:21;:::i;:::-;3393:3;3386:34;3376:50;;:::o;3432:364::-;;3548:39;3581:5;3548:39;:::i;:::-;3603:71;3667:6;3662:3;3603:71;:::i;:::-;3596:78;;3683:52;3728:6;3723:3;3716:4;3709:5;3705:16;3683:52;:::i;:::-;3760:29;3782:6;3760:29;:::i;:::-;3755:3;3751:39;3744:46;;3524:272;;;;;:::o;3802:310::-;;3965:67;4029:2;4024:3;3965:67;:::i;:::-;3958:74;;4062:14;4058:1;4053:3;4049:11;4042:35;4103:2;4098:3;4094:12;4087:19;;3948:164;;;:::o;4118:367::-;;4281:67;4345:2;4340:3;4281:67;:::i;:::-;4274:74;;4378:34;4374:1;4369:3;4365:11;4358:55;4444:5;4439:2;4434:3;4430:12;4423:27;4476:2;4471:3;4467:12;4460:19;;4264:221;;;:::o;4491:322::-;;4654:67;4718:2;4713:3;4654:67;:::i;:::-;4647:74;;4751:26;4747:1;4742:3;4738:11;4731:47;4804:2;4799:3;4795:12;4788:19;;4637:176;;;:::o;4819:370::-;;4982:67;5046:2;5041:3;4982:67;:::i;:::-;4975:74;;5079:34;5075:1;5070:3;5066:11;5059:55;5145:8;5140:2;5135:3;5131:12;5124:30;5180:2;5175:3;5171:12;5164:19;;4965:224;;;:::o;5195:366::-;;5358:67;5422:2;5417:3;5358:67;:::i;:::-;5351:74;;5455:34;5451:1;5446:3;5442:11;5435:55;5521:4;5516:2;5511:3;5507:12;5500:26;5552:2;5547:3;5543:12;5536:19;;5341:220;;;:::o;5567:308::-;;5730:67;5794:2;5789:3;5730:67;:::i;:::-;5723:74;;5827:12;5823:1;5818:3;5814:11;5807:33;5866:2;5861:3;5857:12;5850:19;;5713:162;;;:::o;5881:370::-;;6044:67;6108:2;6103:3;6044:67;:::i;:::-;6037:74;;6141:34;6137:1;6132:3;6128:11;6121:55;6207:8;6202:2;6197:3;6193:12;6186:30;6242:2;6237:3;6233:12;6226:19;;6027:224;;;:::o;6257:372::-;;6420:67;6484:2;6479:3;6420:67;:::i;:::-;6413:74;;6517:34;6513:1;6508:3;6504:11;6497:55;6583:10;6578:2;6573:3;6569:12;6562:32;6620:2;6615:3;6611:12;6604:19;;6403:226;;;:::o;6635:330::-;;6798:67;6862:2;6857:3;6798:67;:::i;:::-;6791:74;;6895:34;6891:1;6886:3;6882:11;6875:55;6956:2;6951:3;6947:12;6940:19;;6781:184;;;:::o;6971:369::-;;7134:67;7198:2;7193:3;7134:67;:::i;:::-;7127:74;;7231:34;7227:1;7222:3;7218:11;7211:55;7297:7;7292:2;7287:3;7283:12;7276:29;7331:2;7326:3;7322:12;7315:19;;7117:223;;;:::o;7346:368::-;;7509:67;7573:2;7568:3;7509:67;:::i;:::-;7502:74;;7606:34;7602:1;7597:3;7593:11;7586:55;7672:6;7667:2;7662:3;7658:12;7651:28;7705:2;7700:3;7696:12;7689:19;;7492:222;;;:::o;7720:369::-;;7883:67;7947:2;7942:3;7883:67;:::i;:::-;7876:74;;7980:34;7976:1;7971:3;7967:11;7960:55;8046:7;8041:2;8036:3;8032:12;8025:29;8080:2;8075:3;8071:12;8064:19;;7866:223;;;:::o;8095:118::-;8182:24;8200:5;8182:24;:::i;:::-;8177:3;8170:37;8160:53;;:::o;8219:112::-;8302:22;8318:5;8302:22;:::i;:::-;8297:3;8290:35;8280:51;;:::o;8337:222::-;;8468:2;8457:9;8453:18;8445:26;;8481:71;8549:1;8538:9;8534:17;8525:6;8481:71;:::i;:::-;8435:124;;;;:::o;8565:210::-;;8690:2;8679:9;8675:18;8667:26;;8703:65;8765:1;8754:9;8750:17;8741:6;8703:65;:::i;:::-;8657:118;;;;:::o;8781:313::-;;8932:2;8921:9;8917:18;8909:26;;8981:9;8975:4;8971:20;8967:1;8956:9;8952:17;8945:47;9009:78;9082:4;9073:6;9009:78;:::i;:::-;9001:86;;8899:195;;;;:::o;9100:419::-;;9304:2;9293:9;9289:18;9281:26;;9353:9;9347:4;9343:20;9339:1;9328:9;9324:17;9317:47;9381:131;9507:4;9381:131;:::i;:::-;9373:139;;9271:248;;;:::o;9525:419::-;;9729:2;9718:9;9714:18;9706:26;;9778:9;9772:4;9768:20;9764:1;9753:9;9749:17;9742:47;9806:131;9932:4;9806:131;:::i;:::-;9798:139;;9696:248;;;:::o;9950:419::-;;10154:2;10143:9;10139:18;10131:26;;10203:9;10197:4;10193:20;10189:1;10178:9;10174:17;10167:47;10231:131;10357:4;10231:131;:::i;:::-;10223:139;;10121:248;;;:::o;10375:419::-;;10579:2;10568:9;10564:18;10556:26;;10628:9;10622:4;10618:20;10614:1;10603:9;10599:17;10592:47;10656:131;10782:4;10656:131;:::i;:::-;10648:139;;10546:248;;;:::o;10800:419::-;;11004:2;10993:9;10989:18;10981:26;;11053:9;11047:4;11043:20;11039:1;11028:9;11024:17;11017:47;11081:131;11207:4;11081:131;:::i;:::-;11073:139;;10971:248;;;:::o;11225:419::-;;11429:2;11418:9;11414:18;11406:26;;11478:9;11472:4;11468:20;11464:1;11453:9;11449:17;11442:47;11506:131;11632:4;11506:131;:::i;:::-;11498:139;;11396:248;;;:::o;11650:419::-;;11854:2;11843:9;11839:18;11831:26;;11903:9;11897:4;11893:20;11889:1;11878:9;11874:17;11867:47;11931:131;12057:4;11931:131;:::i;:::-;11923:139;;11821:248;;;:::o;12075:419::-;;12279:2;12268:9;12264:18;12256:26;;12328:9;12322:4;12318:20;12314:1;12303:9;12299:17;12292:47;12356:131;12482:4;12356:131;:::i;:::-;12348:139;;12246:248;;;:::o;12500:419::-;;12704:2;12693:9;12689:18;12681:26;;12753:9;12747:4;12743:20;12739:1;12728:9;12724:17;12717:47;12781:131;12907:4;12781:131;:::i;:::-;12773:139;;12671:248;;;:::o;12925:419::-;;13129:2;13118:9;13114:18;13106:26;;13178:9;13172:4;13168:20;13164:1;13153:9;13149:17;13142:47;13206:131;13332:4;13206:131;:::i;:::-;13198:139;;13096:248;;;:::o;13350:419::-;;13554:2;13543:9;13539:18;13531:26;;13603:9;13597:4;13593:20;13589:1;13578:9;13574:17;13567:47;13631:131;13757:4;13631:131;:::i;:::-;13623:139;;13521:248;;;:::o;13775:419::-;;13979:2;13968:9;13964:18;13956:26;;14028:9;14022:4;14018:20;14014:1;14003:9;13999:17;13992:47;14056:131;14182:4;14056:131;:::i;:::-;14048:139;;13946:248;;;:::o;14200:222::-;;14331:2;14320:9;14316:18;14308:26;;14344:71;14412:1;14401:9;14397:17;14388:6;14344:71;:::i;:::-;14298:124;;;;:::o;14428:214::-;;14555:2;14544:9;14540:18;14532:26;;14568:67;14632:1;14621:9;14617:17;14608:6;14568:67;:::i;:::-;14522:120;;;;:::o;14648:99::-;;14734:5;14728:12;14718:22;;14707:40;;;:::o;14753:169::-;;14871:6;14866:3;14859:19;14911:4;14906:3;14902:14;14887:29;;14849:73;;;;:::o;14928:305::-;;14987:20;15005:1;14987:20;:::i;:::-;14982:25;;15021:20;15039:1;15021:20;:::i;:::-;15016:25;;15175:1;15107:66;15103:74;15100:1;15097:81;15094:2;;;15181:18;;:::i;:::-;15094:2;15225:1;15222;15218:9;15211:16;;14972:261;;;;:::o;15239:96::-;;15305:24;15323:5;15305:24;:::i;:::-;15294:35;;15284:51;;;:::o;15341:90::-;;15418:5;15411:13;15404:21;15393:32;;15383:48;;;:::o;15437:126::-;;15514:42;15507:5;15503:54;15492:65;;15482:81;;;:::o;15569:77::-;;15635:5;15624:16;;15614:32;;;:::o;15652:86::-;;15727:4;15720:5;15716:16;15705:27;;15695:43;;;:::o;15744:307::-;15812:1;15822:113;15836:6;15833:1;15830:13;15822:113;;;15921:1;15916:3;15912:11;15906:18;15902:1;15897:3;15893:11;15886:39;15858:2;15855:1;15851:10;15846:15;;15822:113;;;15953:6;15950:1;15947:13;15944:2;;;16033:1;16024:6;16019:3;16015:16;16008:27;15944:2;15793:258;;;;:::o;16057:320::-;;16138:1;16132:4;16128:12;16118:22;;16185:1;16179:4;16175:12;16206:18;16196:2;;16262:4;16254:6;16250:17;16240:27;;16196:2;16324;16316:6;16313:14;16293:18;16290:38;16287:2;;;16343:18;;:::i;:::-;16287:2;16108:269;;;;:::o;16383:180::-;16431:77;16428:1;16421:88;16528:4;16525:1;16518:15;16552:4;16549:1;16542:15;16569:180;16617:77;16614:1;16607:88;16714:4;16711:1;16704:15;16738:4;16735:1;16728:15;16755:102;;16847:2;16843:7;16838:2;16831:5;16827:14;16823:28;16813:38;;16803:54;;;:::o;16863:122::-;16936:24;16954:5;16936:24;:::i;:::-;16929:5;16926:35;16916:2;;16975:1;16972;16965:12;16916:2;16906:79;:::o;16991:116::-;17061:21;17076:5;17061:21;:::i;:::-;17054:5;17051:32;17041:2;;17097:1;17094;17087:12;17041:2;17031:76;:::o;17113:122::-;17186:24;17204:5;17186:24;:::i;:::-;17179:5;17176:35;17166:2;;17225:1;17222;17215:12;17166:2;17156:79;:::o

Swarm Source

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