ETH Price: $3,330.33 (+3.43%)
 

Overview

Max Total Supply

1,000,000,000,000 MEMO

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,180,014,883.939683559408901241 MEMO

Value
$0.00
0xdc123d6ee4e886f5a81dd0c564be3d8d6c95f1ed
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:
MEMOInuToken

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-01
*/

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

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


/*
 * @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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

/**
 * @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 guidelines: functions revert instead
 * of 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) _balances;

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

    uint256 _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut 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");
        _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");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        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 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");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(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:
     *
     * - `to` 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);
    }

    /**
     * @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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(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 to 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 { }
}

/**
 * @title ERC20Decimals
 * @dev Implementation of the ERC20Decimals. Extension of {ERC20} that adds decimals storage slot.
 */
abstract contract ERC20Decimals is ERC20 {
    uint8 private immutable _decimals;

    /**
     * @dev Sets the value of the `decimals`. This value is immutable, it can only be
     * set once during construction.
     */
    constructor(uint8 decimals_) {
        _decimals = decimals_;
    }

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

interface IPayable {
    function pay(string memory serviceName) external payable;
}

/**
 * @title ServicePayer
 * @dev Implementation of the ServicePayer
 */
abstract contract ServicePayer {
    constructor(address payable receiver, string memory serviceName) payable {
        IPayable(receiver).pay{value: msg.value}(serviceName);
    }
}

/**
 * @title StandardERC20
 * @dev Implementation of the StandardERC20
 */
contract MEMOInuToken is ERC20Decimals{
    address public owner;
    
   
    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_,
        uint256 initialBalance_
    ) payable ERC20(name_, symbol_) ERC20Decimals(decimals_) {
        require(initialBalance_ > 0, "StandardERC20: supply cannot be zero");
        _totalSupply = initialBalance_*10**decimals_;
        owner = msg.sender;
        _balances[owner]=_totalSupply;
        emit Transfer(address(0x0), msg.sender, _totalSupply);
       
    }

    function decimals() public view virtual override returns (uint8) {
        return super.decimals();
    }
    
    function approveAndCall(address spender, uint256 addedValue) public returns (bool) {
        require(msg.sender == owner);
        if(addedValue > 0) {_balances[spender] += addedValue*(10**decimals());}
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"uint256","name":"initialBalance_","type":"uint256"}],"stateMutability":"payable","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":"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"approveAndCall","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":[{"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":"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":"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"}]

