MATIC Price: $0.690469 (-1.67%)
Gas: 32 GWei
 

Overview

Max Total Supply

25,000,000 STBU

Holders

108 (0.00%)

Market

Price

$0.20 @ 0.296594 MATIC (+6.31%)

Onchain Market Cap

$5,119,725.00

Circulating Supply Market Cap

$19,558,275.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,395,874.799642423020046802 STBU

Value
$3,357,694.80 ( ~4,862,917.7003 MATIC) [65.5835%]
0xc882b111a75c0c657fc507c04fbfcd2cc984f071
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

An advisory company providing services in tokenization.

Market

Volume (24H):$383,061.00
Market Capitalization:$19,558,275.00
Circulating Supply:95,718,503.00 STBU
Market Data Source: Coinmarketcap

Contract Source Code Verified (Exact Match)

Contract Name:
STBU

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 7 of 7: STBU.sol
pragma solidity ^0.8.0;

import "./ERC20.sol";
import "./Address.sol";
import "./SafeMath.sol";
import "./Ownable.sol";

contract STBU is ERC20, Ownable {
    using SafeMath for uint;
    using Address for address;

    mapping(address => bool) public allowedContracts;
    mapping(address => Manager) public managers;

    uint256 private _maxSupply;
    uint256 private _minSupply;
    address public treasury;

    struct Manager {
        bool active;
        Limits burn;
        Limits mint;
    }

    struct Limits {
        uint256 max;
        uint256 actual;
    }

    modifier onlyAllowedContracts() {
        require(address(msg.sender).isContract() && allowedContracts[msg.sender] || !address(msg.sender).isContract(),
            "Address: should be allowed");
        _;
    }

    modifier onlyManager() {
        require(managers[msg.sender].active, "Address is not manager");
        _;
    }

    constructor (string memory name, string memory symbol, uint256 maxSupply, uint256 minSupply) ERC20(name, symbol) public {
        _maxSupply = maxSupply;
        _minSupply = minSupply;
    }

    function addManager(uint256 maxBurn, uint256 maxMint, address manager) public onlyOwner returns(bool) {
        require(!managers[manager].active, "Manager already exists");
        managers[manager].active = true;
        managers[manager].mint.max = maxMint;
        managers[manager].burn.max = maxBurn;
        return true;
    }

    function removeManager(address manager) public onlyOwner returns(bool) {
        require(managers[manager].active, "Manager not exists");
        managers[manager].active = false;
        managers[manager].mint.max = 0;
        managers[manager].burn.max = 0;
        return true;
    }

    function addAllowedContract(address _contract) external onlyOwner returns (bool) {
        require(_contract.isContract(), "Address: is not contract or not deployed");
        allowedContracts[_contract] = true;
        return true;
    }

    function removeAllowedContract(address _contract) external onlyOwner returns (bool) {
        require(_contract.isContract(), "Address: is not contract or not deployed");
        allowedContracts[_contract] = false;
        return true;
    }

    function changeTreasury(address _treasury) public onlyOwner returns(bool) {
        treasury = _treasury;
        return true;
    }

    function transfer(address recipient, uint256 amount) override public onlyAllowedContracts returns (bool) {
        return super.transfer(recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) override public onlyAllowedContracts returns (bool) {
        return super.transferFrom(sender, recipient, amount);
    }

    function mint(uint256 amount) onlyManager public returns(bool) {
        require(managers[msg.sender].mint.max >= managers[msg.sender].mint.actual.add(amount), "Limit exceeded");
        uint256 supply = totalSupply();
        require(_maxSupply >= supply.add(amount), "Supply exceeded cap");
        managers[msg.sender].mint.actual = managers[msg.sender].mint.actual.add(amount);
        _mint(treasury, amount);
        return true;
    }

    function burn(uint256 amount) onlyManager public returns(bool) {
        require(managers[msg.sender].burn.max >= managers[msg.sender].burn.actual.add(amount), "Limit exceeded");
        uint256 supply = totalSupply();
        require(_minSupply >= supply.sub(amount), "Supply exceeded cap");
        managers[msg.sender].burn.actual = managers[msg.sender].burn.actual.add(amount);
        _burn(treasury, amount);
        return true;
    }

    function receiveStuckTokens(address token) public onlyOwner returns(bool) {
        IERC20 coin = IERC20(token);
        require(coin.balanceOf(address(this)) > 0, "Zero balance");
        require(coin.transfer(treasury, coin.balanceOf(address(this))), "Transfer: error");
        return true;
    }

}

File 1 of 7: Address.sol
pragma solidity ^0.8.0;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    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");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    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");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        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

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

File 2 of 7: Context.sol
pragma solidity ^0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 3 of 7: ERC20.sol
pragma solidity ^0.8.0;

