ETH Price: $3,347.11 (-1.51%)

Token

Marblecoin (MBC)
 

Overview

Max Total Supply

100,000,000 MBC

Holders

358 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$77,700,872.22

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
200 MBC

Value
$155.40 ( ~0.0464281348783732 Eth) [0.0002%]
0xB9E01c381C7c1b86BfF7d0EC08343e0bE8f0640A
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Marble.Cards turns web pages into digital collectable cards. Almost any URL on the internet can be turned into a card, but only once.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MarbleCoin

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-08-04
*/

pragma solidity ^0.5.10;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see `ERC20Detailed`.
 */
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.
     *
     * > 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);
}


// Contract function to receive approval and execute function in one call
contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes memory data) public;
}



/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev Give an account access to this role.
     */
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    /**
     * @dev Remove an account's access to this role.
     */
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    /**
     * @dev Check if an account has this role.
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}


contract AdministratorRole {
    using Roles for Roles.Role;

    event AdministratorAdded(address indexed account);
    event AdministratorRemoved(address indexed account);

    Roles.Role private _administrators;

    constructor () internal {
        _addAdministrator(msg.sender);
    }

    modifier onlyAdministrator() {
        require(isAdministrator(msg.sender), "AdministratorRole: caller does not have the Administrator role");
        _;
    }

    function isAdministrator(address account) public view returns (bool) {
        return _administrators.has(account);
    }

    function addAdministrator(address account) public onlyAdministrator {
        _addAdministrator(account);
    }

    function renounceAdministrator() public {
        _removeAdministrator(msg.sender);
    }

    function _addAdministrator(address account) internal {
        _administrators.add(account);
        emit AdministratorAdded(account);
    }

    function _removeAdministrator(address account) internal {
        _administrators.remove(account);
        emit AdministratorRemoved(account);
    }
}







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

        return c;
    }

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

        return c;
    }

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

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

        return c;
    }

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

        return c;
    }

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


/**
 * @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 `ERC20Mintable`.
 *
 * *For a detailed writeup see our guide [How to implement supply
 * mechanisms](https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226).*
 *
 * 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 IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

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

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

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

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

    /**
     * @dev See `IERC20.approve`.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        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 `value`.
     * - the caller must have allowance for `sender`'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(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 returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(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 returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(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 {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(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 {
        require(account != address(0), "ERC20: mint to the zero address");

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

     /**
     * @dev Destoys `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 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an `Approval` event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Destoys `amount` tokens from `account`.`amount` is then deducted
     * from the caller's allowance.
     *
     * See `_burn` and `_approve`.
     */
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
    }
}





/**
 * @dev Optional functions from the ERC20 standard.
 */
contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of
     * these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view 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.
     *
     * > Note that 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 returns (uint8) {
        return _decimals;
    }
}





/**
 * @dev Extension of `ERC20` that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
contract ERC20Burnable is ERC20 {
    /**
     * @dev Destoys `amount` tokens from the caller.
     *
     * See `ERC20._burn`.
     */
    function burn(uint256 amount) public {
        _burn(msg.sender, amount);
    }

    /**
     * @dev See `ERC20._burnFrom`.
     */
    function burnFrom(address account, uint256 amount) public {
        _burnFrom(account, amount);
    }
}



// Owned contract
contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = msg.sender;
    }

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == owner;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }

    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}



// The Marblecoin (MBC) contract.
// Initial supply of 100 Million MBC without a capped supply.
//   Contract owner may elect to permanently freeze inflation.
//
// Built by [email protected] for Marble.Cards

