ETH Price: $3,159.78 (-4.76%)
 

Overview

Max Total Supply

916,471 SMAT

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
62 SMAT

Value
$0.00
0x2150a0e8298a9f8d220b403a95799f51ad0e37c6
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:
Smarts

Compiler Version
v0.6.4+commit.1dca32f3

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-12-15
*/

// File: @openzeppelin/contracts/GSN/Context.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

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

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

// File: @openzeppelin/contracts/access/Ownable.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

contract Ownable is Context {
    address private _owner;

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

    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: @openzeppelin/contracts/math/SafeMath.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

// File: @openzeppelin/contracts/utils/Address.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.2;

library Address {

    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

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

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

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

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

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

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

// File: contracts/Smarts.sol

pragma solidity 0.6.4;





contract Smarts is Ownable, IERC20 {

	using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balances;

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

    mapping (address => bool) private _addressesWithFee;
    address public _feescollector;
    uint256 public _fee;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    bool public releasedForTransfer;

	event Issue(address recepient, uint amount);

    constructor () public {
        _name = "Smarts Finance";
        _symbol = "SMAT";
        _decimals = 18;
        _feescollector = msg.sender;
        _fee = 50;
    }

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

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

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

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

    function setFee(uint256 amount) external onlyOwner() {
        _fee = amount;
    }

    function changeFeeCollector(address addr) external onlyOwner() {
        _feescollector = addr;
    }

    function addAddressForFee(address addr) external onlyOwner() {
        _addressesWithFee[addr] = true;
    }

    function removeAddressForFee(address addr) external onlyOwner() {
        _addressesWithFee[addr] = false;
    }

    function release() public onlyOwner() {
        releasedForTransfer = true;
    }

    function issue(address _recepient, uint256 _amount) public onlyOwner() {
        require(!releasedForTransfer, "SMATS: Not released for transfer!");
        _balances[_recepient] = _balances[_recepient].add(_amount);
        _totalSupply = _totalSupply.add(_amount);
        emit Issue(_recepient, _amount);
        emit Transfer(address(0), _recepient, _amount);
    }

    /**
     * @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) {
		require(releasedForTransfer, "SMATS: Not released for transfer!");
        _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;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
		require(releasedForTransfer, "SMATS: Not released for transfer!");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

	/**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "ERC20: burn amount exceeds allowance");

        _approve(account, _msgSender(), decreasedAllowance);
        _burn(account, 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);

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

        if (_addressesWithFee[sender] || _addressesWithFee[recipient]) {

            uint256 feeamount = amount.mul(_fee).div(10000);
            uint256 remamount = amount.sub(feeamount);
            _balances[_feescollector] = _balances[_feescollector].add(feeamount);
            _balances[recipient] = _balances[recipient].add(remamount);

            emit Transfer(sender, _feescollector, feeamount);
            emit Transfer(sender, recipient, remamount);
        } else {

            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recepient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feescollector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addAddressForFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"changeFeeCollector","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"_recepient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"issue","outputs":[],"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":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"releasedForTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removeAddressForFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50600062000024620001c960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600e81526020017f536d617274732046696e616e6365000000000000000000000000000000000000815250600790805190602001906200010f929190620001d1565b506040518060400160405280600481526020017f534d415400000000000000000000000000000000000000000000000000000000815250600890805190602001906200015d929190620001d1565b506012600960006101000a81548160ff021916908360ff16021790555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550603260058190555062000280565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021457805160ff191683800117855562000245565b8280016001018555821562000245579182015b828111156200024457825182559160200191906001019062000227565b5b50905062000254919062000258565b5090565b6200027d91905b80821115620002795760008160009055506001016200025f565b5090565b90565b61297080620002906000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806386d1a69f116100de578063a457c2d711610097578063c5b37c2211610071578063c5b37c22146107a2578063dd62ed3e146107c0578063e69d09cf14610838578063f2fde38b1461085a57610173565b8063a457c2d714610692578063a9059cbb146106f8578063a9b8bccb1461075e57610173565b806386d1a69f146104e95780638da5cb5b146104f35780639245290d1461053d57806395d89b41146105815780639ce47f22146106045780639da717bd1461064e57610173565b806342966c681161013057806342966c681461038f57806369fe0e2d146103bd57806370a08231146103eb578063715018a61461044357806379cc67901461044d578063867904b41461049b57610173565b806306fdde0314610178578063095ea7b3146101fb57806318160ddd1461026157806323b872dd1461027f578063313ce567146103055780633950935114610329575b600080fd5b61018061089e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c05780820151818401526020810190506101a5565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102476004803603604081101561021157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610940565b604051808215151515815260200191505060405180910390f35b61026961095e565b6040518082815260200191505060405180910390f35b6102eb6004803603606081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610968565b604051808215151515815260200191505060405180910390f35b61030d610aa6565b604051808260ff1660ff16815260200191505060405180910390f35b6103756004803603604081101561033f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610abd565b604051808215151515815260200191505060405180910390f35b6103bb600480360360208110156103a557600080fd5b8101908080359060200190929190505050610b70565b005b6103e9600480360360208110156103d357600080fd5b8101908080359060200190929190505050610b84565b005b61042d6004803603602081101561040157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c57565b6040518082815260200191505060405180910390f35b61044b610ca0565b005b6104996004803603604081101561046357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e28565b005b6104e7600480360360408110156104b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8a565b005b6104f161113e565b005b6104fb611224565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61057f6004803603602081101561055357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061124d565b005b61058961135a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c95780820151818401526020810190506105ae565b50505050905090810190601f1680156105f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61060c6113fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106906004803603602081101561066457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611422565b005b6106de600480360360408110156106a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611546565b604051808215151515815260200191505060405180910390f35b6107446004803603604081101561070e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611613565b604051808215151515815260200191505060405180910390f35b6107a06004803603602081101561077457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611696565b005b6107aa6117ba565b6040518082815260200191505060405180910390f35b610822600480360360408110156107d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c0565b6040518082815260200191505060405180910390f35b610840611847565b604051808215151515815260200191505060405180910390f35b61089c6004803603602081101561087057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061185a565b005b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109365780601f1061090b57610100808354040283529160200191610936565b820191906000526020600020905b81548152906001019060200180831161091957829003601f168201915b5050505050905090565b600061095461094d611a67565b8484611a6f565b6001905092915050565b6000600654905090565b6000600960019054906101000a900460ff166109cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b6109da848484611c66565b610a9b846109e6611a67565b610a968560405180606001604052806028815260200161286060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a4c611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b611a6f565b600190509392505050565b6000600960009054906101000a900460ff16905090565b6000610b66610aca611a67565b84610b618560026000610adb611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b611a6f565b6001905092915050565b610b81610b7b611a67565b826123bf565b50565b610b8c611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060058190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ca8611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610e678260405180606001604052806024815260200161288860249139610e5886610e53611a67565b6117c0565b6122779092919063ffffffff16565b9050610e7b83610e75611a67565b83611a6f565b610e8583836123bf565b505050565b610e92611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600960019054906101000a900460ff1615610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b61100b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110638160065461233790919063ffffffff16565b6006819055507fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c168282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a18173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611146611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600960016101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611255611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611316576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113f25780601f106113c7576101008083540402835291602001916113f2565b820191906000526020600020905b8154815290600101906020018083116113d557829003601f168201915b5050505050905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61142a611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611609611553611a67565b8461160485604051806060016040528060258152602001612916602591396002600061157d611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b611a6f565b6001905092915050565b6000600960019054906101000a900460ff1661167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b61168c611685611a67565b8484611c66565b6001905092915050565b61169e611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60055481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960019054906101000a900460ff1681565b611862611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611923576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127b06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611af5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128f26024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127d66022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128cd6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061276b6023913960400191505060405180910390fd5b611d7d838383612585565b611de9816040518060600160405280602681526020016127f860269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ecd5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612177576000611efd612710611eef6005548561258a90919063ffffffff16565b61261090919063ffffffff16565b90506000611f14828461265a90919063ffffffff16565b9050611f8a8260016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b60016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061204181600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050612272565b6121c981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b505050565b6000838311158290612324576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156122e95780820151818401526020810190506122ce565b50505050905090810190601f1680156123165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156123b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612445576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806128ac6021913960400191505060405180910390fd5b61245182600083612585565b6124bd8160405180606001604052806022815260200161278e60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125158160065461265a90919063ffffffff16565b600681905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60008083141561259d576000905061260a565b60008284029050828482816125ae57fe5b0414612605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061283f6021913960400191505060405180910390fd5b809150505b92915050565b600061265283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126a4565b905092915050565b600061269c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612277565b905092915050565b60008083118290612750576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127155780820151818401526020810190506126fa565b50505050905090810190601f1680156127425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161275c57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365534d4154533a204e6f742072656c656173656420666f72207472616e7366657221536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209881a148ce910fa00056389c4c567e6f58f121c6682b5035782c213d0de6e69664736f6c63430006040033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c806386d1a69f116100de578063a457c2d711610097578063c5b37c2211610071578063c5b37c22146107a2578063dd62ed3e146107c0578063e69d09cf14610838578063f2fde38b1461085a57610173565b8063a457c2d714610692578063a9059cbb146106f8578063a9b8bccb1461075e57610173565b806386d1a69f146104e95780638da5cb5b146104f35780639245290d1461053d57806395d89b41146105815780639ce47f22146106045780639da717bd1461064e57610173565b806342966c681161013057806342966c681461038f57806369fe0e2d146103bd57806370a08231146103eb578063715018a61461044357806379cc67901461044d578063867904b41461049b57610173565b806306fdde0314610178578063095ea7b3146101fb57806318160ddd1461026157806323b872dd1461027f578063313ce567146103055780633950935114610329575b600080fd5b61018061089e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c05780820151818401526020810190506101a5565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102476004803603604081101561021157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610940565b604051808215151515815260200191505060405180910390f35b61026961095e565b6040518082815260200191505060405180910390f35b6102eb6004803603606081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610968565b604051808215151515815260200191505060405180910390f35b61030d610aa6565b604051808260ff1660ff16815260200191505060405180910390f35b6103756004803603604081101561033f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610abd565b604051808215151515815260200191505060405180910390f35b6103bb600480360360208110156103a557600080fd5b8101908080359060200190929190505050610b70565b005b6103e9600480360360208110156103d357600080fd5b8101908080359060200190929190505050610b84565b005b61042d6004803603602081101561040157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c57565b6040518082815260200191505060405180910390f35b61044b610ca0565b005b6104996004803603604081101561046357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e28565b005b6104e7600480360360408110156104b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8a565b005b6104f161113e565b005b6104fb611224565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61057f6004803603602081101561055357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061124d565b005b61058961135a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c95780820151818401526020810190506105ae565b50505050905090810190601f1680156105f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61060c6113fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106906004803603602081101561066457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611422565b005b6106de600480360360408110156106a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611546565b604051808215151515815260200191505060405180910390f35b6107446004803603604081101561070e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611613565b604051808215151515815260200191505060405180910390f35b6107a06004803603602081101561077457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611696565b005b6107aa6117ba565b6040518082815260200191505060405180910390f35b610822600480360360408110156107d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c0565b6040518082815260200191505060405180910390f35b610840611847565b604051808215151515815260200191505060405180910390f35b61089c6004803603602081101561087057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061185a565b005b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109365780601f1061090b57610100808354040283529160200191610936565b820191906000526020600020905b81548152906001019060200180831161091957829003601f168201915b5050505050905090565b600061095461094d611a67565b8484611a6f565b6001905092915050565b6000600654905090565b6000600960019054906101000a900460ff166109cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b6109da848484611c66565b610a9b846109e6611a67565b610a968560405180606001604052806028815260200161286060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a4c611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b611a6f565b600190509392505050565b6000600960009054906101000a900460ff16905090565b6000610b66610aca611a67565b84610b618560026000610adb611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b611a6f565b6001905092915050565b610b81610b7b611a67565b826123bf565b50565b610b8c611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060058190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ca8611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610e678260405180606001604052806024815260200161288860249139610e5886610e53611a67565b6117c0565b6122779092919063ffffffff16565b9050610e7b83610e75611a67565b83611a6f565b610e8583836123bf565b505050565b610e92611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600960019054906101000a900460ff1615610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b61100b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110638160065461233790919063ffffffff16565b6006819055507fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c168282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a18173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611146611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600960016101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611255611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611316576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113f25780601f106113c7576101008083540402835291602001916113f2565b820191906000526020600020905b8154815290600101906020018083116113d557829003601f168201915b5050505050905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61142a611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611609611553611a67565b8461160485604051806060016040528060258152602001612916602591396002600061157d611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b611a6f565b6001905092915050565b6000600960019054906101000a900460ff1661167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b61168c611685611a67565b8484611c66565b6001905092915050565b61169e611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60055481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960019054906101000a900460ff1681565b611862611a67565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611923576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127b06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611af5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128f26024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127d66022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128cd6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061276b6023913960400191505060405180910390fd5b611d7d838383612585565b611de9816040518060600160405280602681526020016127f860269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ecd5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612177576000611efd612710611eef6005548561258a90919063ffffffff16565b61261090919063ffffffff16565b90506000611f14828461265a90919063ffffffff16565b9050611f8a8260016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b60016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061204181600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050612272565b6121c981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233790919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b505050565b6000838311158290612324576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156122e95780820151818401526020810190506122ce565b50505050905090810190601f1680156123165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156123b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612445576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806128ac6021913960400191505060405180910390fd5b61245182600083612585565b6124bd8160405180606001604052806022815260200161278e60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125158160065461265a90919063ffffffff16565b600681905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60008083141561259d576000905061260a565b60008284029050828482816125ae57fe5b0414612605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061283f6021913960400191505060405180910390fd5b809150505b92915050565b600061265283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126a4565b905092915050565b600061269c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612277565b905092915050565b60008083118290612750576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127155780820151818401526020810190506126fa565b50505050905090810190601f1680156127425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161275c57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365534d4154533a204e6f742072656c656173656420666f72207472616e7366657221536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209881a148ce910fa00056389c4c567e6f58f121c6682b5035782c213d0de6e69664736f6c63430006040033

Deployed Bytecode Sourcemap

9265:7603:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9265:7603:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;10087:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10087:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12551:169;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12551:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10532:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12728:391;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12728:391:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10384:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13127:218;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13127:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13735:91;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13735:91:0;;;;;;;;;;;;;;;;;:::i;:::-;;10822:85;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10822:85:0;;;;;;;;;;;;;;;;;:::i;:::-;;10695:119;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10695:119:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1161:148;;;:::i;:::-;;14145:295;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14145:295:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11357:375;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11357:375:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11266:83;;;:::i;:::-;;947:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10915:103;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10915:103:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10289:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10289:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9564:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11144:114;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11144:114:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13353:269;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13353:269:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11945:245;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11945:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11026:110;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11026:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9600:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12253:151;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12253:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9753:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1317:244;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1317:244:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10087:83;10124:13;10157:5;10150:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10087:83;:::o;12551:169::-;12634:4;12651:39;12660:12;:10;:12::i;:::-;12674:7;12683:6;12651:8;:39::i;:::-;12708:4;12701:11;;12551:169;;;;:::o;10532:100::-;10585:7;10612:12;;10605:19;;10532:100;:::o;12728:391::-;12834:4;12853:19;;;;;;;;;;;12845:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12921:36;12931:6;12939:9;12950:6;12921:9;:36::i;:::-;12968:121;12977:6;12985:12;:10;:12::i;:::-;12999:89;13037:6;12999:89;;;;;;;;;;;;;;;;;:11;:19;13011:6;12999:19;;;;;;;;;;;;;;;:33;13019:12;:10;:12::i;:::-;12999:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12968:8;:121::i;:::-;13107:4;13100:11;;12728:391;;;;;:::o;10384:83::-;10425:5;10450:9;;;;;;;;;;;10443:16;;10384:83;:::o;13127:218::-;13215:4;13232:83;13241:12;:10;:12::i;:::-;13255:7;13264:50;13303:10;13264:11;:25;13276:12;:10;:12::i;:::-;13264:25;;;;;;;;;;;;;;;:34;13290:7;13264:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;13232:8;:83::i;:::-;13333:4;13326:11;;13127:218;;;;:::o;13735:91::-;13791:27;13797:12;:10;:12::i;:::-;13811:6;13791:5;:27::i;:::-;13735:91;:::o;10822:85::-;1084:12;:10;:12::i;:::-;1074:22;;:6;;;;;;;;;;;:22;;;1066:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10893:6:::1;10886:4;:13;;;;10822:85:::0;:::o;10695:119::-;10761:7;10788:9;:18;10798:7;10788:18;;;;;;;;;;;;;;;;10781:25;;10695:119;;;:::o;1161:148::-;1084:12;:10;:12::i;:::-;1074:22;;:6;;;;;;;;;;;:22;;;1066:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1268:1:::1;1231:40;;1252:6;::::0;::::1;;;;;;;;;1231:40;;;;;;;;;;;;1299:1;1282:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1161:148::o:0;14145:295::-;14222:26;14251:84;14288:6;14251:84;;;;;;;;;;;;;;;;;:32;14261:7;14270:12;:10;:12::i;:::-;14251:9;:32::i;:::-;:36;;:84;;;;;:::i;:::-;14222:113;;14348:51;14357:7;14366:12;:10;:12::i;:::-;14380:18;14348:8;:51::i;:::-;14410:22;14416:7;14425:6;14410:5;:22::i;:::-;14145:295;;;:::o;11357:375::-;1084:12;:10;:12::i;:::-;1074:22;;:6;;;;;;;;;;;:22;;;1066:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11448:19:::1;;;;;;;;;;;11447:20;11439:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11540:34;11566:7;11540:9;:21;11550:10;11540:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;11516:9;:21;11526:10;11516:21;;;;;;;;;;;;;;;:58;;;;11600:25;11617:7;11600:12;;:16;;:25;;;;:::i;:::-;11585:12;:40;;;;11641:26;11647:10;11659:7;11641:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;11704:10;11683:41;;11700:1;11683:41;;;11716:7;11683:41;;;;;;;;;;;;;;;;;;11357:375:::0;;:::o;11266:83::-;1084:12;:10;:12::i;:::-;1074:22;;:6;;;;;;;;;;;:22;;;1066:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11337:4:::1;11315:19;;:26;;;;;;;;;;;;;;;;;;11266:83::o:0;947:79::-;985:7;1012:6;;;;;;;;;;;1005:13;;947:79;:::o;10915:103::-;1084:12;:10;:12::i;:::-;1074:22;;:6;;;;;;;;;;;:22;;;1066:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11006:4:::1;10989:14;;:21;;;;;;;;;;;;;;;;;;10915:103:::0;:::o;10289:87::-;10328:13;10361:7;10354:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10289:87;:::o;9564:29::-;;;;;;;;;;;;;:::o;11144:114::-;1084:12;:10;:12::i;:::-;1074:22;;:6;;;;;;;;;;;:22;;;1066:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11245:5:::1;11219:17;:23;11237:4;11219:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;11144:114:::0;:::o;13353:269::-;13446:4;13463:129;13472:12;:10;:12::i;:::-;13486:7;13495:96;13534:15;13495:96;;;;;;;;;;;;;;;;;:11;:25;13507:12;:10;:12::i;:::-;13495:25;;;;;;;;;;;;;;;:34;13521:7;13495:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;13463:8;:129::i;:::-;13610:4;13603:11;;13353:269;;;;:::o;11945:245::-;12031:4;12050:19;;;;;;;;;;;12042:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12118:42;12128:12;:10;:12::i;:::-;12142:9;12153:6;12118:9;:42::i;:::-;12178:4;12171:11;;11945:245;;;;:::o;11026:110::-;1084:12;:10;:12::i;:::-;1074:22;;:6;;;;;;;;;;;:22;;;1066:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11124:4:::1;11098:17;:23;11116:4;11098:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;11026:110:::0;:::o;9600:19::-;;;;:::o;12253:151::-;12342:7;12369:11;:18;12381:5;12369:18;;;;;;;;;;;;;;;:27;12388:7;12369:27;;;;;;;;;;;;;;;;12362:34;;12253:151;;;;:::o;9753:31::-;;;;;;;;;;;;;:::o;1317:244::-;1084:12;:10;:12::i;:::-;1074:22;;:6;;;;;;;;;;;:22;;;1066:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:1:::1;1406:22;;:8;:22;;;;1398:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1516:8;1487:38;;1508:6;::::0;::::1;;;;;;;;;1487:38;;;;;;;;;;;;1545:8;1536:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1317:244:::0;:::o;147:106::-;200:15;235:10;228:17;;147:106;:::o;16321:346::-;16440:1;16423:19;;:5;:19;;;;16415:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16521:1;16502:21;;:7;:21;;;;16494:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16605:6;16575:11;:18;16587:5;16575:18;;;;;;;;;;;;;;;:27;16594:7;16575:27;;;;;;;;;;;;;;;:36;;;;16643:7;16627:32;;16636:5;16627:32;;;16652:6;16627:32;;;;;;;;;;;;;;;;;;16321:346;;;:::o;14448:1053::-;14572:1;14554:20;;:6;:20;;;;14546:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14656:1;14635:23;;:9;:23;;;;14627:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14711:47;14732:6;14740:9;14751:6;14711:20;:47::i;:::-;14791:71;14813:6;14791:71;;;;;;;;;;;;;;;;;:9;:17;14801:6;14791:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;14771:9;:17;14781:6;14771:17;;;;;;;;;;;;;;;:91;;;;14879:17;:25;14897:6;14879:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14908:17;:28;14926:9;14908:28;;;;;;;;;;;;;;;;;;;;;;;;;14879:57;14875:619;;;14955:17;14975:27;14996:5;14975:16;14986:4;;14975:6;:10;;:16;;;;:::i;:::-;:20;;:27;;;;:::i;:::-;14955:47;;15017:17;15037:21;15048:9;15037:6;:10;;:21;;;;:::i;:::-;15017:41;;15101:40;15131:9;15101;:25;15111:14;;;;;;;;;;;15101:25;;;;;;;;;;;;;;;;:29;;:40;;;;:::i;:::-;15073:9;:25;15083:14;;;;;;;;;;;15073:25;;;;;;;;;;;;;;;:68;;;;15179:35;15204:9;15179;:20;15189:9;15179:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;15156:9;:20;15166:9;15156:20;;;;;;;;;;;;;;;:58;;;;15253:14;;;;;;;;;;;15236:43;;15245:6;15236:43;;;15269:9;15236:43;;;;;;;;;;;;;;;;;;15316:9;15299:38;;15308:6;15299:38;;;15327:9;15299:38;;;;;;;;;;;;;;;;;;14875:619;;;;;15395:32;15420:6;15395:9;:20;15405:9;15395:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15372:9;:20;15382:9;15372:20;;;;;;;;;;;;;;;:55;;;;15464:9;15447:35;;15456:6;15447:35;;;15475:6;15447:35;;;;;;;;;;;;;;;;;;14875:619;14448:1053;;;:::o;2043:192::-;2129:7;2162:1;2157;:6;;2165:12;2149:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2149:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2189:9;2205:1;2201;:5;2189:17;;2226:1;2219:8;;;2043:192;;;;;:::o;1710:181::-;1768:7;1788:9;1804:1;1800;:5;1788:17;;1829:1;1824;:6;;1816:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1882:1;1875:8;;;1710:181;;;;:::o;15895:418::-;15998:1;15979:21;;:7;:21;;;;15971:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16051:49;16072:7;16089:1;16093:6;16051:20;:49::i;:::-;16134:68;16157:6;16134:68;;;;;;;;;;;;;;;;;:9;:18;16144:7;16134:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;16113:9;:18;16123:7;16113:18;;;;;;;;;;;;;;;:89;;;;16228:24;16245:6;16228:12;;:16;;:24;;;;:::i;:::-;16213:12;:39;;;;16294:1;16268:37;;16277:7;16268:37;;;16298:6;16268:37;;;;;;;;;;;;;;;;;;15895:418;;:::o;16773:92::-;;;;:::o;2243:471::-;2301:7;2551:1;2546;:6;2542:47;;;2576:1;2569:8;;;;2542:47;2601:9;2617:1;2613;:5;2601:17;;2646:1;2641;2637;:5;;;;;;:10;2629:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2705:1;2698:8;;;2243:471;;;;;:::o;2722:132::-;2780:7;2807:39;2811:1;2814;2807:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2800:46;;2722:132;;;;:::o;1899:136::-;1957:7;1984:43;1988:1;1991;1984:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1977:50;;1899:136;;;;:::o;2862:278::-;2948:7;2980:1;2976;:5;2983:12;2968:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2968:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3007:9;3023:1;3019;:5;;;;;;3007:17;;3131:1;3124:8;;;2862:278;;;;;:::o

Swarm Source

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