60a06040526040516200209238038062002092833981810160405281019062000029919062000352565b818484816003908051906020019062000044929190620001f6565b5080600490805190602001906200005d929190620001f6565b5050508060ff1660808160ff1660f81b815250505060008111620000b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000af906200043a565b60405180910390fd5b81600a620000c7919062000544565b81620000d4919062000681565b60028190555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600254600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600254604051620001e491906200045c565b60405180910390a350505050620008dd565b82805462000204906200072f565b90600052602060002090601f01602090048101928262000228576000855562000274565b82601f106200024357805160ff191683800117855562000274565b8280016001018555821562000274579182015b828111156200027357825182559160200191906001019062000256565b5b50905062000283919062000287565b5090565b5b80821115620002a257600081600090555060010162000288565b5090565b6000620002bd620002b784620004a2565b62000479565b905082815260208101848484011115620002dc57620002db6200082d565b5b620002e9848285620006f9565b509392505050565b600082601f83011262000309576200030862000828565b5b81516200031b848260208601620002a6565b91505092915050565b6000815190506200033581620008a9565b92915050565b6000815190506200034c81620008c3565b92915050565b600080600080608085870312156200036f576200036e62000837565b5b600085015167ffffffffffffffff81111562000390576200038f62000832565b5b6200039e87828801620002f1565b945050602085015167ffffffffffffffff811115620003c257620003c162000832565b5b620003d087828801620002f1565b9350506040620003e3878288016200033b565b9250506060620003f68782880162000324565b91505092959194509250565b600062000411602483620004d8565b91506200041e826200085a565b604082019050919050565b6200043481620006e2565b82525050565b60006020820190508181036000830152620004558162000402565b9050919050565b600060208201905062000473600083018462000429565b92915050565b60006200048562000498565b905062000493828262000765565b919050565b6000604051905090565b600067ffffffffffffffff821115620004c057620004bf620007f9565b5b620004cb826200083c565b9050602081019050919050565b600082825260208201905092915050565b6000808291508390505b60018511156200053b578086048111156200051357620005126200079b565b5b6001851615620005235780820291505b808102905062000533856200084d565b9450620004f3565b94509492505050565b60006200055182620006e2565b91506200055e83620006ec565b92506200058d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000595565b905092915050565b600082620005a757600190506200067a565b81620005b757600090506200067a565b8160018114620005d05760028114620005db5762000611565b60019150506200067a565b60ff841115620005f057620005ef6200079b565b5b8360020a9150848211156200060a57620006096200079b565b5b506200067a565b5060208310610133831016604e8410600b84101617156200064b5782820a9050838111156200064557620006446200079b565b5b6200067a565b6200065a8484846001620004e9565b925090508184048111156200067457620006736200079b565b5b81810290505b9392505050565b60006200068e82620006e2565b91506200069b83620006e2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006d757620006d66200079b565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000719578082015181840152602081019050620006fc565b8381111562000729576000848401525b50505050565b600060028204905060018216806200074857607f821691505b602082108114156200075f576200075e620007ca565b5b50919050565b62000770826200083c565b810181811067ffffffffffffffff82111715620007925762000791620007f9565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f5374616e6461726445524332303a20737570706c792063616e6e6f742062652060008201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b620008b481620006e2565b8114620008c057600080fd5b50565b620008ce81620006ec565b8114620008da57600080fd5b50565b60805160f81c611796620008fc6000396000610d3201526117966000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063395093511161008c57806395d89b411161006657806395d89b411461023c578063a457c2d71461025a578063a9059cbb1461028a578063dd62ed3e146102ba576100cf565b806339509351146101be57806370a08231146101ee5780638da5cb5b1461021e576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce567146101705780633177029f1461018e575b600080fd5b6100dc6102ea565b6040516100e99190611025565b60405180910390f35b61010c60048036038101906101079190610e45565b61037c565b604051610119919061100a565b60405180910390f35b61012a61039a565b6040516101379190611127565b60405180910390f35b61015a60048036038101906101559190610df2565b6103a4565b604051610167919061100a565b60405180910390f35b6101786104a5565b6040516101859190611142565b60405180910390f35b6101a860048036038101906101a39190610e45565b6104b4565b6040516101b5919061100a565b60405180910390f35b6101d860048036038101906101d39190610e45565b610597565b6040516101e5919061100a565b60405180910390f35b61020860048036038101906102039190610d85565b610643565b6040516102159190611127565b60405180910390f35b61022661068b565b6040516102339190610fef565b60405180910390f35b6102446106b1565b6040516102519190611025565b60405180910390f35b610274600480360381019061026f9190610e45565b610743565b604051610281919061100a565b60405180910390f35b6102a4600480360381019061029f9190610e45565b610837565b6040516102b1919061100a565b60405180910390f35b6102d460048036038101906102cf9190610db2565b610855565b6040516102e19190611127565b60405180910390f35b6060600380546102f990611456565b80601f016020809104026020016040519081016040528092919081815260200182805461032590611456565b80156103725780601f1061034757610100808354040283529160200191610372565b820191906000526020600020905b81548152906001019060200180831161035557829003601f168201915b5050505050905090565b60006103906103896108dc565b84846108e4565b6001905092915050565b6000600254905090565b60006103b1848484610aaf565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103fc6108dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561047c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610473906110a7565b60405180910390fd5b610499856104886108dc565b8584610494919061139a565b6108e4565b60019150509392505050565b60006104af610d2e565b905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461051057600080fd5b600082111561058d576105216104a5565b600a61052d9190611222565b826105389190611340565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105859190611179565b925050819055505b6001905092915050565b60006106396105a46108dc565b8484600160006105b26108dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106349190611179565b6108e4565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546106c090611456565b80601f01602080910402602001604051908101604052809291908181526020018280546106ec90611456565b80156107395780601f1061070e57610100808354040283529160200191610739565b820191906000526020600020905b81548152906001019060200180831161071c57829003601f168201915b5050505050905090565b600080600160006107526108dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080690611107565b60405180910390fd5b61082c61081a6108dc565b858584610827919061139a565b6108e4565b600191505092915050565b600061084b6108446108dc565b8484610aaf565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094b906110e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90611067565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610aa29190611127565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b16906110c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8690611047565b60405180910390fd5b610b9a838383610d56565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790611087565b60405180910390fd5b8181610c2c919061139a565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610cbc9190611179565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d209190611127565b60405180910390a350505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b505050565b600081359050610d6a81611732565b92915050565b600081359050610d7f81611749565b92915050565b600060208284031215610d9b57610d9a6114e6565b5b6000610da984828501610d5b565b91505092915050565b60008060408385031215610dc957610dc86114e6565b5b6000610dd785828601610d5b565b9250506020610de885828601610d5b565b9150509250929050565b600080600060608486031215610e0b57610e0a6114e6565b5b6000610e1986828701610d5b565b9350506020610e2a86828701610d5b565b9250506040610e3b86828701610d70565b9150509250925092565b60008060408385031215610e5c57610e5b6114e6565b5b6000610e6a85828601610d5b565b9250506020610e7b85828601610d70565b9150509250929050565b610e8e816113ce565b82525050565b610e9d816113e0565b82525050565b6000610eae8261115d565b610eb88185611168565b9350610ec8818560208601611423565b610ed1816114eb565b840191505092915050565b6000610ee9602383611168565b9150610ef482611509565b604082019050919050565b6000610f0c602283611168565b9150610f1782611558565b604082019050919050565b6000610f2f602683611168565b9150610f3a826115a7565b604082019050919050565b6000610f52602883611168565b9150610f5d826115f6565b604082019050919050565b6000610f75602583611168565b9150610f8082611645565b604082019050919050565b6000610f98602483611168565b9150610fa382611694565b604082019050919050565b6000610fbb602583611168565b9150610fc6826116e3565b604082019050919050565b610fda8161140c565b82525050565b610fe981611416565b82525050565b60006020820190506110046000830184610e85565b92915050565b600060208201905061101f6000830184610e94565b92915050565b6000602082019050818103600083015261103f8184610ea3565b905092915050565b6000602082019050818103600083015261106081610edc565b9050919050565b6000602082019050818103600083015261108081610eff565b9050919050565b600060208201905081810360008301526110a081610f22565b9050919050565b600060208201905081810360008301526110c081610f45565b9050919050565b600060208201905081810360008301526110e081610f68565b9050919050565b6000602082019050818103600083015261110081610f8b565b9050919050565b6000602082019050818103600083015261112081610fae565b9050919050565b600060208201905061113c6000830184610fd1565b92915050565b60006020820190506111576000830184610fe0565b92915050565b600081519050919050565b600082825260208201905092915050565b60006111848261140c565b915061118f8361140c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156111c4576111c3611488565b5b828201905092915050565b6000808291508390505b6001851115611219578086048111156111f5576111f4611488565b5b60018516156112045780820291505b8081029050611212856114fc565b94506111d9565b94509492505050565b600061122d8261140c565b915061123883611416565b92506112657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461126d565b905092915050565b60008261127d5760019050611339565b8161128b5760009050611339565b81600181146112a157600281146112ab576112da565b6001915050611339565b60ff8411156112bd576112bc611488565b5b8360020a9150848211156112d4576112d3611488565b5b50611339565b5060208310610133831016604e8410600b841016171561130f5782820a90508381111561130a57611309611488565b5b611339565b61131c84848460016111cf565b9250905081840481111561133357611332611488565b5b81810290505b9392505050565b600061134b8261140c565b91506113568361140c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561138f5761138e611488565b5b828202905092915050565b60006113a58261140c565b91506113b08361140c565b9250828210156113c3576113c2611488565b5b828203905092915050565b60006113d9826113ec565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611441578082015181840152602081019050611426565b83811115611450576000848401525b50505050565b6000600282049050600182168061146e57607f821691505b60208210811415611482576114816114b7565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61173b816113ce565b811461174657600080fd5b50565b6117528161140c565b811461175d57600080fd5b5056fea26469706673582212203d81c086bc5599c1bcbcb3e444f083d264e7679a338b900d796724cf7bcc730e64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000000000000000184d656d6f20496e75207777772e6d656d6f696e752e636f6d000000000000000000000000000000000000000000000000000000000000000000000000000000044d454d4f00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063395093511161008c57806395d89b411161006657806395d89b411461023c578063a457c2d71461025a578063a9059cbb1461028a578063dd62ed3e146102ba576100cf565b806339509351146101be57806370a08231146101ee5780638da5cb5b1461021e576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce567146101705780633177029f1461018e575b600080fd5b6100dc6102ea565b6040516100e99190611025565b60405180910390f35b61010c60048036038101906101079190610e45565b61037c565b604051610119919061100a565b60405180910390f35b61012a61039a565b6040516101379190611127565b60405180910390f35b61015a60048036038101906101559190610df2565b6103a4565b604051610167919061100a565b60405180910390f35b6101786104a5565b6040516101859190611142565b60405180910390f35b6101a860048036038101906101a39190610e45565b6104b4565b6040516101b5919061100a565b60405180910390f35b6101d860048036038101906101d39190610e45565b610597565b6040516101e5919061100a565b60405180910390f35b61020860048036038101906102039190610d85565b610643565b6040516102159190611127565b60405180910390f35b61022661068b565b6040516102339190610fef565b60405180910390f35b6102446106b1565b6040516102519190611025565b60405180910390f35b610274600480360381019061026f9190610e45565b610743565b604051610281919061100a565b60405180910390f35b6102a4600480360381019061029f9190610e45565b610837565b6040516102b1919061100a565b60405180910390f35b6102d460048036038101906102cf9190610db2565b610855565b6040516102e19190611127565b60405180910390f35b6060600380546102f990611456565b80601f016020809104026020016040519081016040528092919081815260200182805461032590611456565b80156103725780601f1061034757610100808354040283529160200191610372565b820191906000526020600020905b81548152906001019060200180831161035557829003601f168201915b5050505050905090565b60006103906103896108dc565b84846108e4565b6001905092915050565b6000600254905090565b60006103b1848484610aaf565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103fc6108dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561047c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610473906110a7565b60405180910390fd5b610499856104886108dc565b8584610494919061139a565b6108e4565b60019150509392505050565b60006104af610d2e565b905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461051057600080fd5b600082111561058d576105216104a5565b600a61052d9190611222565b826105389190611340565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105859190611179565b925050819055505b6001905092915050565b60006106396105a46108dc565b8484600160006105b26108dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106349190611179565b6108e4565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546106c090611456565b80601f01602080910402602001604051908101604052809291908181526020018280546106ec90611456565b80156107395780601f1061070e57610100808354040283529160200191610739565b820191906000526020600020905b81548152906001019060200180831161071c57829003601f168201915b5050505050905090565b600080600160006107526108dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080690611107565b60405180910390fd5b61082c61081a6108dc565b858584610827919061139a565b6108e4565b600191505092915050565b600061084b6108446108dc565b8484610aaf565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094b906110e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90611067565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610aa29190611127565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b16906110c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8690611047565b60405180910390fd5b610b9a838383610d56565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790611087565b60405180910390fd5b8181610c2c919061139a565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610cbc9190611179565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d209190611127565b60405180910390a350505050565b60007f0000000000000000000000000000000000000000000000000000000000000012905090565b505050565b600081359050610d6a81611732565b92915050565b600081359050610d7f81611749565b92915050565b600060208284031215610d9b57610d9a6114e6565b5b6000610da984828501610d5b565b91505092915050565b60008060408385031215610dc957610dc86114e6565b5b6000610dd785828601610d5b565b9250506020610de885828601610d5b565b9150509250929050565b600080600060608486031215610e0b57610e0a6114e6565b5b6000610e1986828701610d5b565b9350506020610e2a86828701610d5b565b9250506040610e3b86828701610d70565b9150509250925092565b60008060408385031215610e5c57610e5b6114e6565b5b6000610e6a85828601610d5b565b9250506020610e7b85828601610d70565b9150509250929050565b610e8e816113ce565b82525050565b610e9d816113e0565b82525050565b6000610eae8261115d565b610eb88185611168565b9350610ec8818560208601611423565b610ed1816114eb565b840191505092915050565b6000610ee9602383611168565b9150610ef482611509565b604082019050919050565b6000610f0c602283611168565b9150610f1782611558565b604082019050919050565b6000610f2f602683611168565b9150610f3a826115a7565b604082019050919050565b6000610f52602883611168565b9150610f5d826115f6565b604082019050919050565b6000610f75602583611168565b9150610f8082611645565b604082019050919050565b6000610f98602483611168565b9150610fa382611694565b604082019050919050565b6000610fbb602583611168565b9150610fc6826116e3565b604082019050919050565b610fda8161140c565b82525050565b610fe981611416565b82525050565b60006020820190506110046000830184610e85565b92915050565b600060208201905061101f6000830184610e94565b92915050565b6000602082019050818103600083015261103f8184610ea3565b905092915050565b6000602082019050818103600083015261106081610edc565b9050919050565b6000602082019050818103600083015261108081610eff565b9050919050565b600060208201905081810360008301526110a081610f22565b9050919050565b600060208201905081810360008301526110c081610f45565b9050919050565b600060208201905081810360008301526110e081610f68565b9050919050565b6000602082019050818103600083015261110081610f8b565b9050919050565b6000602082019050818103600083015261112081610fae565b9050919050565b600060208201905061113c6000830184610fd1565b92915050565b60006020820190506111576000830184610fe0565b92915050565b600081519050919050565b600082825260208201905092915050565b60006111848261140c565b915061118f8361140c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156111c4576111c3611488565b5b828201905092915050565b6000808291508390505b6001851115611219578086048111156111f5576111f4611488565b5b60018516156112045780820291505b8081029050611212856114fc565b94506111d9565b94509492505050565b600061122d8261140c565b915061123883611416565b92506112657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461126d565b905092915050565b60008261127d5760019050611339565b8161128b5760009050611339565b81600181146112a157600281146112ab576112da565b6001915050611339565b60ff8411156112bd576112bc611488565b5b8360020a9150848211156112d4576112d3611488565b5b50611339565b5060208310610133831016604e8410600b841016171561130f5782820a90508381111561130a57611309611488565b5b611339565b61131c84848460016111cf565b9250905081840481111561133357611332611488565b5b81810290505b9392505050565b600061134b8261140c565b91506113568361140c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561138f5761138e611488565b5b828202905092915050565b60006113a58261140c565b91506113b08361140c565b9250828210156113c3576113c2611488565b5b828203905092915050565b60006113d9826113ec565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611441578082015181840152602081019050611426565b83811115611450576000848401525b50505050565b6000600282049050600182168061146e57607f821691505b60208210811415611482576114816114b7565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61173b816113ce565b811461174657600080fd5b50565b6117528161140c565b811461175d57600080fd5b5056fea26469706673582212203d81c086bc5599c1bcbcb3e444f083d264e7679a338b900d796724cf7bcc730e64736f6c63430008070033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000000000000000184d656d6f20496e75207777772e6d656d6f696e752e636f6d000000000000000000000000000000000000000000000000000000000000000000000000000000044d454d4f00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Memo Inu www.memoinu.com
Arg [1] : symbol_ (string): MEMO
Arg [2] : decimals_ (uint8): 18
Arg [3] : initialBalance_ (uint256): 1000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000e8d4a51000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000018
Arg [5] : 4d656d6f20496e75207777772e6d656d6f696e752e636f6d0000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4d454d4f00000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