// ERC20 implements the standard ERC20 interface
// Owned provides superpowers to the contract deployer
// AdministratorRole allows for non-owners to be allowed to perform actions on the contract
// ERC20Detailed adds "name", "symbol", and "decimal" values
// ERC20Burnable allows for coins to be burned by anyone
contract MarbleCoin is ERC20, Owned, AdministratorRole, ERC20Detailed, ERC20Burnable {

    // Set to true when inflation is frozen.
    bool private _supplycapped = false;

    // 18 decimal token
    uint256 private MBC = 1e18;

    // Defines the initial contract
    constructor () public ERC20Detailed("Marblecoin", "MBC", 18) {
        // Generate 100 million tokens in the contract owner's account
        mint(msg.sender, 100000000 * MBC);
    }

    // Modifier to revert if msg.sender is not an Administrator or the Owner account.
    modifier onlyAdministratorOrOwner() {
        require(isAdministrator(msg.sender) || isOwner());
        _;
    }

    // Override the addAdministrator function to only allow the owner or other administrators to create
    function addAdministrator(address account) public onlyOwner {
        _addAdministrator(account);
    }

    // Allow Administrator or Owner to remove an Administrator
    function removeAdministrator(address account) public onlyOwner {
        _removeAdministrator(account);
    }

    // Override the default ownership renunciation to prevent accidental or malicious renunciation.
    function renounceOwnership() public onlyOwner {
    }

    // Pausable functionality modified from openzeppelin.

    // State variable, true if the contract is paused.
    bool private _paused;

    // Modifier to allow actions only when the contract IS NOT paused
    modifier whenNotPaused() {
        require(!_paused);
        _;
    }

    // Modifier to allow actions only when the contract IS paused
    modifier whenPaused() {
        require(_paused);
        _;
    }

    function paused() public view returns (bool) {
        return _paused;
    }

    // Called by owner or admin role to pause the contract in the case of a bug or exploit.
    function pause() external onlyAdministratorOrOwner whenNotPaused {
        _paused = true;
    }

    // Unpauses the contract
    // Should only be called by the owner because the contract may be paused due to a compromised Administrator account.
    function unpause() public onlyOwner whenPaused {
        _paused = false;
    }

    // Add modifier to disallow transfers during pause
    function transfer(address recipient, uint256 amount) public whenNotPaused returns (bool) {
        return super.transfer(recipient, amount);
    }

    // Convenience function to transfer MBC in whole units
    // Add modifier to disallow transfers during pause
    function transferMBC(address recipient, uint256 amount) public whenNotPaused returns (bool) {
        return super.transfer(recipient, amount * MBC);
    }

    // Add modifier to disallow transferFrom during pause
    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    // Convenience function to transfer MBC in whole units
    // Add modifier to disallow transferFrom during pause
    function transferMBCFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value * MBC);
    }

    // Allows an administrator or owner to mint a number of coins
    function mint(address account, uint256 amount) public onlyAdministratorOrOwner whenNotPaused returns (bool) {
        require(totalSupply() + amount > totalSupply(), "Increase in supply would cause overflow.");
        require(!isSupplyCapped(), "Supply has been capped.");
        _mint(account, amount);
        return true;
    }

    // Helper to mint whole amounts
    function mintMBC(address account, uint256 amount) public onlyAdministratorOrOwner whenNotPaused returns (bool) {
        return mint(account, amount * MBC);
    }

    // An administator or the contract owner can prevent the minting of new coins
    // This is a one-way function. Once the supply is capped it can't be uncapped.
    function freezeMint() public onlyOwner returns (bool) {
        _supplycapped = true;
        return isSupplyCapped();
    }

    // View function to check whether the supply has been capped.
    function isSupplyCapped() public view returns (bool) {
        return _supplycapped;
    }

    // Helper to burn MBC whole units (amount * 1e18)
    function burnMBC(uint256 amount) public {
        burn(amount * MBC);
    }

    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account. The `spender` contract function
    // `receiveApproval(...)` is then executed
    function approveAndCall(address spender, uint tokens, bytes memory data) public returns (bool success) {
        _approve(msg.sender, spender, tokens);
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data);
        return true;
    }

    // Don't accept ETH
    function () external payable {
        revert();
    }

    // Owner can transfer out any accidentally sent ERC20 tokens
    function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyAdministratorOrOwner returns (bool success) {
        return ERC20(tokenAddress).transfer(owner, tokens);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isAdministrator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isSupplyCapped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removeAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"freezeMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"mintMBC","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferMBC","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burnMBC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferMBCFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AdministratorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AdministratorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526008805461ff0019169055670de0b6b3a76400006009553480156200002857600080fd5b50604080518082018252600a81527f4d6172626c65636f696e00000000000000000000000000000000000000000000602080830191909152825180840190935260038084527f4d424300000000000000000000000000000000000000000000000000000000009184019190915280546001600160a01b03191633908117909155909190601290620000c2906001600160e01b036200012116565b8251620000d7906006906020860190620005e6565b508151620000ed906007906020850190620005e6565b506008805460ff191660ff9290921691909117905550506009546200011a9033906305f5e1000262000173565b5062000688565b6200013c816005620002dc60201b62001ce21790919060201c565b6040516001600160a01b038216907fe78a1675a4b4d68d04fc70b93f9c37c5288e084d9b02d718103f7ad5e292b68890600090a250565b600062000189336001600160e01b036200038316565b80620001a35750620001a36001600160e01b03620003a616565b620001ad57600080fd5b600a5460ff1615620001be57600080fd5b620001d16001600160e01b03620003b816565b82620001e56001600160e01b03620003b816565b01116200023e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180620025b16028913960400191505060405180910390fd5b620002516001600160e01b03620003be16565b15620002be57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f537570706c7920686173206265656e206361707065642e000000000000000000604482015290519081900360640190fd5b620002d383836001600160e01b03620003cc16565b50600192915050565b620002f182826001600160e01b03620004e716565b156200035e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000620003a0826005620004e760201b620015461790919060201c565b92915050565b6003546001600160a01b031633145b90565b60025490565b600854610100900460ff1690565b6001600160a01b0382166200044257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6200045e816002546200056a60201b620016951790919060201c565b6002556001600160a01b0382166000908152602081815260409091205462000491918390620016956200056a821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60006001600160a01b0382166200054a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806200258f6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b600082820183811015620005df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200062957805160ff191683800117855562000659565b8280016001018555821562000659579182015b82811115620006595782518255916020019190600101906200063c565b50620006679291506200066b565b5090565b620003b591905b8082111562000667576000815560010162000672565b611ef780620006986000396000f3fe6080604052600436106102345760003560e01c806379cc679011610138578063aca4b638116100b0578063cce0b64c1161007f578063dc39d06d11610064578063dc39d06d14610949578063dd62ed3e1461098f578063f2fde38b146109d757610234565b8063cce0b64c146108e4578063d4ee1d901461093457610234565b8063aca4b6381461075f578063b5dc7d2d146107a5578063c9991176146107cf578063cae9ca511461080f57610234565b80638f32d59b11610107578063a457c2d7116100ec578063a457c2d71461068d578063a9059cbb146106d3578063a9eda5451461071957610234565b80638f32d59b1461066357806395d89b411461067857610234565b806379cc6790146105b5578063805b9992146105fb5780638456cb59146106105780638da5cb5b1461062557610234565b806339509351116101cb5780635c975abb1161019a57806370a082311161017f57806370a082311461054b578063715018a61461058b57806379ba5097146105a057610234565b80635c975abb146104f657806368fa81341461050b57610234565b8063395093511461042b5780633f4ba83a1461047157806340c10f191461048657806342966c68146104cc57610234565b806310622ee81161020757806310622ee81461037257806318160ddd1461038957806323b872dd146103b0578063313ce5671461040057610234565b806306fdde0314610239578063095ea7b3146102c35780630a2eb3011461031d5780630dd75b571461035d575b600080fd5b34801561024557600080fd5b5061024e610a17565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610288578181015183820152602001610270565b50505050905090810190601f1680156102b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102cf57600080fd5b50610309600480360360408110156102e657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610acb565b604080519115158252519081900360200190f35b34801561032957600080fd5b506103096004803603602081101561034057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ae1565b34801561036957600080fd5b50610309610afa565b34801561037e57600080fd5b50610387610b08565b005b34801561039557600080fd5b5061039e610b13565b60408051918252519081900360200190f35b3480156103bc57600080fd5b50610309600480360360608110156103d357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610b19565b34801561040c57600080fd5b50610415610b3f565b6040805160ff9092168252519081900360200190f35b34801561043757600080fd5b506103096004803603604081101561044e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610b48565b34801561047d57600080fd5b50610387610b96565b34801561049257600080fd5b50610309600480360360408110156104a957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bf3565b3480156104d857600080fd5b50610387600480360360208110156104ef57600080fd5b5035610d0b565b34801561050257600080fd5b50610309610d18565b34801561051757600080fd5b506103876004803603602081101561052e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d21565b34801561055757600080fd5b5061039e6004803603602081101561056e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d4e565b34801561059757600080fd5b50610387610d76565b3480156105ac57600080fd5b50610387610d9a565b3480156105c157600080fd5b50610387600480360360408110156105d857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e56565b34801561060757600080fd5b50610309610e64565b34801561061c57600080fd5b50610387610ec4565b34801561063157600080fd5b5061063a610f21565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561066f57600080fd5b50610309610f3d565b34801561068457600080fd5b5061024e610f5b565b34801561069957600080fd5b50610309600480360360408110156106b057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610fda565b3480156106df57600080fd5b50610309600480360360408110156106f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611023565b34801561072557600080fd5b506103096004803603604081101561073c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611047565b34801561076b57600080fd5b506103096004803603604081101561078257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611087565b3480156107b157600080fd5b50610387600480360360208110156107c857600080fd5b50356110a8565b3480156107db57600080fd5b50610387600480360360208110156107f257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110b5565b34801561081b57600080fd5b506103096004803603606081101561083257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561086f57600080fd5b82018360208201111561088157600080fd5b803590602001918460018302840111640100000000831117156108a357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110e2945050505050565b3480156108f057600080fd5b506103096004803603606081101561090757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561124d565b34801561094057600080fd5b5061063a61126f565b34801561095557600080fd5b506103096004803603604081101561096c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561128b565b34801561099b57600080fd5b5061039e600480360360408110156109b257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661135c565b3480156109e357600080fd5b50610387600480360360208110156109fa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611394565b60068054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ac15780601f10610a9657610100808354040283529160200191610ac1565b820191906000526020600020905b815481529060010190602001808311610aa457829003601f168201915b5050505050905090565b6000610ad83384846113ff565b50600192915050565b6000610af460058363ffffffff61154616565b92915050565b600854610100900460ff1690565b610b11336115e1565b565b60025490565b600a5460009060ff1615610b2c57600080fd5b610b37848484611636565b949350505050565b60085460ff1690565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610ad8918590610b91908663ffffffff61169516565b6113ff565b60035473ffffffffffffffffffffffffffffffffffffffff163314610bba57600080fd5b600a5460ff16610bc957600080fd5b600a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000610bfe33610ae1565b80610c0c5750610c0c610f3d565b610c1557600080fd5b600a5460ff1615610c2557600080fd5b610c2d610b13565b82610c36610b13565b0111610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e9b6028913960400191505060405180910390fd5b610c95610afa565b15610d0157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f537570706c7920686173206265656e206361707065642e000000000000000000604482015290519081900360640190fd5b610ad88383611709565b610d15338261183a565b50565b600a5460ff1690565b60035473ffffffffffffffffffffffffffffffffffffffff163314610d4557600080fd5b610d15816115e1565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b60035473ffffffffffffffffffffffffffffffffffffffff163314610b1157600080fd5b60045473ffffffffffffffffffffffffffffffffffffffff163314610dbe57600080fd5b60045460035460405173ffffffffffffffffffffffffffffffffffffffff92831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360048054600380547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b610e608282611954565b5050565b60035460009073ffffffffffffffffffffffffffffffffffffffff163314610e8b57600080fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055610ebf610afa565b905090565b610ecd33610ae1565b80610edb5750610edb610f3d565b610ee457600080fd5b600a5460ff1615610ef457600080fd5b600a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff16331490565b60078054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ac15780601f10610a9657610100808354040283529160200191610ac1565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610ad8918590610b91908663ffffffff6119a616565b600a5460009060ff161561103657600080fd5b6110408383611a1d565b9392505050565b600061105233610ae1565b806110605750611060610f3d565b61106957600080fd5b600a5460ff161561107957600080fd5b611040836009548402610bf3565b600a5460009060ff161561109a57600080fd5b611040836009548402611a1d565b610d156009548202610d0b565b60035473ffffffffffffffffffffffffffffffffffffffff1633146110d957600080fd5b610d1581611a2a565b60006110ef3385856113ff565b60408051848152905173ffffffffffffffffffffffffffffffffffffffff86169133917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a36040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301869052306044840181905260806064850190815286516084860152865173ffffffffffffffffffffffffffffffffffffffff8a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b838110156111dc5781810151838201526020016111c4565b50505050905090810190601f1680156112095780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561122b57600080fd5b505af115801561123f573d6000803e3d6000fd5b506001979650505050505050565b600a5460009060ff161561126057600080fd5b610b3784846009548502611636565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b600061129633610ae1565b806112a457506112a4610f3d565b6112ad57600080fd5b600354604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810185905290519185169163a9059cbb916044808201926020929091908290030181600087803b15801561132957600080fd5b505af115801561133d573d6000803e3d6000fd5b505050506040513d602081101561135357600080fd5b50519392505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60035473ffffffffffffffffffffffffffffffffffffffff1633146113b857600080fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff831661146b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611e776024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166114d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611dcc6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600073ffffffffffffffffffffffffffffffffffffffff82166115b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611e0f6022913960400191505060405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff166000908152602091909152604090205460ff1690565b6115f260058263ffffffff611a7f16565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fd5c9a61a4ab4b84f78da506149b7b0d376843283a81eee2dbdc9a55f988ab64390600090a250565b6000611643848484611b2b565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602090815260408083203380855292529091205461168b918691610b91908663ffffffff6119a616565b5060019392505050565b60008282018381101561104057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661178b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60025461179e908263ffffffff61169516565b60025573ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020546117d7908263ffffffff61169516565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff82166118a6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611e316021913960400191505060405180910390fd5b6002546118b9908263ffffffff6119a616565b60025573ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020546118f2908263ffffffff6119a616565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b61195e828261183a565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020908152604080832033808552925290912054610e60918491610b91908563ffffffff6119a616565b600082821115611a1757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000610ad8338484611b2b565b611a3b60058263ffffffff611ce216565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fe78a1675a4b4d68d04fc70b93f9c37c5288e084d9b02d718103f7ad5e292b68890600090a250565b611a898282611546565b611ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611dee6021913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b73ffffffffffffffffffffffffffffffffffffffff8316611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611e526025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da96023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054611c39908263ffffffff6119a616565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054611c7b908263ffffffff61169516565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b611cec8282611546565b15611d5857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373496e63726561736520696e20737570706c7920776f756c64206361757365206f766572666c6f772ea265627a7a72305820894429841ee637a1831fbf82de8c190413a33e0a5abb720e174bb7bb258887e764736f6c634300050a0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373496e63726561736520696e20737570706c7920776f756c64206361757365206f766572666c6f772e

Deployed Bytecode

0x6080604052600436106102345760003560e01c806379cc679011610138578063aca4b638116100b0578063cce0b64c1161007f578063dc39d06d11610064578063dc39d06d14610949578063dd62ed3e1461098f578063f2fde38b146109d757610234565b8063cce0b64c146108e4578063d4ee1d901461093457610234565b8063aca4b6381461075f578063b5dc7d2d146107a5578063c9991176146107cf578063cae9ca511461080f57610234565b80638f32d59b11610107578063a457c2d7116100ec578063a457c2d71461068d578063a9059cbb146106d3578063a9eda5451461071957610234565b80638f32d59b1461066357806395d89b411461067857610234565b806379cc6790146105b5578063805b9992146105fb5780638456cb59146106105780638da5cb5b1461062557610234565b806339509351116101cb5780635c975abb1161019a57806370a082311161017f57806370a082311461054b578063715018a61461058b57806379ba5097146105a057610234565b80635c975abb146104f657806368fa81341461050b57610234565b8063395093511461042b5780633f4ba83a1461047157806340c10f191461048657806342966c68146104cc57610234565b806310622ee81161020757806310622ee81461037257806318160ddd1461038957806323b872dd146103b0578063313ce5671461040057610234565b806306fdde0314610239578063095ea7b3146102c35780630a2eb3011461031d5780630dd75b571461035d575b600080fd5b34801561024557600080fd5b5061024e610a17565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610288578181015183820152602001610270565b50505050905090810190601f1680156102b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102cf57600080fd5b50610309600480360360408110156102e657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610acb565b604080519115158252519081900360200190f35b34801561032957600080fd5b506103096004803603602081101561034057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ae1565b34801561036957600080fd5b50610309610afa565b34801561037e57600080fd5b50610387610b08565b005b34801561039557600080fd5b5061039e610b13565b60408051918252519081900360200190f35b3480156103bc57600080fd5b50610309600480360360608110156103d357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610b19565b34801561040c57600080fd5b50610415610b3f565b6040805160ff9092168252519081900360200190f35b34801561043757600080fd5b506103096004803603604081101561044e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610b48565b34801561047d57600080fd5b50610387610b96565b34801561049257600080fd5b50610309600480360360408110156104a957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bf3565b3480156104d857600080fd5b50610387600480360360208110156104ef57600080fd5b5035610d0b565b34801561050257600080fd5b50610309610d18565b34801561051757600080fd5b506103876004803603602081101561052e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d21565b34801561055757600080fd5b5061039e6004803603602081101561056e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d4e565b34801561059757600080fd5b50610387610d76565b3480156105ac57600080fd5b50610387610d9a565b3480156105c157600080fd5b50610387600480360360408110156105d857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e56565b34801561060757600080fd5b50610309610e64565b34801561061c57600080fd5b50610387610ec4565b34801561063157600080fd5b5061063a610f21565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561066f57600080fd5b50610309610f3d565b34801561068457600080fd5b5061024e610f5b565b34801561069957600080fd5b50610309600480360360408110156106b057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610fda565b3480156106df57600080fd5b50610309600480360360408110156106f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611023565b34801561072557600080fd5b506103096004803603604081101561073c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611047565b34801561076b57600080fd5b506103096004803603604081101561078257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611087565b3480156107b157600080fd5b50610387600480360360208110156107c857600080fd5b50356110a8565b3480156107db57600080fd5b50610387600480360360208110156107f257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110b5565b34801561081b57600080fd5b506103096004803603606081101561083257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561086f57600080fd5b82018360208201111561088157600080fd5b803590602001918460018302840111640100000000831117156108a357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110e2945050505050565b3480156108f057600080fd5b506103096004803603606081101561090757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561124d565b34801561094057600080fd5b5061063a61126f565b34801561095557600080fd5b506103096004803603604081101561096c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561128b565b34801561099b57600080fd5b5061039e600480360360408110156109b257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661135c565b3480156109e357600080fd5b50610387600480360360208110156109fa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611394565b60068054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ac15780601f10610a9657610100808354040283529160200191610ac1565b820191906000526020600020905b815481529060010190602001808311610aa457829003601f168201915b5050505050905090565b6000610ad83384846113ff565b50600192915050565b6000610af460058363ffffffff61154616565b92915050565b600854610100900460ff1690565b610b11336115e1565b565b60025490565b600a5460009060ff1615610b2c57600080fd5b610b37848484611636565b949350505050565b60085460ff1690565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610ad8918590610b91908663ffffffff61169516565b6113ff565b60035473ffffffffffffffffffffffffffffffffffffffff163314610bba57600080fd5b600a5460ff16610bc957600080fd5b600a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000610bfe33610ae1565b80610c0c5750610c0c610f3d565b610c1557600080fd5b600a5460ff1615610c2557600080fd5b610c2d610b13565b82610c36610b13565b0111610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e9b6028913960400191505060405180910390fd5b610c95610afa565b15610d0157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f537570706c7920686173206265656e206361707065642e000000000000000000604482015290519081900360640190fd5b610ad88383611709565b610d15338261183a565b50565b600a5460ff1690565b60035473ffffffffffffffffffffffffffffffffffffffff163314610d4557600080fd5b610d15816115e1565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b60035473ffffffffffffffffffffffffffffffffffffffff163314610b1157600080fd5b60045473ffffffffffffffffffffffffffffffffffffffff163314610dbe57600080fd5b60045460035460405173ffffffffffffffffffffffffffffffffffffffff92831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360048054600380547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b610e608282611954565b5050565b60035460009073ffffffffffffffffffffffffffffffffffffffff163314610e8b57600080fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055610ebf610afa565b905090565b610ecd33610ae1565b80610edb5750610edb610f3d565b610ee457600080fd5b600a5460ff1615610ef457600080fd5b600a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff16331490565b60078054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ac15780601f10610a9657610100808354040283529160200191610ac1565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610ad8918590610b91908663ffffffff6119a616565b600a5460009060ff161561103657600080fd5b6110408383611a1d565b9392505050565b600061105233610ae1565b806110605750611060610f3d565b61106957600080fd5b600a5460ff161561107957600080fd5b611040836009548402610bf3565b600a5460009060ff161561109a57600080fd5b611040836009548402611a1d565b610d156009548202610d0b565b60035473ffffffffffffffffffffffffffffffffffffffff1633146110d957600080fd5b610d1581611a2a565b60006110ef3385856113ff565b60408051848152905173ffffffffffffffffffffffffffffffffffffffff86169133917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a36040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301869052306044840181905260806064850190815286516084860152865173ffffffffffffffffffffffffffffffffffffffff8a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b838110156111dc5781810151838201526020016111c4565b50505050905090810190601f1680156112095780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561122b57600080fd5b505af115801561123f573d6000803e3d6000fd5b506001979650505050505050565b600a5460009060ff161561126057600080fd5b610b3784846009548502611636565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b600061129633610ae1565b806112a457506112a4610f3d565b6112ad57600080fd5b600354604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810185905290519185169163a9059cbb916044808201926020929091908290030181600087803b15801561132957600080fd5b505af115801561133d573d6000803e3d6000fd5b505050506040513d602081101561135357600080fd5b50519392505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60035473ffffffffffffffffffffffffffffffffffffffff1633146113b857600080fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff831661146b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611e776024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166114d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611dcc6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600073ffffffffffffffffffffffffffffffffffffffff82166115b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611e0f6022913960400191505060405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff166000908152602091909152604090205460ff1690565b6115f260058263ffffffff611a7f16565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fd5c9a61a4ab4b84f78da506149b7b0d376843283a81eee2dbdc9a55f988ab64390600090a250565b6000611643848484611b2b565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602090815260408083203380855292529091205461168b918691610b91908663ffffffff6119a616565b5060019392505050565b60008282018381101561104057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661178b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60025461179e908263ffffffff61169516565b60025573ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020546117d7908263ffffffff61169516565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff82166118a6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611e316021913960400191505060405180910390fd5b6002546118b9908263ffffffff6119a616565b60025573ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020546118f2908263ffffffff6119a616565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b61195e828261183a565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020908152604080832033808552925290912054610e60918491610b91908563ffffffff6119a616565b600082821115611a1757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000610ad8338484611b2b565b611a3b60058263ffffffff611ce216565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fe78a1675a4b4d68d04fc70b93f9c37c5288e084d9b02d718103f7ad5e292b68890600090a250565b611a898282611546565b611ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611dee6021913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b73ffffffffffffffffffffffffffffffffffffffff8316611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611e526025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da96023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054611c39908263ffffffff6119a616565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054611c7b908263ffffffff61169516565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b611cec8282611546565b15611d5857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373496e63726561736520696e20737570706c7920776f756c64206361757365206f766572666c6f772ea265627a7a72305820894429841ee637a1831fbf82de8c190413a33e0a5abb720e174bb7bb258887e764736f6c634300050a0032

Deployed Bytecode Sourcemap

20314:5347:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25378:8;;;17372:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17372:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;17372:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11237:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11237:148:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11237:148:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4509:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4509:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4509:123:0;;;;:::i;24536:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24536:92:0;;;:::i;4761:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4761:91:0;;;:::i;:::-;;10260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10260:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;23082:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23082:160:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23082:160:0;;;;;;;;;;;;;;;;;;:::i;18230:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18230:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12521:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12521:206:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12521:206:0;;;;;;;;;:::i;22441:81::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22441:81:0;;;:::i;23613:337::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23613:337:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23613:337:0;;;;;;;;;:::i;18688:81::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18688:81:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18688:81:0;;:::i;22004:78::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22004:78:0;;;:::i;21280:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21280:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21280:111:0;;;;:::i;10414:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10414:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10414:110:0;;;;:::i;21500:54::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21500:54:0;;;:::i;19565:196::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19565:196:0;;;:::i;18831:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18831:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18831:103:0;;;;;;;;;:::i;24334:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24334:127:0;;;:::i;22183:98::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22183:98:0;;;:::i;18986:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18986:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19270:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19270:91:0;;;:::i;17574:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17574:87:0;;;:::i;13230:216::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13230:216:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13230:216:0;;;;;;;;;:::i;22586:148::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22586:148:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22586:148:0;;;;;;;;;:::i;23995:164::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23995:164:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23995:164:0;;;;;;;;;:::i;22858:157::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22858:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22858:157:0;;;;;;;;;:::i;24691:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24691:77:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24691:77:0;;:::i;21103:105::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21103:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21103:105:0;;;;:::i;24972:333::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24972:333:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24972:333:0;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;24972:333:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;24972:333:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;24972:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;24972:333:0;;-1:-1:-1;24972:333:0;;-1:-1:-1;;;;;24972:333:0:i;23369:169::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23369:169:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23369:169:0;;;;;;;;;;;;;;;;;;:::i;19013:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19013:23:0;;;:::i;25468:190::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25468:190:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25468:190:0;;;;;;;;;:::i;10956:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10956:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10956:134:0;;;;;;;;;;;:::i;19455:102::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19455:102:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19455:102:0;;;;:::i;17372:83::-;17442:5;17435:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17409:13;;17435:12;;17442:5;;17435:12;;17442:5;17435:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17372:83;:::o;11237:148::-;11302:4;11319:36;11328:10;11340:7;11349:5;11319:8;:36::i;:::-;-1:-1:-1;11373:4:0;11237:148;;;;:::o;4509:123::-;4572:4;4596:28;:15;4616:7;4596:28;:19;:28;:::i;:::-;4589:35;4509:123;-1:-1:-1;;4509:123:0:o;24536:92::-;24607:13;;;;;;;;24536:92::o;4761:91::-;4812:32;4833:10;4812:20;:32::i;:::-;4761:91::o;10260:::-;10331:12;;10260:91;:::o;23082:160::-;21824:7;;23175:4;;21824:7;;21823:8;21815:17;;;;;;23199:35;23218:4;23224:2;23228:5;23199:18;:35::i;:::-;23192:42;23082:160;-1:-1:-1;;;;23082:160:0:o;18230:83::-;18296:9;;;;18230:83;:::o;12521:206::-;12627:10;12601:4;12648:23;;;:11;:23;;;;;;;;;:32;;;;;;;;;;12601:4;;12618:79;;12639:7;;12648:48;;12685:10;12648:48;:36;:48;:::i;:::-;12618:8;:79::i;22441:81::-;19421:5;;;;19407:10;:19;19399:28;;;;;;21968:7;;;;21960:16;;;;;;22499:7;:15;;;;;;22441:81::o;23613:337::-;23715:4;20929:27;20945:10;20929:15;:27::i;:::-;:40;;;;20960:9;:7;:9::i;:::-;20921:49;;;;;;21824:7;;;;21823:8;21815:17;;;;;;23765:13;:11;:13::i;:::-;23756:6;23740:13;:11;:13::i;:::-;:22;:38;23732:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23843:16;:14;:16::i;:::-;23842:17;23834:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23898:22;23904:7;23913:6;23898:5;:22::i;18688:81::-;18736:25;18742:10;18754:6;18736:5;:25::i;:::-;18688:81;:::o;22004:78::-;22067:7;;;;22004:78;:::o;21280:111::-;19421:5;;;;19407:10;:19;19399:28;;;;;;21354:29;21375:7;21354:20;:29::i;10414:110::-;10498:18;;10471:7;10498:18;;;;;;;;;;;;10414:110::o;21500:54::-;19421:5;;;;19407:10;:19;19399:28;;;;;19565:196;19632:8;;;;19618:10;:22;19610:31;;;;;;19685:8;;19678:5;;19657:37;;19685:8;;;;;19678:5;;;;19657:37;;19685:8;;19657:37;19713:8;;;19705:5;:16;;;;;;19713:8;;;19705:16;;;;19732:21;;;19565:196::o;18831:103::-;18900:26;18910:7;18919:6;18900:9;:26::i;:::-;18831:103;;:::o;24334:127::-;19421:5;;24382:4;;19421:5;;19407:10;:19;19399:28;;;;;;24399:13;:20;;;;;;;;24437:16;:14;:16::i;:::-;24430:23;;24334:127;:::o;22183:98::-;20929:27;20945:10;20929:15;:27::i;:::-;:40;;;;20960:9;:7;:9::i;:::-;20921:49;;;;;;21824:7;;;;21823:8;21815:17;;;;;;22259:7;:14;;;;22269:4;22259:14;;;22183:98::o;18986:20::-;;;;;;:::o;19270:91::-;19348:5;;;;19334:10;:19;;19270:91::o;17574:87::-;17646:7;17639:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17613:13;;17639:14;;17646:7;;17639:14;;17646:7;17639:14;;;;;;;;;;;;;;;;;;;;;;;;13230:216;13341:10;13315:4;13362:23;;;:11;:23;;;;;;;;;:32;;;;;;;;;;13315:4;;13332:84;;13353:7;;13362:53;;13399:15;13362:53;:36;:53;:::i;22586:148::-;21824:7;;22669:4;;21824:7;;21823:8;21815:17;;;;;;22693:33;22708:9;22719:6;22693:14;:33::i;:::-;22686:40;22586:148;-1:-1:-1;;;22586:148:0:o;23995:164::-;24100:4;20929:27;20945:10;20929:15;:27::i;:::-;:40;;;;20960:9;:7;:9::i;:::-;20921:49;;;;;;21824:7;;;;21823:8;21815:17;;;;;;24124:27;24129:7;24147:3;;24138:6;:12;24124:4;:27::i;22858:157::-;21824:7;;22944:4;;21824:7;;21823:8;21815:17;;;;;;22968:39;22983:9;23003:3;;22994:6;:12;22968:14;:39::i;24691:77::-;24742:18;24756:3;;24747:6;:12;24742:4;:18::i;21103:105::-;19421:5;;;;19407:10;:19;19399:28;;;;;;21174:26;21192:7;21174:17;:26::i;24972:333::-;25061:12;25086:37;25095:10;25107:7;25116:6;25086:8;:37::i;:::-;25139;;;;;;;;;;;;25148:10;;25139:37;;;;;;;;;25187:88;;;;;25235:10;25187:88;;;;;;;;;;;;25263:4;25187:88;;;;;;;;;;;;;;;;;;;;;:47;;;;;;25235:10;25247:6;;25263:4;25270;;25187:88;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;25187:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25187:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;25293:4:0;;24972:333;-1:-1:-1;;;;;;;24972:333:0:o;23369:169::-;21824:7;;23465:4;;21824:7;;21823:8;21815:17;;;;;;23489:41;23508:4;23514:2;23526:3;;23518:5;:11;23489:18;:41::i;19013:23::-;;;;;;:::o;25468:190::-;25575:12;20929:27;20945:10;20929:15;:27::i;:::-;:40;;;;20960:9;:7;:9::i;:::-;20921:49;;;;;;25636:5;;25607:43;;;;;;:28;25636:5;;;25607:43;;;;;;;;;;;;:28;;;;;;:43;;;;;;;;;;;;;;;25636:5;25607:28;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;25607:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25607:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25607:43:0;;25468:190;-1:-1:-1;;;25468:190:0:o;10956:134::-;11055:18;;;;11028:7;11055:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10956:134::o;19455:102::-;19421:5;;;;19407:10;:19;19399:28;;;;;;19529:8;:20;;;;;;;;;;;;;;;19455:102::o;16032:335::-;16125:19;;;16117:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16204:21;;;16196:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16277:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;16328:31;;;;;;;;;;;;;;;;;16032:335;;;:::o;3819:203::-;3891:4;3916:21;;;3908:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3994:20:0;;:11;:20;;;;;;;;;;;;;;;3819:203::o;5011:151::-;5078:31;:15;5101:7;5078:31;:22;:31;:::i;:::-;5125:29;;;;;;;;;;;5011:151;:::o;11856:256::-;11945:4;11962:36;11972:6;11980:9;11991:6;11962:9;:36::i;:::-;12038:19;;;;;;;:11;:19;;;;;;;;12026:10;12038:31;;;;;;;;;12009:73;;12018:6;;12038:43;;12074:6;12038:43;:35;:43;:::i;12009:73::-;-1:-1:-1;12100:4:0;11856:256;;;;;:::o;6013:181::-;6071:7;6103:5;;;6127:6;;;;6119:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14646:308;14722:21;;;14714:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14807:12;;:24;;14824:6;14807:24;:16;:24;:::i;:::-;14792:12;:39;14863:18;;;:9;:18;;;;;;;;;;;:30;;14886:6;14863:30;:22;:30;:::i;:::-;14842:18;;;:9;:18;;;;;;;;;;;:51;;;;14909:37;;;;;;;14842:18;;:9;;14909:37;;;;;;;;;;14646:308;;:::o;15286:306::-;15361:21;;;15353:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15448:12;;:23;;15465:5;15448:23;:16;:23;:::i;:::-;15433:12;:38;15503:18;;;:9;:18;;;;;;;;;;;:29;;15526:5;15503:29;:22;:29;:::i;:::-;15482:18;;;:9;:18;;;;;;;;;;;:50;;;;15548:36;;;;;;;15482:9;;15548:36;;;;;;;;;;;15286:306;;:::o;16552:188::-;16624:22;16630:7;16639:6;16624:5;:22::i;:::-;16687:20;;;;;;;:11;:20;;;;;;;;16675:10;16687:32;;;;;;;;;16657:75;;16666:7;;16687:44;;16724:6;16687:44;:36;:44;:::i;6469:184::-;6527:7;6560:1;6555;:6;;6547:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6619:5:0;;;6469:184::o;10737:156::-;10806:4;10823:40;10833:10;10845:9;10856:6;10823:9;:40::i;4860:143::-;4924:28;:15;4944:7;4924:28;:19;:28;:::i;:::-;4968:27;;;;;;;;;;;4860:143;:::o;3541:183::-;3621:18;3625:4;3631:7;3621:3;:18::i;:::-;3613:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3688:20;;3711:5;3688:20;;;;;;;;;;;:28;;;;;;3541:183::o;13936:429::-;14034:20;;;14026:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14115:23;;;14107:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14211:17;;;:9;:17;;;;;;;;;;;:29;;14233:6;14211:29;:21;:29;:::i;:::-;14191:17;;;;:9;:17;;;;;;;;;;;:49;;;;14274:20;;;;;;;:32;;14299:6;14274:32;:24;:32;:::i;:::-;14251:20;;;;:9;:20;;;;;;;;;;;;:55;;;;14322:35;;;;;;;14251:20;;14322:35;;;;;;;;;;;;;13936:429;;;:::o;3283:178::-;3361:18;3365:4;3371:7;3361:3;:18::i;:::-;3360:19;3352:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3426:20;;:11;:20;;;;;;;;;;;:27;;;;3449:4;3426:27;;;3283:178::o

Swarm Source

bzzr://894429841ee637a1831fbf82de8c190413a33e0a5abb720e174bb7bb258887e7
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.