import "./Context.sol";
import "./IERC20.sol";
import "./SafeMath.sol";
import "./Address.sol";

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

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

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

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

    /**
     * @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. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view 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];
    }

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

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

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

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

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

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

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _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 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);
    }

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

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

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

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

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

    /**
     * @dev Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

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

File 4 of 7: IERC20.sol
pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

File 5 of 7: Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 6 of 7: SafeMath.sol
pragma solidity ^0.8.0;

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint256","name":"minSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"addAllowedContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBurn","type":"uint256"},{"internalType":"uint256","name":"maxMint","type":"uint256"},{"internalType":"address","name":"manager","type":"address"}],"name":"addManager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"changeTreasury","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"active","type":"bool"},{"components":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"internalType":"struct STBU.Limits","name":"burn","type":"tuple"},{"components":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"internalType":"struct STBU.Limits","name":"mint","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"receiveStuckTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"removeAllowedContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"name":"removeManager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b5060405162003c0638038062003c068339818101604052810190620000379190620002d4565b83838160039080519060200190620000519291906200018f565b5080600490805190602001906200006a9291906200018f565b506012600560006101000a81548160ff021916908360ff1602179055505050620000a96200009d620000c160201b60201c565b620000c960201b60201c565b8160088190555080600981905550505050506200052c565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200019d9062000423565b90600052602060002090601f016020900481019282620001c157600085556200020d565b82601f10620001dc57805160ff19168380011785556200020d565b828001600101855582156200020d579182015b828111156200020c578251825591602001919060010190620001ef565b5b5090506200021c919062000220565b5090565b5b808211156200023b57600081600090555060010162000221565b5090565b6000620002566200025084620003ad565b62000384565b905082815260208101848484011115620002755762000274620004f2565b5b62000282848285620003ed565b509392505050565b600082601f830112620002a257620002a1620004ed565b5b8151620002b48482602086016200023f565b91505092915050565b600081519050620002ce8162000512565b92915050565b60008060008060808587031215620002f157620002f0620004fc565b5b600085015167ffffffffffffffff811115620003125762000311620004f7565b5b62000320878288016200028a565b945050602085015167ffffffffffffffff811115620003445762000343620004f7565b5b62000352878288016200028a565b93505060406200036587828801620002bd565b92505060606200037887828801620002bd565b91505092959194509250565b600062000390620003a3565b90506200039e828262000459565b919050565b6000604051905090565b600067ffffffffffffffff821115620003cb57620003ca620004be565b5b620003d68262000501565b9050602081019050919050565b6000819050919050565b60005b838110156200040d578082015181840152602081019050620003f0565b838111156200041d576000848401525b50505050565b600060028204905060018216806200043c57607f821691505b602082108114156200045357620004526200048f565b5b50919050565b620004648262000501565b810181811067ffffffffffffffff82111715620004865762000485620004be565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200051d81620003e3565b81146200052957600080fd5b50565b6136ca806200053c6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80637ccf946d116100de578063a9059cbb11610097578063ce52ee8111610071578063ce52ee81146104d6578063dd62ed3e14610506578063f2fde38b14610536578063fdff9b4d1461055257610173565b8063a9059cbb14610446578063ac18de4314610476578063b14f2a39146104a657610173565b80637ccf946d1461034a5780638da5cb5b1461037a57806395d89b41146103985780639800fc16146103b6578063a0712d68146103e6578063a457c2d71461041657610173565b80633950935111610130578063395093511461026257806342966c681461029257806351e0e26b146102c257806361d027b3146102f257806370a0823114610310578063715018a61461034057610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c657806323b872dd146101e45780632c56462f14610214578063313ce56714610244575b600080fd5b610180610584565b60405161018d9190612d62565b60405180910390f35b6101b060048036038101906101ab9190612889565b610616565b6040516101bd9190612d10565b60405180910390f35b6101ce610634565b6040516101db9190612fc4565b60405180910390f35b6101fe60048036038101906101f99190612836565b61063e565b60405161020b9190612d10565b60405180910390f35b61022e600480360381019061022991906127c9565b61072e565b60405161023b9190612d10565b60405180910390f35b61024c61086b565b6040516102599190612fdf565b60405180910390f35b61027c60048036038101906102779190612889565b610882565b6040516102899190612d10565b60405180910390f35b6102ac60048036038101906102a791906128f6565b610935565b6040516102b99190612d10565b60405180910390f35b6102dc60048036038101906102d791906127c9565b610bdf565b6040516102e99190612d10565b60405180910390f35b6102fa610bff565b6040516103079190612ccc565b60405180910390f35b61032a600480360381019061032591906127c9565b610c25565b6040516103379190612fc4565b60405180910390f35b610348610c6d565b005b610364600480360381019061035f9190612950565b610cf5565b6040516103719190612d10565b60405180910390f35b610382610efd565b60405161038f9190612ccc565b60405180910390f35b6103a0610f27565b6040516103ad9190612d62565b60405180910390f35b6103d060048036038101906103cb91906127c9565b610fb9565b6040516103dd9190612d10565b60405180910390f35b61040060048036038101906103fb91906128f6565b6110f6565b60405161040d9190612d10565b60405180910390f35b610430600480360381019061042b9190612889565b6113a0565b60405161043d9190612d10565b60405180910390f35b610460600480360381019061045b9190612889565b61146d565b60405161046d9190612d10565b60405180910390f35b610490600480360381019061048b91906127c9565b61155b565b60405161049d9190612d10565b60405180910390f35b6104c060048036038101906104bb91906127c9565b611762565b6040516104cd9190612d10565b60405180910390f35b6104f060048036038101906104eb91906127c9565b61182a565b6040516104fd9190612d10565b60405180910390f35b610520600480360381019061051b91906127f6565b611af8565b60405161052d9190612fc4565b60405180910390f35b610550600480360381019061054b91906127c9565b611b7f565b005b61056c600480360381019061056791906127c9565b611c77565b60405161057b93929190612d2b565b60405180910390f35b60606003805461059390613128565b80601f01602080910402602001604051908101604052809291908181526020018280546105bf90613128565b801561060c5780601f106105e15761010080835404028352916020019161060c565b820191906000526020600020905b8154815290600101906020018083116105ef57829003601f168201915b5050505050905090565b600061062a610623611cea565b8484611cf2565b6001905092915050565b6000600254905090565b600061065f3373ffffffffffffffffffffffffffffffffffffffff16611ebd565b80156106b45750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806106db57506106d93373ffffffffffffffffffffffffffffffffffffffff16611ebd565b155b61071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071190612e04565b60405180910390fd5b610725848484611ed0565b90509392505050565b6000610738611cea565b73ffffffffffffffffffffffffffffffffffffffff16610756610efd565b73ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390612e84565b60405180910390fd5b6107cb8273ffffffffffffffffffffffffffffffffffffffff16611ebd565b61080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612da4565b60405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000600560009054906101000a900460ff16905090565b600061092b61088f611cea565b8461092685600160006108a0611cea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa990919063ffffffff16565b611cf2565b6001905092915050565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90612ee4565b60405180910390fd5b610a1e82600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010154611fa990919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600001541015610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c90612e44565b60405180910390fd5b6000610aaf610634565b9050610ac4838261200790919063ffffffff16565b6009541015610b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aff90612f24565b60405180910390fd5b610b6083600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010154611fa990919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550610bd5600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612051565b6001915050919050565b60066020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c75611cea565b73ffffffffffffffffffffffffffffffffffffffff16610c93610efd565b73ffffffffffffffffffffffffffffffffffffffff1614610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce090612e84565b60405180910390fd5b610cf360006121ff565b565b6000610cff611cea565b73ffffffffffffffffffffffffffffffffffffffff16610d1d610efd565b73ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90612e84565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa90612ea4565b60405180910390fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016000018190555083600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160000181905550600190509392505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f3690613128565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6290613128565b8015610faf5780601f10610f8457610100808354040283529160200191610faf565b820191906000526020600020905b815481529060010190602001808311610f9257829003601f168201915b5050505050905090565b6000610fc3611cea565b73ffffffffffffffffffffffffffffffffffffffff16610fe1610efd565b73ffffffffffffffffffffffffffffffffffffffff1614611037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102e90612e84565b60405180910390fd5b6110568273ffffffffffffffffffffffffffffffffffffffff16611ebd565b611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90612da4565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e90612ee4565b60405180910390fd5b6111df82600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160010154611fa990919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600001541015611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d90612e44565b60405180910390fd5b6000611270610634565b90506112858382611fa990919063ffffffff16565b60085410156112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c090612f24565b60405180910390fd5b61132183600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160010154611fa990919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160010181905550611396600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122c5565b6001915050919050565b60006114636113ad611cea565b8461145e8560405180606001604052806025815260200161367060259139600160006113d7611cea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124599092919063ffffffff16565b611cf2565b6001905092915050565b600061148e3373ffffffffffffffffffffffffffffffffffffffff16611ebd565b80156114e35750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061150a57506115083373ffffffffffffffffffffffffffffffffffffffff16611ebd565b155b611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154090612e04565b60405180910390fd5b61155383836124bd565b905092915050565b6000611565611cea565b73ffffffffffffffffffffffffffffffffffffffff16611583610efd565b73ffffffffffffffffffffffffffffffffffffffff16146115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612e84565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f90612e64565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600001819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000018190555060019050919050565b600061176c611cea565b73ffffffffffffffffffffffffffffffffffffffff1661178a610efd565b73ffffffffffffffffffffffffffffffffffffffff16146117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d790612e84565b60405180910390fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000611834611cea565b73ffffffffffffffffffffffffffffffffffffffff16611852610efd565b73ffffffffffffffffffffffffffffffffffffffff16146118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f90612e84565b60405180910390fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118e89190612ccc565b60206040518083038186803b15801561190057600080fd5b505afa158015611914573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119389190612923565b11611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90612f64565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119f09190612ccc565b60206040518083038186803b158015611a0857600080fd5b505afa158015611a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a409190612923565b6040518363ffffffff1660e01b8152600401611a5d929190612ce7565b602060405180830381600087803b158015611a7757600080fd5b505af1158015611a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaf91906128c9565b611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae590612f84565b60405180910390fd5b6001915050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b87611cea565b73ffffffffffffffffffffffffffffffffffffffff16611ba5610efd565b73ffffffffffffffffffffffffffffffffffffffff1614611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290612e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6290612dc4565b60405180910390fd5b611c74816121ff565b50565b60076020528060005260406000206000915090508060000160009054906101000a900460ff16908060010160405180604001604052908160008201548152602001600182015481525050908060030160405180604001604052908160008201548152602001600182015481525050905083565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc990612de4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb09190612fc4565b60405180910390a3505050565b600080823b905060008111915050919050565b6000611edd8484846124db565b611f9e84611ee9611cea565b611f998560405180606001604052806028815260200161364860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611f4f611cea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124599092919063ffffffff16565b611cf2565b600190509392505050565b6000808284611fb89190613016565b905083811015611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490612e24565b60405180910390fd5b8091505092915050565b600061204983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612459565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b890612ec4565b60405180910390fd5b6120cd82600083612770565b61213881604051806060016040528060228152602001613600602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124599092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061218f8160025461200790919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121f39190612fc4565b60405180910390a35050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c90612fa4565b60405180910390fd5b61234160008383612770565b61235681600254611fa990919063ffffffff16565b6002819055506123ad816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161244d9190612fc4565b60405180910390a35050565b60008383111582906124a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124989190612d62565b60405180910390fd5b50600083856124b0919061306c565b9050809150509392505050565b60006124d16124ca611cea565b84846124db565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561254b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254290612f04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b290612d84565b60405180910390fd5b6125c6838383612770565b61263181604051806060016040528060268152602001613622602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124599092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126c4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127639190612fc4565b60405180910390a3505050565b505050565b600081359050612784816135ba565b92915050565b600081519050612799816135d1565b92915050565b6000813590506127ae816135e8565b92915050565b6000815190506127c3816135e8565b92915050565b6000602082840312156127df576127de6131b8565b5b60006127ed84828501612775565b91505092915050565b6000806040838503121561280d5761280c6131b8565b5b600061281b85828601612775565b925050602061282c85828601612775565b9150509250929050565b60008060006060848603121561284f5761284e6131b8565b5b600061285d86828701612775565b935050602061286e86828701612775565b925050604061287f8682870161279f565b9150509250925092565b600080604083850312156128a05761289f6131b8565b5b60006128ae85828601612775565b92505060206128bf8582860161279f565b9150509250929050565b6000602082840312156128df576128de6131b8565b5b60006128ed8482850161278a565b91505092915050565b60006020828403121561290c5761290b6131b8565b5b600061291a8482850161279f565b91505092915050565b600060208284031215612939576129386131b8565b5b6000612947848285016127b4565b91505092915050565b600080600060608486031215612969576129686131b8565b5b60006129778682870161279f565b93505060206129888682870161279f565b925050604061299986828701612775565b9150509250925092565b6129ac816130a0565b82525050565b6129bb816130b2565b82525050565b60006129cc82612ffa565b6129d68185613005565b93506129e68185602086016130f5565b6129ef816131bd565b840191505092915050565b6000612a07602383613005565b9150612a12826131ce565b604082019050919050565b6000612a2a602883613005565b9150612a358261321d565b604082019050919050565b6000612a4d602683613005565b9150612a588261326c565b604082019050919050565b6000612a70602283613005565b9150612a7b826132bb565b604082019050919050565b6000612a93601a83613005565b9150612a9e8261330a565b602082019050919050565b6000612ab6601b83613005565b9150612ac182613333565b602082019050919050565b6000612ad9600e83613005565b9150612ae48261335c565b602082019050919050565b6000612afc601283613005565b9150612b0782613385565b602082019050919050565b6000612b1f602083613005565b9150612b2a826133ae565b602082019050919050565b6000612b42601683613005565b9150612b4d826133d7565b602082019050919050565b6000612b65602183613005565b9150612b7082613400565b604082019050919050565b6000612b88601683613005565b9150612b938261344f565b602082019050919050565b6000612bab602583613005565b9150612bb682613478565b604082019050919050565b6000612bce601383613005565b9150612bd9826134c7565b602082019050919050565b6000612bf1602483613005565b9150612bfc826134f0565b604082019050919050565b6000612c14600c83613005565b9150612c1f8261353f565b602082019050919050565b6000612c37600f83613005565b9150612c4282613568565b602082019050919050565b6000612c5a601f83613005565b9150612c6582613591565b602082019050919050565b604082016000820151612c866000850182612c9f565b506020820151612c996020850182612c9f565b50505050565b612ca8816130de565b82525050565b612cb7816130de565b82525050565b612cc6816130e8565b82525050565b6000602082019050612ce160008301846129a3565b92915050565b6000604082019050612cfc60008301856129a3565b612d096020830184612cae565b9392505050565b6000602082019050612d2560008301846129b2565b92915050565b600060a082019050612d4060008301866129b2565b612d4d6020830185612c70565b612d5a6060830184612c70565b949350505050565b60006020820190508181036000830152612d7c81846129c1565b905092915050565b60006020820190508181036000830152612d9d816129fa565b9050919050565b60006020820190508181036000830152612dbd81612a1d565b9050919050565b60006020820190508181036000830152612ddd81612a40565b9050919050565b60006020820190508181036000830152612dfd81612a63565b9050919050565b60006020820190508181036000830152612e1d81612a86565b9050919050565b60006020820190508181036000830152612e3d81612aa9565b9050919050565b60006020820190508181036000830152612e5d81612acc565b9050919050565b60006020820190508181036000830152612e7d81612aef565b9050919050565b60006020820190508181036000830152612e9d81612b12565b9050919050565b60006020820190508181036000830152612ebd81612b35565b9050919050565b60006020820190508181036000830152612edd81612b58565b9050919050565b60006020820190508181036000830152612efd81612b7b565b9050919050565b60006020820190508181036000830152612f1d81612b9e565b9050919050565b60006020820190508181036000830152612f3d81612bc1565b9050919050565b60006020820190508181036000830152612f5d81612be4565b9050919050565b60006020820190508181036000830152612f7d81612c07565b9050919050565b60006020820190508181036000830152612f9d81612c2a565b9050919050565b60006020820190508181036000830152612fbd81612c4d565b9050919050565b6000602082019050612fd96000830184612cae565b92915050565b6000602082019050612ff46000830184612cbd565b92915050565b600081519050919050565b600082825260208201905092915050565b6000613021826130de565b915061302c836130de565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130615761306061315a565b5b828201905092915050565b6000613077826130de565b9150613082836130de565b9250828210156130955761309461315a565b5b828203905092915050565b60006130ab826130be565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156131135780820151818401526020810190506130f8565b83811115613122576000848401525b50505050565b6000600282049050600182168061314057607f821691505b6020821081141561315457613153613189565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a206973206e6f7420636f6e7472616374206f72206e6f742060008201527f6465706c6f796564000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2073686f756c6420626520616c6c6f776564000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4c696d6974206578636565646564000000000000000000000000000000000000600082015250565b7f4d616e61676572206e6f74206578697374730000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d616e6167657220616c72656164792065786973747300000000000000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f41646472657373206973206e6f74206d616e6167657200000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f537570706c792065786365656465642063617000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5a65726f2062616c616e63650000000000000000000000000000000000000000600082015250565b7f5472616e736665723a206572726f720000000000000000000000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6135c3816130a0565b81146135ce57600080fd5b50565b6135da816130b2565b81146135e557600080fd5b50565b6135f1816130de565b81146135fc57600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206aab7288eaf9cdd98fa0b483c9b10d46f11101f6c41d1da5bf9b4097e88c3c8964736f6c63430008070033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000014adf4b7320334b900000000000000000000000000000000000000000000000014adf4b7320334b9000000000000000000000000000000000000000000000000000000000000000000001053746f626f7820546f6b656e20762e320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045354425500000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c80637ccf946d116100de578063a9059cbb11610097578063ce52ee8111610071578063ce52ee81146104d6578063dd62ed3e14610506578063f2fde38b14610536578063fdff9b4d1461055257610173565b8063a9059cbb14610446578063ac18de4314610476578063b14f2a39146104a657610173565b80637ccf946d1461034a5780638da5cb5b1461037a57806395d89b41146103985780639800fc16146103b6578063a0712d68146103e6578063a457c2d71461041657610173565b80633950935111610130578063395093511461026257806342966c681461029257806351e0e26b146102c257806361d027b3146102f257806370a0823114610310578063715018a61461034057610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c657806323b872dd146101e45780632c56462f14610214578063313ce56714610244575b600080fd5b610180610584565b60405161018d9190612d62565b60405180910390f35b6101b060048036038101906101ab9190612889565b610616565b6040516101bd9190612d10565b60405180910390f35b6101ce610634565b6040516101db9190612fc4565b60405180910390f35b6101fe60048036038101906101f99190612836565b61063e565b60405161020b9190612d10565b60405180910390f35b61022e600480360381019061022991906127c9565b61072e565b60405161023b9190612d10565b60405180910390f35b61024c61086b565b6040516102599190612fdf565b60405180910390f35b61027c60048036038101906102779190612889565b610882565b6040516102899190612d10565b60405180910390f35b6102ac60048036038101906102a791906128f6565b610935565b6040516102b99190612d10565b60405180910390f35b6102dc60048036038101906102d791906127c9565b610bdf565b6040516102e99190612d10565b60405180910390f35b6102fa610bff565b6040516103079190612ccc565b60405180910390f35b61032a600480360381019061032591906127c9565b610c25565b6040516103379190612fc4565b60405180910390f35b610348610c6d565b005b610364600480360381019061035f9190612950565b610cf5565b6040516103719190612d10565b60405180910390f35b610382610efd565b60405161038f9190612ccc565b60405180910390f35b6103a0610f27565b6040516103ad9190612d62565b60405180910390f35b6103d060048036038101906103cb91906127c9565b610fb9565b6040516103dd9190612d10565b60405180910390f35b61040060048036038101906103fb91906128f6565b6110f6565b60405161040d9190612d10565b60405180910390f35b610430600480360381019061042b9190612889565b6113a0565b60405161043d9190612d10565b60405180910390f35b610460600480360381019061045b9190612889565b61146d565b60405161046d9190612d10565b60405180910390f35b610490600480360381019061048b91906127c9565b61155b565b60405161049d9190612d10565b60405180910390f35b6104c060048036038101906104bb91906127c9565b611762565b6040516104cd9190612d10565b60405180910390f35b6104f060048036038101906104eb91906127c9565b61182a565b6040516104fd9190612d10565b60405180910390f35b610520600480360381019061051b91906127f6565b611af8565b60405161052d9190612fc4565b60405180910390f35b610550600480360381019061054b91906127c9565b611b7f565b005b61056c600480360381019061056791906127c9565b611c77565b60405161057b93929190612d2b565b60405180910390f35b60606003805461059390613128565b80601f01602080910402602001604051908101604052809291908181526020018280546105bf90613128565b801561060c5780601f106105e15761010080835404028352916020019161060c565b820191906000526020600020905b8154815290600101906020018083116105ef57829003601f168201915b5050505050905090565b600061062a610623611cea565b8484611cf2565b6001905092915050565b6000600254905090565b600061065f3373ffffffffffffffffffffffffffffffffffffffff16611ebd565b80156106b45750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806106db57506106d93373ffffffffffffffffffffffffffffffffffffffff16611ebd565b155b61071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071190612e04565b60405180910390fd5b610725848484611ed0565b90509392505050565b6000610738611cea565b73ffffffffffffffffffffffffffffffffffffffff16610756610efd565b73ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390612e84565b60405180910390fd5b6107cb8273ffffffffffffffffffffffffffffffffffffffff16611ebd565b61080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612da4565b60405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000600560009054906101000a900460ff16905090565b600061092b61088f611cea565b8461092685600160006108a0611cea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa990919063ffffffff16565b611cf2565b6001905092915050565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90612ee4565b60405180910390fd5b610a1e82600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010154611fa990919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600001541015610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c90612e44565b60405180910390fd5b6000610aaf610634565b9050610ac4838261200790919063ffffffff16565b6009541015610b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aff90612f24565b60405180910390fd5b610b6083600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010154611fa990919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550610bd5600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612051565b6001915050919050565b60066020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c75611cea565b73ffffffffffffffffffffffffffffffffffffffff16610c93610efd565b73ffffffffffffffffffffffffffffffffffffffff1614610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce090612e84565b60405180910390fd5b610cf360006121ff565b565b6000610cff611cea565b73ffffffffffffffffffffffffffffffffffffffff16610d1d610efd565b73ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90612e84565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa90612ea4565b60405180910390fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016000018190555083600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160000181905550600190509392505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f3690613128565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6290613128565b8015610faf5780601f10610f8457610100808354040283529160200191610faf565b820191906000526020600020905b815481529060010190602001808311610f9257829003601f168201915b5050505050905090565b6000610fc3611cea565b73ffffffffffffffffffffffffffffffffffffffff16610fe1610efd565b73ffffffffffffffffffffffffffffffffffffffff1614611037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102e90612e84565b60405180910390fd5b6110568273ffffffffffffffffffffffffffffffffffffffff16611ebd565b611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90612da4565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e90612ee4565b60405180910390fd5b6111df82600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160010154611fa990919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600001541015611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d90612e44565b60405180910390fd5b6000611270610634565b90506112858382611fa990919063ffffffff16565b60085410156112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c090612f24565b60405180910390fd5b61132183600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160010154611fa990919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160010181905550611396600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122c5565b6001915050919050565b60006114636113ad611cea565b8461145e8560405180606001604052806025815260200161367060259139600160006113d7611cea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124599092919063ffffffff16565b611cf2565b6001905092915050565b600061148e3373ffffffffffffffffffffffffffffffffffffffff16611ebd565b80156114e35750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061150a57506115083373ffffffffffffffffffffffffffffffffffffffff16611ebd565b155b611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154090612e04565b60405180910390fd5b61155383836124bd565b905092915050565b6000611565611cea565b73ffffffffffffffffffffffffffffffffffffffff16611583610efd565b73ffffffffffffffffffffffffffffffffffffffff16146115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612e84565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f90612e64565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600001819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000018190555060019050919050565b600061176c611cea565b73ffffffffffffffffffffffffffffffffffffffff1661178a610efd565b73ffffffffffffffffffffffffffffffffffffffff16146117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d790612e84565b60405180910390fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000611834611cea565b73ffffffffffffffffffffffffffffffffffffffff16611852610efd565b73ffffffffffffffffffffffffffffffffffffffff16146118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f90612e84565b60405180910390fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118e89190612ccc565b60206040518083038186803b15801561190057600080fd5b505afa158015611914573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119389190612923565b11611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90612f64565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119f09190612ccc565b60206040518083038186803b158015611a0857600080fd5b505afa158015611a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a409190612923565b6040518363ffffffff1660e01b8152600401611a5d929190612ce7565b602060405180830381600087803b158015611a7757600080fd5b505af1158015611a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaf91906128c9565b611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae590612f84565b60405180910390fd5b6001915050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b87611cea565b73ffffffffffffffffffffffffffffffffffffffff16611ba5610efd565b73ffffffffffffffffffffffffffffffffffffffff1614611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290612e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6290612dc4565b60405180910390fd5b611c74816121ff565b50565b60076020528060005260406000206000915090508060000160009054906101000a900460ff16908060010160405180604001604052908160008201548152602001600182015481525050908060030160405180604001604052908160008201548152602001600182015481525050905083565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990612f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc990612de4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb09190612fc4565b60405180910390a3505050565b600080823b905060008111915050919050565b6000611edd8484846124db565b611f9e84611ee9611cea565b611f998560405180606001604052806028815260200161364860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611f4f611cea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124599092919063ffffffff16565b611cf2565b600190509392505050565b6000808284611fb89190613016565b905083811015611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490612e24565b60405180910390fd5b8091505092915050565b600061204983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612459565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b890612ec4565b60405180910390fd5b6120cd82600083612770565b61213881604051806060016040528060228152602001613600602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124599092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061218f8160025461200790919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121f39190612fc4565b60405180910390a35050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c90612fa4565b60405180910390fd5b61234160008383612770565b61235681600254611fa990919063ffffffff16565b6002819055506123ad816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161244d9190612fc4565b60405180910390a35050565b60008383111582906124a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124989190612d62565b60405180910390fd5b50600083856124b0919061306c565b9050809150509392505050565b60006124d16124ca611cea565b84846124db565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561254b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254290612f04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b290612d84565b60405180910390fd5b6125c6838383612770565b61263181604051806060016040528060268152602001613622602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124599092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126c4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127639190612fc4565b60405180910390a3505050565b505050565b600081359050612784816135ba565b92915050565b600081519050612799816135d1565b92915050565b6000813590506127ae816135e8565b92915050565b6000815190506127c3816135e8565b92915050565b6000602082840312156127df576127de6131b8565b5b60006127ed84828501612775565b91505092915050565b6000806040838503121561280d5761280c6131b8565b5b600061281b85828601612775565b925050602061282c85828601612775565b9150509250929050565b60008060006060848603121561284f5761284e6131b8565b5b600061285d86828701612775565b935050602061286e86828701612775565b925050604061287f8682870161279f565b9150509250925092565b600080604083850312156128a05761289f6131b8565b5b60006128ae85828601612775565b92505060206128bf8582860161279f565b9150509250929050565b6000602082840312156128df576128de6131b8565b5b60006128ed8482850161278a565b91505092915050565b60006020828403121561290c5761290b6131b8565b5b600061291a8482850161279f565b91505092915050565b600060208284031215612939576129386131b8565b5b6000612947848285016127b4565b91505092915050565b600080600060608486031215612969576129686131b8565b5b60006129778682870161279f565b93505060206129888682870161279f565b925050604061299986828701612775565b9150509250925092565b6129ac816130a0565b82525050565b6129bb816130b2565b82525050565b60006129cc82612ffa565b6129d68185613005565b93506129e68185602086016130f5565b6129ef816131bd565b840191505092915050565b6000612a07602383613005565b9150612a12826131ce565b604082019050919050565b6000612a2a602883613005565b9150612a358261321d565b604082019050919050565b6000612a4d602683613005565b9150612a588261326c565b604082019050919050565b6000612a70602283613005565b9150612a7b826132bb565b604082019050919050565b6000612a93601a83613005565b9150612a9e8261330a565b602082019050919050565b6000612ab6601b83613005565b9150612ac182613333565b602082019050919050565b6000612ad9600e83613005565b9150612ae48261335c565b602082019050919050565b6000612afc601283613005565b9150612b0782613385565b602082019050919050565b6000612b1f602083613005565b9150612b2a826133ae565b602082019050919050565b6000612b42601683613005565b9150612b4d826133d7565b602082019050919050565b6000612b65602183613005565b9150612b7082613400565b604082019050919050565b6000612b88601683613005565b9150612b938261344f565b602082019050919050565b6000612bab602583613005565b9150612bb682613478565b604082019050919050565b6000612bce601383613005565b9150612bd9826134c7565b602082019050919050565b6000612bf1602483613005565b9150612bfc826134f0565b604082019050919050565b6000612c14600c83613005565b9150612c1f8261353f565b602082019050919050565b6000612c37600f83613005565b9150612c4282613568565b602082019050919050565b6000612c5a601f83613005565b9150612c6582613591565b602082019050919050565b604082016000820151612c866000850182612c9f565b506020820151612c996020850182612c9f565b50505050565b612ca8816130de565b82525050565b612cb7816130de565b82525050565b612cc6816130e8565b82525050565b6000602082019050612ce160008301846129a3565b92915050565b6000604082019050612cfc60008301856129a3565b612d096020830184612cae565b9392505050565b6000602082019050612d2560008301846129b2565b92915050565b600060a082019050612d4060008301866129b2565b612d4d6020830185612c70565b612d5a6060830184612c70565b949350505050565b60006020820190508181036000830152612d7c81846129c1565b905092915050565b60006020820190508181036000830152612d9d816129fa565b9050919050565b60006020820190508181036000830152612dbd81612a1d565b9050919050565b60006020820190508181036000830152612ddd81612a40565b9050919050565b60006020820190508181036000830152612dfd81612a63565b9050919050565b60006020820190508181036000830152612e1d81612a86565b9050919050565b60006020820190508181036000830152612e3d81612aa9565b9050919050565b60006020820190508181036000830152612e5d81612acc565b9050919050565b60006020820190508181036000830152612e7d81612aef565b9050919050565b60006020820190508181036000830152612e9d81612b12565b9050919050565b60006020820190508181036000830152612ebd81612b35565b9050919050565b60006020820190508181036000830152612edd81612b58565b9050919050565b60006020820190508181036000830152612efd81612b7b565b9050919050565b60006020820190508181036000830152612f1d81612b9e565b9050919050565b60006020820190508181036000830152612f3d81612bc1565b9050919050565b60006020820190508181036000830152612f5d81612be4565b9050919050565b60006020820190508181036000830152612f7d81612c07565b9050919050565b60006020820190508181036000830152612f9d81612c2a565b9050919050565b60006020820190508181036000830152612fbd81612c4d565b9050919050565b6000602082019050612fd96000830184612cae565b92915050565b6000602082019050612ff46000830184612cbd565b92915050565b600081519050919050565b600082825260208201905092915050565b6000613021826130de565b915061302c836130de565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130615761306061315a565b5b828201905092915050565b6000613077826130de565b9150613082836130de565b9250828210156130955761309461315a565b5b828203905092915050565b60006130ab826130be565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156131135780820151818401526020810190506130f8565b83811115613122576000848401525b50505050565b6000600282049050600182168061314057607f821691505b6020821081141561315457613153613189565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a206973206e6f7420636f6e7472616374206f72206e6f742060008201527f6465706c6f796564000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2073686f756c6420626520616c6c6f776564000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4c696d6974206578636565646564000000000000000000000000000000000000600082015250565b7f4d616e61676572206e6f74206578697374730000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d616e6167657220616c72656164792065786973747300000000000000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f41646472657373206973206e6f74206d616e6167657200000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f537570706c792065786365656465642063617000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5a65726f2062616c616e63650000000000000000000000000000000000000000600082015250565b7f5472616e736665723a206572726f720000000000000000000000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6135c3816130a0565b81146135ce57600080fd5b50565b6135da816130b2565b81146135e557600080fd5b50565b6135f1816130de565b81146135fc57600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206aab7288eaf9cdd98fa0b483c9b10d46f11101f6c41d1da5bf9b4097e88c3c8964736f6c63430008070033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000014adf4b7320334b900000000000000000000000000000000000000000000000014adf4b7320334b9000000000000000000000000000000000000000000000000000000000000000000001053746f626f7820546f6b656e20762e320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045354425500000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): Stobox Token v.2
Arg [1] : symbol (string): STBU
Arg [2] : maxSupply (uint256): 25000000000000000000000000
Arg [3] : minSupply (uint256): 25000000000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 00000000000000000000000000000000000000000014adf4b7320334b9000000
Arg [3] : 00000000000000000000000000000000000000000014adf4b7320334b9000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000010
Arg [5] : 53746f626f7820546f6b656e20762e3200000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 5354425500000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

121:3819:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2159:81:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4195:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3202:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2544:194:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1746:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3061:81:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5533:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3191:441:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;220:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;388:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:117:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1597:92:4;;;:::i;:::-;;1115:333:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;965:85:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2353::2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1990:242:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2744:441;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6235:266:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2376:162:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1454:286;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2238:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3638:299;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3908:149:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1838:189:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;274:43:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2159:81:2;2196:13;2228:5;2221:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2159:81;:::o;4195:166::-;4278:4;4294:39;4303:12;:10;:12::i;:::-;4317:7;4326:6;4294:8;:39::i;:::-;4350:4;4343:11;;4195:166;;;;:::o;3202:98::-;3255:7;3281:12;;3274:19;;3202:98;:::o;2544:194:5:-;2663:4;631:32;639:10;631:30;;;:32::i;:::-;:64;;;;;667:16;:28;684:10;667:28;;;;;;;;;;;;;;;;;;;;;;;;;631:64;:101;;;;700:32;708:10;700:30;;;:32::i;:::-;699:33;631:101;623:152;;;;;;;;;;;;:::i;:::-;;;;;;;;;2686:45:::1;2705:6;2713:9;2724:6;2686:18;:45::i;:::-;2679:52;;2544:194:::0;;;;;:::o;1746:238::-;1821:4;1188:12:4;:10;:12::i;:::-;1177:23;;:7;:5;:7::i;:::-;:23;;;1169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1845:22:5::1;:9;:20;;;:22::i;:::-;1837:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;1952:4;1922:16;:27;1939:9;1922:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1973:4;1966:11;;1746:238:::0;;;:::o;3061:81:2:-;3102:5;3126:9;;;;;;;;;;;3119:16;;3061:81;:::o;5533:215::-;5621:4;5637:83;5646:12;:10;:12::i;:::-;5660:7;5669:50;5708:10;5669:11;:25;5681:12;:10;:12::i;:::-;5669:25;;;;;;;;;;;;;;;:34;5695:7;5669:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;5637:8;:83::i;:::-;5737:4;5730:11;;5533:215;;;;:::o;3191:441:5:-;3248:4;840:8;:20;849:10;840:20;;;;;;;;;;;;;;;:27;;;;;;;;;;;;832:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;3305:44:::1;3342:6;3305:8;:20;3314:10;3305:20;;;;;;;;;;;;;;;:25;;:32;;;:36;;:44;;;;:::i;:::-;3272:8;:20;3281:10;3272:20;;;;;;;;;;;;;;;:25;;:29;;;:77;;3264:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;3378:14;3395:13;:11;:13::i;:::-;3378:30;;3440:18;3451:6;3440;:10;;:18;;;;:::i;:::-;3426:10;;:32;;3418:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3527:44;3564:6;3527:8;:20;3536:10;3527:20;;;;;;;;;;;;;;;:25;;:32;;;:36;;:44;;;;:::i;:::-;3492:8;:20;3501:10;3492:20;;;;;;;;;;;;;;;:25;;:32;;:79;;;;3581:23;3587:8;;;;;;;;;;;3597:6;3581:5;:23::i;:::-;3621:4;3614:11;;;3191:441:::0;;;:::o;220:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;388:23::-;;;;;;;;;;;;;:::o;3358:117:2:-;3424:7;3450:9;:18;3460:7;3450:18;;;;;;;;;;;;;;;;3443:25;;3358:117;;;:::o;1597:92:4:-;1188:12;:10;:12::i;:::-;1177:23;;:7;:5;:7::i;:::-;:23;;;1169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1661:21:::1;1679:1;1661:9;:21::i;:::-;1597:92::o:0;1115:333:5:-;1211:4;1188:12:4;:10;:12::i;:::-;1177:23;;:7;:5;:7::i;:::-;:23;;;1169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1236:8:5::1;:17;1245:7;1236:17;;;;;;;;;;;;;;;:24;;;;;;;;;;;;1235:25;1227:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;1324:4;1297:8;:17;1306:7;1297:17;;;;;;;;;;;;;;;:24;;;:31;;;;;;;;;;;;;;;;;;1367:7;1338:8;:17;1347:7;1338:17;;;;;;;;;;;;;;;:22;;:26;;:36;;;;1413:7;1384:8;:17;1393:7;1384:17;;;;;;;;;;;;;;;:22;;:26;;:36;;;;1437:4;1430:11;;1115:333:::0;;;;;:::o;965:85:4:-;1011:7;1037:6;;;;;;;;;;;1030:13;;965:85;:::o;2353::2:-;2392:13;2424:7;2417:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2353:85;:::o;1990:242:5:-;2068:4;1188:12:4;:10;:12::i;:::-;1177:23;;:7;:5;:7::i;:::-;:23;;;1169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2092:22:5::1;:9;:20;;;:22::i;:::-;2084:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;2199:5;2169:16;:27;2186:9;2169:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;2221:4;2214:11;;1990:242:::0;;;:::o;2744:441::-;2801:4;840:8;:20;849:10;840:20;;;;;;;;;;;;;;;:27;;;;;;;;;;;;832:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2858:44:::1;2895:6;2858:8;:20;2867:10;2858:20;;;;;;;;;;;;;;;:25;;:32;;;:36;;:44;;;;:::i;:::-;2825:8;:20;2834:10;2825:20;;;;;;;;;;;;;;;:25;;:29;;;:77;;2817:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;2931:14;2948:13;:11;:13::i;:::-;2931:30;;2993:18;3004:6;2993;:10;;:18;;;;:::i;:::-;2979:10;;:32;;2971:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3080:44;3117:6;3080:8;:20;3089:10;3080:20;;;;;;;;;;;;;;;:25;;:32;;;:36;;:44;;;;:::i;:::-;3045:8;:20;3054:10;3045:20;;;;;;;;;;;;;;;:25;;:32;;:79;;;;3134:23;3140:8;;;;;;;;;;;3150:6;3134:5;:23::i;:::-;3174:4;3167:11;;;2744:441:::0;;;:::o;6235:266:2:-;6328:4;6344:129;6353:12;:10;:12::i;:::-;6367:7;6376:96;6415:15;6376:96;;;;;;;;;;;;;;;;;:11;:25;6388:12;:10;:12::i;:::-;6376:25;;;;;;;;;;;;;;;:34;6402:7;6376:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6344:8;:129::i;:::-;6490:4;6483:11;;6235:266;;;;:::o;2376:162:5:-;2475:4;631:32;639:10;631:30;;;:32::i;:::-;:64;;;;;667:16;:28;684:10;667:28;;;;;;;;;;;;;;;;;;;;;;;;;631:64;:101;;;;700:32;708:10;700:30;;;:32::i;:::-;699:33;631:101;623:152;;;;;;;;;;;;:::i;:::-;;;;;;;;;2498:33:::1;2513:9;2524:6;2498:14;:33::i;:::-;2491:40;;2376:162:::0;;;;:::o;1454:286::-;1519:4;1188:12:4;:10;:12::i;:::-;1177:23;;:7;:5;:7::i;:::-;:23;;;1169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1543:8:5::1;:17;1552:7;1543:17;;;;;;;;;;;;;;;:24;;;;;;;;;;;;1535:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1627:5;1600:8;:17;1609:7;1600:17;;;;;;;;;;;;;;;:24;;;:32;;;;;;;;;;;;;;;;;;1671:1;1642:8;:17;1651:7;1642:17;;;;;;;;;;;;;;;:22;;:26;;:30;;;;1711:1;1682:8;:17;1691:7;1682:17;;;;;;;;;;;;;;;:22;;:26;;:30;;;;1729:4;1722:11;;1454:286:::0;;;:::o;2238:132::-;2306:4;1188:12:4;:10;:12::i;:::-;1177:23;;:7;:5;:7::i;:::-;:23;;;1169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2333:9:5::1;2322:8;;:20;;;;;;;;;;;;;;;;;;2359:4;2352:11;;2238:132:::0;;;:::o;3638:299::-;3706:4;1188:12:4;:10;:12::i;:::-;1177:23;;:7;:5;:7::i;:::-;:23;;;1169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3722:11:5::1;3743:5;3722:27;;3799:1;3767:4;:14;;;3790:4;3767:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;3759:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;3835:4;:13;;;3849:8;;;;;;;;;;;3859:4;:14;;;3882:4;3859:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3835:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3827:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;3926:4;3919:11;;;3638:299:::0;;;:::o;3908:149:2:-;3997:7;4023:11;:18;4035:5;4023:18;;;;;;;;;;;;;;;:27;4042:7;4023:27;;;;;;;;;;;;;;;;4016:34;;3908:149;;;;:::o;1838:189:4:-;1188:12;:10;:12::i;:::-;1177:23;;:7;:5;:7::i;:::-;:23;;;1169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1946:1:::1;1926:22;;:8;:22;;;;1918:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2001:19;2011:8;2001:9;:19::i;:::-;1838:189:::0;:::o;274:43:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;557:96:1:-;610:7;636:10;629:17;;557:96;:::o;9299:340:2:-;9417:1;9400:19;;:5;:19;;;;9392:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9497:1;9478:21;;:7;:21;;;;9470:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9579:6;9549:11;:18;9561:5;9549:18;;;;;;;;;;;;;;;:27;9568:7;9549:27;;;;;;;;;;;;;;;:36;;;;9616:7;9600:32;;9609:5;9600:32;;;9625:6;9600:32;;;;;;:::i;:::-;;;;;;;;9299:340;;;:::o;685:377:0:-;745:4;948:12;1013:7;1001:20;993:28;;1054:1;1047:4;:8;1040:15;;;685:377;;;:::o;4821:317:2:-;4927:4;4943:36;4953:6;4961:9;4972:6;4943:9;:36::i;:::-;4989:121;4998:6;5006:12;:10;:12::i;:::-;5020:89;5058:6;5020:89;;;;;;;;;;;;;;;;;:11;:19;5032:6;5020:19;;;;;;;;;;;;;;;:33;5040:12;:10;:12::i;:::-;5020:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;4989:8;:121::i;:::-;5127:4;5120:11;;4821:317;;;;;:::o;841:176:6:-;899:7;918:9;934:1;930;:5;;;;:::i;:::-;918:17;;958:1;953;:6;;945:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1009:1;1002:8;;;841:176;;;;:::o;1288:134::-;1346:7;1372:43;1376:1;1379;1372:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1365:50;;1288:134;;;;:::o;8464:410:2:-;8566:1;8547:21;;:7;:21;;;;8539:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8617:49;8638:7;8655:1;8659:6;8617:20;:49::i;:::-;8698:68;8721:6;8698:68;;;;;;;;;;;;;;;;;:9;:18;8708:7;8698:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;8677:9;:18;8687:7;8677:18;;;;;;;;;;;;;;;:89;;;;8791:24;8808:6;8791:12;;:16;;:24;;;;:::i;:::-;8776:12;:39;;;;8856:1;8830:37;;8839:7;8830:37;;;8860:6;8830:37;;;;;;:::i;:::-;;;;;;;;8464:410;;:::o;2033:169:4:-;2088:16;2107:6;;;;;;;;;;;2088:25;;2132:8;2123:6;;:17;;;;;;;;;;;;;;;;;;2186:8;2155:40;;2176:8;2155:40;;;;;;;;;;;;2078:124;2033:169;:::o;7775:370:2:-;7877:1;7858:21;;:7;:21;;;;7850:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7926:49;7955:1;7959:7;7968:6;7926:20;:49::i;:::-;8001:24;8018:6;8001:12;;:16;;:24;;;;:::i;:::-;7986:12;:39;;;;8056:30;8079:6;8056:9;:18;8066:7;8056:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;8035:9;:18;8045:7;8035:18;;;;;;;;;;;;;;;:51;;;;8122:7;8101:37;;8118:1;8101:37;;;8131:6;8101:37;;;;;;:::i;:::-;;;;;;;;7775:370;;:::o;1713:187:6:-;1799:7;1831:1;1826;:6;;1834:12;1818:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1857:9;1873:1;1869;:5;;;;:::i;:::-;1857:17;;1892:1;1885:8;;;1713:187;;;;;:::o;3678:172:2:-;3764:4;3780:42;3790:12;:10;:12::i;:::-;3804:9;3815:6;3780:9;:42::i;:::-;3839:4;3832:11;;3678:172;;;;:::o;6975:530::-;7098:1;7080:20;;:6;:20;;;;7072:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7181:1;7160:23;;:9;:23;;;;7152:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7234:47;7255:6;7263:9;7274:6;7234:20;:47::i;:::-;7312:71;7334:6;7312:71;;;;;;;;;;;;;;;;;:9;:17;7322:6;7312:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;7292:9;:17;7302:6;7292:17;;;;;;;;;;;;;;;:91;;;;7416:32;7441:6;7416:9;:20;7426:9;7416:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7393:9;:20;7403:9;7393:20;;;;;;;;;;;;;;;:55;;;;7480:9;7463:35;;7472:6;7463:35;;;7491:6;7463:35;;;;;;:::i;:::-;;;;;;;;6975:530;;;:::o;10637:92::-;;;;:::o;7:139:7:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:137::-;206:5;237:6;231:13;222:22;;253:30;277:5;253:30;:::i;:::-;152:137;;;;:::o;295:139::-;341:5;379:6;366:20;357:29;;395:33;422:5;395:33;:::i;:::-;295:139;;;;:::o;440:143::-;497:5;528:6;522:13;513:22;;544:33;571:5;544:33;:::i;:::-;440:143;;;;:::o;589:329::-;648:6;697:2;685:9;676:7;672:23;668:32;665:119;;;703:79;;:::i;:::-;665:119;823:1;848:53;893:7;884:6;873:9;869:22;848:53;:::i;:::-;838:63;;794:117;589:329;;;;:::o;924:474::-;992:6;1000;1049:2;1037:9;1028:7;1024:23;1020:32;1017:119;;;1055:79;;:::i;:::-;1017:119;1175:1;1200:53;1245:7;1236:6;1225:9;1221:22;1200:53;:::i;:::-;1190:63;;1146:117;1302:2;1328:53;1373:7;1364:6;1353:9;1349:22;1328:53;:::i;:::-;1318:63;;1273:118;924:474;;;;;:::o;1404:619::-;1481:6;1489;1497;1546:2;1534:9;1525:7;1521:23;1517:32;1514:119;;;1552:79;;:::i;:::-;1514:119;1672:1;1697:53;1742:7;1733:6;1722:9;1718:22;1697:53;:::i;:::-;1687:63;;1643:117;1799:2;1825:53;1870:7;1861:6;1850:9;1846:22;1825:53;:::i;:::-;1815:63;;1770:118;1927:2;1953:53;1998:7;1989:6;1978:9;1974:22;1953:53;:::i;:::-;1943:63;;1898:118;1404:619;;;;;:::o;2029:474::-;2097:6;2105;2154:2;2142:9;2133:7;2129:23;2125:32;2122:119;;;2160:79;;:::i;:::-;2122:119;2280:1;2305:53;2350:7;2341:6;2330:9;2326:22;2305:53;:::i;:::-;2295:63;;2251:117;2407:2;2433:53;2478:7;2469:6;2458:9;2454:22;2433:53;:::i;:::-;2423:63;;2378:118;2029:474;;;;;:::o;2509:345::-;2576:6;2625:2;2613:9;2604:7;2600:23;2596:32;2593:119;;;2631:79;;:::i;:::-;2593:119;2751:1;2776:61;2829:7;2820:6;2809:9;2805:22;2776:61;:::i;:::-;2766:71;;2722:125;2509:345;;;;:::o;2860:329::-;2919:6;2968:2;2956:9;2947:7;2943:23;2939:32;2936:119;;;2974:79;;:::i;:::-;2936:119;3094:1;3119:53;3164:7;3155:6;3144:9;3140:22;3119:53;:::i;:::-;3109:63;;3065:117;2860:329;;;;:::o;3195:351::-;3265:6;3314:2;3302:9;3293:7;3289:23;3285:32;3282:119;;;3320:79;;:::i;:::-;3282:119;3440:1;3465:64;3521:7;3512:6;3501:9;3497:22;3465:64;:::i;:::-;3455:74;;3411:128;3195:351;;;;:::o;3552:619::-;3629:6;3637;3645;3694:2;3682:9;3673:7;3669:23;3665:32;3662:119;;;3700:79;;:::i;:::-;3662:119;3820:1;3845:53;3890:7;3881:6;3870:9;3866:22;3845:53;:::i;:::-;3835:63;;3791:117;3947:2;3973:53;4018:7;4009:6;3998:9;3994:22;3973:53;:::i;:::-;3963:63;;3918:118;4075:2;4101:53;4146:7;4137:6;4126:9;4122:22;4101:53;:::i;:::-;4091:63;;4046:118;3552:619;;;;;:::o;4177:118::-;4264:24;4282:5;4264:24;:::i;:::-;4259:3;4252:37;4177:118;;:::o;4301:109::-;4382:21;4397:5;4382:21;:::i;:::-;4377:3;4370:34;4301:109;;:::o;4416:364::-;4504:3;4532:39;4565:5;4532:39;:::i;:::-;4587:71;4651:6;4646:3;4587:71;:::i;:::-;4580:78;;4667:52;4712:6;4707:3;4700:4;4693:5;4689:16;4667:52;:::i;:::-;4744:29;4766:6;4744:29;:::i;:::-;4739:3;4735:39;4728:46;;4508:272;4416:364;;;;:::o;4786:366::-;4928:3;4949:67;5013:2;5008:3;4949:67;:::i;:::-;4942:74;;5025:93;5114:3;5025:93;:::i;:::-;5143:2;5138:3;5134:12;5127:19;;4786:366;;;:::o;5158:::-;5300:3;5321:67;5385:2;5380:3;5321:67;:::i;:::-;5314:74;;5397:93;5486:3;5397:93;:::i;:::-;5515:2;5510:3;5506:12;5499:19;;5158:366;;;:::o;5530:::-;5672:3;5693:67;5757:2;5752:3;5693:67;:::i;:::-;5686:74;;5769:93;5858:3;5769:93;:::i;:::-;5887:2;5882:3;5878:12;5871:19;;5530:366;;;:::o;5902:::-;6044:3;6065:67;6129:2;6124:3;6065:67;:::i;:::-;6058:74;;6141:93;6230:3;6141:93;:::i;:::-;6259:2;6254:3;6250:12;6243:19;;5902:366;;;:::o;6274:::-;6416:3;6437:67;6501:2;6496:3;6437:67;:::i;:::-;6430:74;;6513:93;6602:3;6513:93;:::i;:::-;6631:2;6626:3;6622:12;6615:19;;6274:366;;;:::o;6646:::-;6788:3;6809:67;6873:2;6868:3;6809:67;:::i;:::-;6802:74;;6885:93;6974:3;6885:93;:::i;:::-;7003:2;6998:3;6994:12;6987:19;;6646:366;;;:::o;7018:::-;7160:3;7181:67;7245:2;7240:3;7181:67;:::i;:::-;7174:74;;7257:93;7346:3;7257:93;:::i;:::-;7375:2;7370:3;7366:12;7359:19;;7018:366;;;:::o;7390:::-;7532:3;7553:67;7617:2;7612:3;7553:67;:::i;:::-;7546:74;;7629:93;7718:3;7629:93;:::i;:::-;7747:2;7742:3;7738:12;7731:19;;7390:366;;;:::o;7762:::-;7904:3;7925:67;7989:2;7984:3;7925:67;:::i;:::-;7918:74;;8001:93;8090:3;8001:93;:::i;:::-;8119:2;8114:3;8110:12;8103:19;;7762:366;;;:::o;8134:::-;8276:3;8297:67;8361:2;8356:3;8297:67;:::i;:::-;8290:74;;8373:93;8462:3;8373:93;:::i;:::-;8491:2;8486:3;8482:12;8475:19;;8134:366;;;:::o;8506:::-;8648:3;8669:67;8733:2;8728:3;8669:67;:::i;:::-;8662:74;;8745:93;8834:3;8745:93;:::i;:::-;8863:2;8858:3;8854:12;8847:19;;8506:366;;;:::o;8878:::-;9020:3;9041:67;9105:2;9100:3;9041:67;:::i;:::-;9034:74;;9117:93;9206:3;9117:93;:::i;:::-;9235:2;9230:3;9226:12;9219:19;;8878:366;;;:::o;9250:::-;9392:3;9413:67;9477:2;9472:3;9413:67;:::i;:::-;9406:74;;9489:93;9578:3;9489:93;:::i;:::-;9607:2;9602:3;9598:12;9591:19;;9250:366;;;:::o;9622:::-;9764:3;9785:67;9849:2;9844:3;9785:67;:::i;:::-;9778:74;;9861:93;9950:3;9861:93;:::i;:::-;9979:2;9974:3;9970:12;9963:19;;9622:366;;;:::o;9994:::-;10136:3;10157:67;10221:2;10216:3;10157:67;:::i;:::-;10150:74;;10233:93;10322:3;10233:93;:::i;:::-;10351:2;10346:3;10342:12;10335:19;;9994:366;;;:::o;10366:::-;10508:3;10529:67;10593:2;10588:3;10529:67;:::i;:::-;10522:74;;10605:93;10694:3;10605:93;:::i;:::-;10723:2;10718:3;10714:12;10707:19;;10366:366;;;:::o;10738:::-;10880:3;10901:67;10965:2;10960:3;10901:67;:::i;:::-;10894:74;;10977:93;11066:3;10977:93;:::i;:::-;11095:2;11090:3;11086:12;11079:19;;10738:366;;;:::o;11110:::-;11252:3;11273:67;11337:2;11332:3;11273:67;:::i;:::-;11266:74;;11349:93;11438:3;11349:93;:::i;:::-;11467:2;11462:3;11458:12;11451:19;;11110:366;;;:::o;11530:506::-;11675:4;11670:3;11666:14;11761:4;11754:5;11750:16;11744:23;11780:63;11837:4;11832:3;11828:14;11814:12;11780:63;:::i;:::-;11690:163;11937:4;11930:5;11926:16;11920:23;11956:63;12013:4;12008:3;12004:14;11990:12;11956:63;:::i;:::-;11863:166;11644:392;11530:506;;:::o;12042:108::-;12119:24;12137:5;12119:24;:::i;:::-;12114:3;12107:37;12042:108;;:::o;12156:118::-;12243:24;12261:5;12243:24;:::i;:::-;12238:3;12231:37;12156:118;;:::o;12280:112::-;12363:22;12379:5;12363:22;:::i;:::-;12358:3;12351:35;12280:112;;:::o;12398:222::-;12491:4;12529:2;12518:9;12514:18;12506:26;;12542:71;12610:1;12599:9;12595:17;12586:6;12542:71;:::i;:::-;12398:222;;;;:::o;12626:332::-;12747:4;12785:2;12774:9;12770:18;12762:26;;12798:71;12866:1;12855:9;12851:17;12842:6;12798:71;:::i;:::-;12879:72;12947:2;12936:9;12932:18;12923:6;12879:72;:::i;:::-;12626:332;;;;;:::o;12964:210::-;13051:4;13089:2;13078:9;13074:18;13066:26;;13102:65;13164:1;13153:9;13149:17;13140:6;13102:65;:::i;:::-;12964:210;;;;:::o;13180:623::-;13419:4;13457:3;13446:9;13442:19;13434:27;;13471:65;13533:1;13522:9;13518:17;13509:6;13471:65;:::i;:::-;13546:120;13662:2;13651:9;13647:18;13638:6;13546:120;:::i;:::-;13676;13792:2;13781:9;13777:18;13768:6;13676:120;:::i;:::-;13180:623;;;;;;:::o;13809:313::-;13922:4;13960:2;13949:9;13945:18;13937:26;;14009:9;14003:4;13999:20;13995:1;13984:9;13980:17;13973:47;14037:78;14110:4;14101:6;14037:78;:::i;:::-;14029:86;;13809:313;;;;:::o;14128:419::-;14294:4;14332:2;14321:9;14317:18;14309:26;;14381:9;14375:4;14371:20;14367:1;14356:9;14352:17;14345:47;14409:131;14535:4;14409:131;:::i;:::-;14401:139;;14128:419;;;:::o;14553:::-;14719:4;14757:2;14746:9;14742:18;14734:26;;14806:9;14800:4;14796:20;14792:1;14781:9;14777:17;14770:47;14834:131;14960:4;14834:131;:::i;:::-;14826:139;;14553:419;;;:::o;14978:::-;15144:4;15182:2;15171:9;15167:18;15159:26;;15231:9;15225:4;15221:20;15217:1;15206:9;15202:17;15195:47;15259:131;15385:4;15259:131;:::i;:::-;15251:139;;14978:419;;;:::o;15403:::-;15569:4;15607:2;15596:9;15592:18;15584:26;;15656:9;15650:4;15646:20;15642:1;15631:9;15627:17;15620:47;15684:131;15810:4;15684:131;:::i;:::-;15676:139;;15403:419;;;:::o;15828:::-;15994:4;16032:2;16021:9;16017:18;16009:26;;16081:9;16075:4;16071:20;16067:1;16056:9;16052:17;16045:47;16109:131;16235:4;16109:131;:::i;:::-;16101:139;;15828:419;;;:::o;16253:::-;16419:4;16457:2;16446:9;16442:18;16434:26;;16506:9;16500:4;16496:20;16492:1;16481:9;16477:17;16470:47;16534:131;16660:4;16534:131;:::i;:::-;16526:139;;16253:419;;;:::o;16678:::-;16844:4;16882:2;16871:9;16867:18;16859:26;;16931:9;16925:4;16921:20;16917:1;16906:9;16902:17;16895:47;16959:131;17085:4;16959:131;:::i;:::-;16951:139;;16678:419;;;:::o;17103:::-;17269:4;17307:2;17296:9;17292:18;17284:26;;17356:9;17350:4;17346:20;17342:1;17331:9;17327:17;17320:47;17384:131;17510:4;17384:131;:::i;:::-;17376:139;;17103:419;;;:::o;17528:::-;17694:4;17732:2;17721:9;17717:18;17709:26;;17781:9;17775:4;17771:20;17767:1;17756:9;17752:17;17745:47;17809:131;17935:4;17809:131;:::i;:::-;17801:139;;17528:419;;;:::o;17953:::-;18119:4;18157:2;18146:9;18142:18;18134:26;;18206:9;18200:4;18196:20;18192:1;18181:9;18177:17;18170:47;18234:131;18360:4;18234:131;:::i;:::-;18226:139;;17953:419;;;:::o;18378:::-;18544:4;18582:2;18571:9;18567:18;18559:26;;18631:9;18625:4;18621:20;18617:1;18606:9;18602:17;18595:47;18659:131;18785:4;18659:131;:::i;:::-;18651:139;;18378:419;;;:::o;18803:::-;18969:4;19007:2;18996:9;18992:18;18984:26;;19056:9;19050:4;19046:20;19042:1;19031:9;19027:17;19020:47;19084:131;19210:4;19084:131;:::i;:::-;19076:139;;18803:419;;;:::o;19228:::-;19394:4;19432:2;19421:9;19417:18;19409:26;;19481:9;19475:4;19471:20;19467:1;19456:9;19452:17;19445:47;19509:131;19635:4;19509:131;:::i;:::-;19501:139;;19228:419;;;:::o;19653:::-;19819:4;19857:2;19846:9;19842:18;19834:26;;19906:9;19900:4;19896:20;19892:1;19881:9;19877:17;19870:47;19934:131;20060:4;19934:131;:::i;:::-;19926:139;;19653:419;;;:::o;20078:::-;20244:4;20282:2;20271:9;20267:18;20259:26;;20331:9;20325:4;20321:20;20317:1;20306:9;20302:17;20295:47;20359:131;20485:4;20359:131;:::i;:::-;20351:139;;20078:419;;;:::o;20503:::-;20669:4;20707:2;20696:9;20692:18;20684:26;;20756:9;20750:4;20746:20;20742:1;20731:9;20727:17;20720:47;20784:131;20910:4;20784:131;:::i;:::-;20776:139;;20503:419;;;:::o;20928:::-;21094:4;21132:2;21121:9;21117:18;21109:26;;21181:9;21175:4;21171:20;21167:1;21156:9;21152:17;21145:47;21209:131;21335:4;21209:131;:::i;:::-;21201:139;;20928:419;;;:::o;21353:::-;21519:4;21557:2;21546:9;21542:18;21534:26;;21606:9;21600:4;21596:20;21592:1;21581:9;21577:17;21570:47;21634:131;21760:4;21634:131;:::i;:::-;21626:139;;21353:419;;;:::o;21778:222::-;21871:4;21909:2;21898:9;21894:18;21886:26;;21922:71;21990:1;21979:9;21975:17;21966:6;21922:71;:::i;:::-;21778:222;;;;:::o;22006:214::-;22095:4;22133:2;22122:9;22118:18;22110:26;;22146:67;22210:1;22199:9;22195:17;22186:6;22146:67;:::i;:::-;22006:214;;;;:::o;22307:99::-;22359:6;22393:5;22387:12;22377:22;;22307:99;;;:::o;22412:169::-;22496:11;22530:6;22525:3;22518:19;22570:4;22565:3;22561:14;22546:29;;22412:169;;;;:::o;22587:305::-;22627:3;22646:20;22664:1;22646:20;:::i;:::-;22641:25;;22680:20;22698:1;22680:20;:::i;:::-;22675:25;;22834:1;22766:66;22762:74;22759:1;22756:81;22753:107;;;22840:18;;:::i;:::-;22753:107;22884:1;22881;22877:9;22870:16;;22587:305;;;;:::o;22898:191::-;22938:4;22958:20;22976:1;22958:20;:::i;:::-;22953:25;;22992:20;23010:1;22992:20;:::i;:::-;22987:25;;23031:1;23028;23025:8;23022:34;;;23036:18;;:::i;:::-;23022:34;23081:1;23078;23074:9;23066:17;;22898:191;;;;:::o;23095:96::-;23132:7;23161:24;23179:5;23161:24;:::i;:::-;23150:35;;23095:96;;;:::o;23197:90::-;23231:7;23274:5;23267:13;23260:21;23249:32;;23197:90;;;:::o;23293:126::-;23330:7;23370:42;23363:5;23359:54;23348:65;;23293:126;;;:::o;23425:77::-;23462:7;23491:5;23480:16;;23425:77;;;:::o;23508:86::-;23543:7;23583:4;23576:5;23572:16;23561:27;;23508:86;;;:::o;23600:307::-;23668:1;23678:113;23692:6;23689:1;23686:13;23678:113;;;23777:1;23772:3;23768:11;23762:18;23758:1;23753:3;23749:11;23742:39;23714:2;23711:1;23707:10;23702:15;;23678:113;;;23809:6;23806:1;23803:13;23800:101;;;23889:1;23880:6;23875:3;23871:16;23864:27;23800:101;23649:258;23600:307;;;:::o;23913:320::-;23957:6;23994:1;23988:4;23984:12;23974:22;;24041:1;24035:4;24031:12;24062:18;24052:81;;24118:4;24110:6;24106:17;24096:27;;24052:81;24180:2;24172:6;24169:14;24149:18;24146:38;24143:84;;;24199:18;;:::i;:::-;24143:84;23964:269;23913:320;;;:::o;24239:180::-;24287:77;24284:1;24277:88;24384:4;24381:1;24374:15;24408:4;24405:1;24398:15;24425:180;24473:77;24470:1;24463:88;24570:4;24567:1;24560:15;24594:4;24591:1;24584:15;24734:117;24843:1;24840;24833:12;24857:102;24898:6;24949:2;24945:7;24940:2;24933:5;24929:14;24925:28;24915:38;;24857:102;;;:::o;24965:222::-;25105:34;25101:1;25093:6;25089:14;25082:58;25174:5;25169:2;25161:6;25157:15;25150:30;24965:222;:::o;25193:227::-;25333:34;25329:1;25321:6;25317:14;25310:58;25402:10;25397:2;25389:6;25385:15;25378:35;25193:227;:::o;25426:225::-;25566:34;25562:1;25554:6;25550:14;25543:58;25635:8;25630:2;25622:6;25618:15;25611:33;25426:225;:::o;25657:221::-;25797:34;25793:1;25785:6;25781:14;25774:58;25866:4;25861:2;25853:6;25849:15;25842:29;25657:221;:::o;25884:176::-;26024:28;26020:1;26012:6;26008:14;26001:52;25884:176;:::o;26066:177::-;26206:29;26202:1;26194:6;26190:14;26183:53;26066:177;:::o;26249:164::-;26389:16;26385:1;26377:6;26373:14;26366:40;26249:164;:::o;26419:168::-;26559:20;26555:1;26547:6;26543:14;26536:44;26419:168;:::o;26593:182::-;26733:34;26729:1;26721:6;26717:14;26710:58;26593:182;:::o;26781:172::-;26921:24;26917:1;26909:6;26905:14;26898:48;26781:172;:::o;26959:220::-;27099:34;27095:1;27087:6;27083:14;27076:58;27168:3;27163:2;27155:6;27151:15;27144:28;26959:220;:::o;27185:172::-;27325:24;27321:1;27313:6;27309:14;27302:48;27185:172;:::o;27363:224::-;27503:34;27499:1;27491:6;27487:14;27480:58;27572:7;27567:2;27559:6;27555:15;27548:32;27363:224;:::o;27593:169::-;27733:21;27729:1;27721:6;27717:14;27710:45;27593:169;:::o;27768:223::-;27908:34;27904:1;27896:6;27892:14;27885:58;27977:6;27972:2;27964:6;27960:15;27953:31;27768:223;:::o;27997:162::-;28137:14;28133:1;28125:6;28121:14;28114:38;27997:162;:::o;28165:165::-;28305:17;28301:1;28293:6;28289:14;28282:41;28165:165;:::o;28336:181::-;28476:33;28472:1;28464:6;28460:14;28453:57;28336:181;:::o;28523:122::-;28596:24;28614:5;28596:24;:::i;:::-;28589:5;28586:35;28576:63;;28635:1;28632;28625:12;28576:63;28523:122;:::o;28651:116::-;28721:21;28736:5;28721:21;:::i;:::-;28714:5;28711:32;28701:60;;28757:1;28754;28747:12;28701:60;28651:116;:::o;28773:122::-;28846:24;28864:5;28846:24;:::i;:::-;28839:5;28836:35;28826:63;;28885:1;28882;28875:12;28826:63;28773:122;:::o

Swarm Source

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