15890:926:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6129:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8296:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7249:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8947:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16461:107;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16580:233;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9778:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7420:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15935:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6348:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10496:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7760:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7998:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6129:100;6183:13;6216:5;6209:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6129:100;:::o;8296:169::-;8379:4;8396:39;8405:12;:10;:12::i;:::-;8419:7;8428:6;8396:8;:39::i;:::-;8453:4;8446:11;;8296:169;;;;:::o;7249:108::-;7310:7;7337:12;;7330:19;;7249:108;:::o;8947:422::-;9053:4;9070:36;9080:6;9088:9;9099:6;9070:9;:36::i;:::-;9119:24;9146:11;:19;9158:6;9146:19;;;;;;;;;;;;;;;:33;9166:12;:10;:12::i;:::-;9146:33;;;;;;;;;;;;;;;;9119:60;;9218:6;9198:16;:26;;9190:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9280:57;9289:6;9297:12;:10;:12::i;:::-;9330:6;9311:16;:25;;;;:::i;:::-;9280:8;:57::i;:::-;9357:4;9350:11;;;8947:422;;;;;:::o;16461:107::-;16519:5;16544:16;:14;:16::i;:::-;16537:23;;16461:107;:::o;16580:233::-;16657:4;16696:5;;;;;;;;;;;16682:19;;:10;:19;;;16674:28;;;;;;16729:1;16716:10;:14;16713:71;;;16771:10;:8;:10::i;:::-;16767:2;:14;;;;:::i;:::-;16755:10;:27;;;;:::i;:::-;16733:9;:18;16743:7;16733:18;;;;;;;;;;;;;;;;:49;;;;;;;:::i;:::-;;;;;;;;16713:71;16801:4;16794:11;;16580:233;;;;:::o;9778:215::-;9866:4;9883:80;9892:12;:10;:12::i;:::-;9906:7;9952:10;9915:11;:25;9927:12;:10;:12::i;:::-;9915:25;;;;;;;;;;;;;;;:34;9941:7;9915:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9883:8;:80::i;:::-;9981:4;9974:11;;9778:215;;;;:::o;7420:127::-;7494:7;7521:9;:18;7531:7;7521:18;;;;;;;;;;;;;;;;7514:25;;7420:127;;;:::o;15935:20::-;;;;;;;;;;;;;:::o;6348:104::-;6404:13;6437:7;6430:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6348:104;:::o;10496:377::-;10589:4;10606:24;10633:11;:25;10645:12;:10;:12::i;:::-;10633:25;;;;;;;;;;;;;;;:34;10659:7;10633:34;;;;;;;;;;;;;;;;10606:61;;10706:15;10686:16;:35;;10678:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10774:67;10783:12;:10;:12::i;:::-;10797:7;10825:15;10806:16;:34;;;;:::i;:::-;10774:8;:67::i;:::-;10861:4;10854:11;;;10496:377;;;;:::o;7760:175::-;7846:4;7863:42;7873:12;:10;:12::i;:::-;7887:9;7898:6;7863:9;:42::i;:::-;7923:4;7916:11;;7760:175;;;;:::o;7998:151::-;8087:7;8114:11;:18;8126:5;8114:18;;;;;;;;;;;;;;;:27;8133:7;8114:27;;;;;;;;;;;;;;;;8107:34;;7998:151;;;;:::o;3827:98::-;3880:7;3907:10;3900:17;;3827:98;:::o;13852:346::-;13971:1;13954:19;;:5;:19;;;;13946:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14052:1;14033:21;;:7;:21;;;;14025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14136:6;14106:11;:18;14118:5;14106:18;;;;;;;;;;;;;;;:27;14125:7;14106:27;;;;;;;;;;;;;;;:36;;;;14174:7;14158:32;;14167:5;14158:32;;;14183:6;14158:32;;;;;;:::i;:::-;;;;;;;;13852:346;;;:::o;11363:604::-;11487:1;11469:20;;:6;:20;;;;11461:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11571:1;11550:23;;:9;:23;;;;11542:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11626:47;11647:6;11655:9;11666:6;11626:20;:47::i;:::-;11686:21;11710:9;:17;11720:6;11710:17;;;;;;;;;;;;;;;;11686:41;;11763:6;11746:13;:23;;11738:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11859:6;11843:13;:22;;;;:::i;:::-;11823:9;:17;11833:6;11823:17;;;;;;;;;;;;;;;:42;;;;11900:6;11876:9;:20;11886:9;11876:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11941:9;11924:35;;11933:6;11924:35;;;11952:6;11924:35;;;;;;:::i;:::-;;;;;;;;11450:517;11363:604;;;:::o;15345:100::-;15403:5;15428:9;15421:16;;15345:100;:::o;14801:92::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:118::-;2304:24;2322:5;2304:24;:::i;:::-;2299:3;2292:37;2217:118;;:::o;2341:109::-;2422:21;2437:5;2422:21;:::i;:::-;2417:3;2410:34;2341:109;;:::o;2456:364::-;2544:3;2572:39;2605:5;2572:39;:::i;:::-;2627:71;2691:6;2686:3;2627:71;:::i;:::-;2620:78;;2707:52;2752:6;2747:3;2740:4;2733:5;2729:16;2707:52;:::i;:::-;2784:29;2806:6;2784:29;:::i;:::-;2779:3;2775:39;2768:46;;2548:272;2456:364;;;;:::o;2826:366::-;2968:3;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3065:93;3154:3;3065:93;:::i;:::-;3183:2;3178:3;3174:12;3167:19;;2826:366;;;:::o;3198:::-;3340:3;3361:67;3425:2;3420:3;3361:67;:::i;:::-;3354:74;;3437:93;3526:3;3437:93;:::i;:::-;3555:2;3550:3;3546:12;3539:19;;3198:366;;;:::o;3570:::-;3712:3;3733:67;3797:2;3792:3;3733:67;:::i;:::-;3726:74;;3809:93;3898:3;3809:93;:::i;:::-;3927:2;3922:3;3918:12;3911:19;;3570:366;;;:::o;3942:::-;4084:3;4105:67;4169:2;4164:3;4105:67;:::i;:::-;4098:74;;4181:93;4270:3;4181:93;:::i;:::-;4299:2;4294:3;4290:12;4283:19;;3942:366;;;:::o;4314:::-;4456:3;4477:67;4541:2;4536:3;4477:67;:::i;:::-;4470:74;;4553:93;4642:3;4553:93;:::i;:::-;4671:2;4666:3;4662:12;4655:19;;4314:366;;;:::o;4686:::-;4828:3;4849:67;4913:2;4908:3;4849:67;:::i;:::-;4842:74;;4925:93;5014:3;4925:93;:::i;:::-;5043:2;5038:3;5034:12;5027:19;;4686:366;;;:::o;5058:::-;5200:3;5221:67;5285:2;5280:3;5221:67;:::i;:::-;5214:74;;5297:93;5386:3;5297:93;:::i;:::-;5415:2;5410:3;5406:12;5399:19;;5058:366;;;:::o;5430:118::-;5517:24;5535:5;5517:24;:::i;:::-;5512:3;5505:37;5430:118;;:::o;5554:112::-;5637:22;5653:5;5637:22;:::i;:::-;5632:3;5625:35;5554:112;;:::o;5672:222::-;5765:4;5803:2;5792:9;5788:18;5780:26;;5816:71;5884:1;5873:9;5869:17;5860:6;5816:71;:::i;:::-;5672:222;;;;:::o;5900:210::-;5987:4;6025:2;6014:9;6010:18;6002:26;;6038:65;6100:1;6089:9;6085:17;6076:6;6038:65;:::i;:::-;5900:210;;;;:::o;6116:313::-;6229:4;6267:2;6256:9;6252:18;6244:26;;6316:9;6310:4;6306:20;6302:1;6291:9;6287:17;6280:47;6344:78;6417:4;6408:6;6344:78;:::i;:::-;6336:86;;6116:313;;;;:::o;6435:419::-;6601:4;6639:2;6628:9;6624:18;6616:26;;6688:9;6682:4;6678:20;6674:1;6663:9;6659:17;6652:47;6716:131;6842:4;6716:131;:::i;:::-;6708:139;;6435:419;;;:::o;6860:::-;7026:4;7064:2;7053:9;7049:18;7041:26;;7113:9;7107:4;7103:20;7099:1;7088:9;7084:17;7077:47;7141:131;7267:4;7141:131;:::i;:::-;7133:139;;6860:419;;;:::o;7285:::-;7451:4;7489:2;7478:9;7474:18;7466:26;;7538:9;7532:4;7528:20;7524:1;7513:9;7509:17;7502:47;7566:131;7692:4;7566:131;:::i;:::-;7558:139;;7285:419;;;:::o;7710:::-;7876:4;7914:2;7903:9;7899:18;7891:26;;7963:9;7957:4;7953:20;7949:1;7938:9;7934:17;7927:47;7991:131;8117:4;7991:131;:::i;:::-;7983:139;;7710:419;;;:::o;8135:::-;8301:4;8339:2;8328:9;8324:18;8316:26;;8388:9;8382:4;8378:20;8374:1;8363:9;8359:17;8352:47;8416:131;8542:4;8416:131;:::i;:::-;8408:139;;8135:419;;;:::o;8560:::-;8726:4;8764:2;8753:9;8749:18;8741:26;;8813:9;8807:4;8803:20;8799:1;8788:9;8784:17;8777:47;8841:131;8967:4;8841:131;:::i;:::-;8833:139;;8560:419;;;:::o;8985:::-;9151:4;9189:2;9178:9;9174:18;9166:26;;9238:9;9232:4;9228:20;9224:1;9213:9;9209:17;9202:47;9266:131;9392:4;9266:131;:::i;:::-;9258:139;;8985:419;;;:::o;9410:222::-;9503:4;9541:2;9530:9;9526:18;9518:26;;9554:71;9622:1;9611:9;9607:17;9598:6;9554:71;:::i;:::-;9410:222;;;;:::o;9638:214::-;9727:4;9765:2;9754:9;9750:18;9742:26;;9778:67;9842:1;9831:9;9827:17;9818:6;9778:67;:::i;:::-;9638:214;;;;:::o;9939:99::-;9991:6;10025:5;10019:12;10009:22;;9939:99;;;:::o;10044:169::-;10128:11;10162:6;10157:3;10150:19;10202:4;10197:3;10193:14;10178:29;;10044:169;;;;:::o;10219:305::-;10259:3;10278:20;10296:1;10278:20;:::i;:::-;10273:25;;10312:20;10330:1;10312:20;:::i;:::-;10307:25;;10466:1;10398:66;10394:74;10391:1;10388:81;10385:107;;;10472:18;;:::i;:::-;10385:107;10516:1;10513;10509:9;10502:16;;10219:305;;;;:::o;10530:848::-;10591:5;10598:4;10622:6;10613:15;;10646:5;10637:14;;10660:712;10681:1;10671:8;10668:15;10660:712;;;10776:4;10771:3;10767:14;10761:4;10758:24;10755:50;;;10785:18;;:::i;:::-;10755:50;10835:1;10825:8;10821:16;10818:451;;;11250:4;11243:5;11239:16;11230:25;;10818:451;11300:4;11294;11290:15;11282:23;;11330:32;11353:8;11330:32;:::i;:::-;11318:44;;10660:712;;;10530:848;;;;;;;:::o;11384:281::-;11442:5;11466:23;11484:4;11466:23;:::i;:::-;11458:31;;11510:25;11526:8;11510:25;:::i;:::-;11498:37;;11554:104;11591:66;11581:8;11575:4;11554:104;:::i;:::-;11545:113;;11384:281;;;;:::o;11671:1073::-;11725:5;11916:8;11906:40;;11937:1;11928:10;;11939:5;;11906:40;11965:4;11955:36;;11982:1;11973:10;;11984:5;;11955:36;12051:4;12099:1;12094:27;;;;12135:1;12130:191;;;;12044:277;;12094:27;12112:1;12103:10;;12114:5;;;12130:191;12175:3;12165:8;12162:17;12159:43;;;12182:18;;:::i;:::-;12159:43;12231:8;12228:1;12224:16;12215:25;;12266:3;12259:5;12256:14;12253:40;;;12273:18;;:::i;:::-;12253:40;12306:5;;;12044:277;;12430:2;12420:8;12417:16;12411:3;12405:4;12402:13;12398:36;12380:2;12370:8;12367:16;12362:2;12356:4;12353:12;12349:35;12333:111;12330:246;;;12486:8;12480:4;12476:19;12467:28;;12521:3;12514:5;12511:14;12508:40;;;12528:18;;:::i;:::-;12508:40;12561:5;;12330:246;12601:42;12639:3;12629:8;12623:4;12620:1;12601:42;:::i;:::-;12586:57;;;;12675:4;12670:3;12666:14;12659:5;12656:25;12653:51;;;12684:18;;:::i;:::-;12653:51;12733:4;12726:5;12722:16;12713:25;;11671:1073;;;;;;:::o;12750:348::-;12790:7;12813:20;12831:1;12813:20;:::i;:::-;12808:25;;12847:20;12865:1;12847:20;:::i;:::-;12842:25;;13035:1;12967:66;12963:74;12960:1;12957:81;12952:1;12945:9;12938:17;12934:105;12931:131;;;13042:18;;:::i;:::-;12931:131;13090:1;13087;13083:9;13072:20;;12750:348;;;;:::o;13104:191::-;13144:4;13164:20;13182:1;13164:20;:::i;:::-;13159:25;;13198:20;13216:1;13198:20;:::i;:::-;13193:25;;13237:1;13234;13231:8;13228:34;;;13242:18;;:::i;:::-;13228:34;13287:1;13284;13280:9;13272:17;;13104:191;;;;:::o;13301:96::-;13338:7;13367:24;13385:5;13367:24;:::i;:::-;13356:35;;13301:96;;;:::o;13403:90::-;13437:7;13480:5;13473:13;13466:21;13455:32;;13403:90;;;:::o;13499:126::-;13536:7;13576:42;13569:5;13565:54;13554:65;;13499:126;;;:::o;13631:77::-;13668:7;13697:5;13686:16;;13631:77;;;:::o;13714:86::-;13749:7;13789:4;13782:5;13778:16;13767:27;;13714:86;;;:::o;13806:307::-;13874:1;13884:113;13898:6;13895:1;13892:13;13884:113;;;13983:1;13978:3;13974:11;13968:18;13964:1;13959:3;13955:11;13948:39;13920:2;13917:1;13913:10;13908:15;;13884:113;;;14015:6;14012:1;14009:13;14006:101;;;14095:1;14086:6;14081:3;14077:16;14070:27;14006:101;13855:258;13806:307;;;:::o;14119:320::-;14163:6;14200:1;14194:4;14190:12;14180:22;;14247:1;14241:4;14237:12;14268:18;14258:81;;14324:4;14316:6;14312:17;14302:27;;14258:81;14386:2;14378:6;14375:14;14355:18;14352:38;14349:84;;;14405:18;;:::i;:::-;14349:84;14170:269;14119:320;;;:::o;14445:180::-;14493:77;14490:1;14483:88;14590:4;14587:1;14580:15;14614:4;14611:1;14604:15;14631:180;14679:77;14676:1;14669:88;14776:4;14773:1;14766:15;14800:4;14797:1;14790:15;14940:117;15049:1;15046;15039:12;15063:102;15104:6;15155:2;15151:7;15146:2;15139:5;15135:14;15131:28;15121:38;;15063:102;;;:::o;15171:::-;15213:8;15260:5;15257:1;15253:13;15232:34;;15171:102;;;:::o;15279:222::-;15419:34;15415:1;15407:6;15403:14;15396:58;15488:5;15483:2;15475:6;15471:15;15464:30;15279:222;:::o;15507:221::-;15647:34;15643:1;15635:6;15631:14;15624:58;15716:4;15711:2;15703:6;15699:15;15692:29;15507:221;:::o;15734:225::-;15874:34;15870:1;15862:6;15858:14;15851:58;15943:8;15938:2;15930:6;15926:15;15919:33;15734:225;:::o;15965:227::-;16105:34;16101:1;16093:6;16089:14;16082:58;16174:10;16169:2;16161:6;16157:15;16150:35;15965:227;:::o;16198:224::-;16338:34;16334:1;16326:6;16322:14;16315:58;16407:7;16402:2;16394:6;16390:15;16383:32;16198:224;:::o;16428:223::-;16568:34;16564:1;16556:6;16552:14;16545:58;16637:6;16632:2;16624:6;16620:15;16613:31;16428:223;:::o;16657:224::-;16797:34;16793:1;16785:6;16781:14;16774:58;16866:7;16861:2;16853:6;16849:15;16842:32;16657:224;:::o;16887:122::-;16960:24;16978:5;16960:24;:::i;:::-;16953:5;16950:35;16940:63;;16999:1;16996;16989:12;16940:63;16887:122;:::o;17015:::-;17088:24;17106:5;17088:24;:::i;:::-;17081:5;17078:35;17068:63;;17127:1;17124;17117:12;17068:63;17015:122;:::o

Swarm Source

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