ETH Price: $3,216.56 (-1.18%)
Gas: 1 Gwei

Token

Vast Network (VAST)
 

Overview

Max Total Supply

161 VAST

Holders

68

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 VAST
0x1F731CD3a4561e176D78021219FD6EAf9dd8B4Bd
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
VastNetwork

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-19
*/

// SPDX-License-Identifier: GPL-3.0-or-later
// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)

pragma solidity ^0.8.0;

/**
 * @title ERC721 token receiver interface
 * @dev Interface for any contract that wants to support safeTransfers
 * from ERC721 asset contracts.
 */
interface IERC721Receiver {
    /**
     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
     * by `operator` from `from`, this function is called.
     *
     * It must return its Solidity selector to confirm the token transfer.
     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
     *
     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.
     */
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

// File: contracts/ERC721B.sol



pragma solidity ^0.8.4;


error ApprovalCallerNotOwnerNorApproved();
error ApprovalQueryForNonexistentToken();
error ApproveToCaller();
error ApprovalToCurrentOwner();
error BalanceQueryForZeroAddress();
error MintedQueryForZeroAddress();
error MintToZeroAddress();
error MintZeroQuantity();
error OwnerIndexOutOfBounds();
error OwnerQueryForNonexistentToken();
error TokenIndexOutOfBounds();
error TransferCallerNotOwnerNorApproved();
error TransferFromIncorrectOwner();
error TransferToNonERC721ReceiverImplementer();
error TransferToZeroAddress();
error UnableDetermineTokenOwner();
error UnableGetTokenOwnerByIndex();
error URIQueryForNonexistentToken();

/**
 * Updated, minimalist and gas efficient version of OpenZeppelins ERC721 contract.
 * Includes the Metadata and  Enumerable extension.
 *
 * Assumes serials are sequentially minted starting at 0 (e.g. 0, 1, 2, 3..).
 * Does not support burning tokens
 *
 * @author beskay0x
 * Credits: chiru-labs, solmate, transmissions11, nftchance, squeebo_nft and others
 */

abstract contract ERC721B {
    /*///////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 indexed id);

    event Approval(address indexed owner, address indexed spender, uint256 indexed id);

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /*///////////////////////////////////////////////////////////////
                          METADATA STORAGE/LOGIC
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    function tokenURI(uint256 tokenId) public view virtual returns (string memory);

    /*///////////////////////////////////////////////////////////////
                          ERC721 STORAGE
    //////////////////////////////////////////////////////////////*/

    // Array which maps token ID to address (index is tokenID)
    address[] internal _owners;

    // Mapping from token ID to approved address
    mapping(uint256 => address) private _tokenApprovals;

    // Mapping from owner to operator approvals
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    /*///////////////////////////////////////////////////////////////
                              CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
    }

    /*///////////////////////////////////////////////////////////////
                              ERC165 LOGIC
    //////////////////////////////////////////////////////////////*/

    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
            interfaceId == 0x780e9d63 || // ERC165 Interface ID for ERC721Enumerable
            interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
    }

    /*///////////////////////////////////////////////////////////////
                       ERC721ENUMERABLE LOGIC
    //////////////////////////////////////////////////////////////*/

    /**
     * @dev See {IERC721Enumerable-totalSupply}.
     */
    function totalSupply() public view returns (uint256) {
        return _owners.length;
    }

    /**
     * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.
     * Dont call this function on chain from another smart contract, since it can become quite expensive
     */
    function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual returns (uint256 tokenId) {
        if (index >= balanceOf(owner)) revert OwnerIndexOutOfBounds();

        uint256 count;
        uint256 qty = _owners.length;
        // Cannot realistically overflow, since we are using uint256
        unchecked {
            for (tokenId; tokenId < qty; tokenId++) {
                if (owner == ownerOf(tokenId)) {
                    if (count == index) return tokenId;
                    else count++;
                }
            }
        }

        revert UnableGetTokenOwnerByIndex();
    }

    /**
     * @dev See {IERC721Enumerable-tokenByIndex}.
     */
    function tokenByIndex(uint256 index) public view virtual returns (uint256) {
        if (index >= totalSupply()) revert TokenIndexOutOfBounds();
        return index;
    }

    /*///////////////////////////////////////////////////////////////
                              ERC721 LOGIC
    //////////////////////////////////////////////////////////////*/

    /**
     * @dev Iterates through _owners array, returns balance of address
     * It is not recommended to call this function from another smart contract
     * as it can become quite expensive -- call this function off chain instead.
     */
    function balanceOf(address owner) public view virtual returns (uint256) {
        if (owner == address(0)) revert BalanceQueryForZeroAddress();

        uint256 count;
        uint256 qty = _owners.length;
        // Cannot realistically overflow, since we are using uint256
        unchecked {
            for (uint256 i; i < qty; i++) {
                if (owner == ownerOf(i)) {
                    count++;
                }
            }
        }
        return count;
    }

    /**
     * @dev See {IERC721-ownerOf}.
     * Gas spent here starts off proportional to the maximum mint batch size.
     * It gradually moves to O(1) as tokens get transferred around in the collection over time.
     */
    function ownerOf(uint256 tokenId) public view virtual returns (address) {
        if (!_exists(tokenId)) revert OwnerQueryForNonexistentToken();

        // Cannot realistically overflow, since we are using uint256
        unchecked {
            for (tokenId; ; tokenId++) {
                if (_owners[tokenId] != address(0)) {
                    return _owners[tokenId];
                }
            }
        }

        revert UnableDetermineTokenOwner();
    }

    /**
     * @dev See {IERC721-approve}.
     */
    function approve(address to, uint256 tokenId) public virtual {
        address owner = ownerOf(tokenId);
        if (to == owner) revert ApprovalToCurrentOwner();

        if (msg.sender != owner && !isApprovedForAll(owner, msg.sender)) revert ApprovalCallerNotOwnerNorApproved();

        _tokenApprovals[tokenId] = to;
        emit Approval(owner, to, tokenId);
    }

    /**
     * @dev See {IERC721-getApproved}.
     */
    function getApproved(uint256 tokenId) public view virtual returns (address) {
        if (!_exists(tokenId)) revert ApprovalQueryForNonexistentToken();

        return _tokenApprovals[tokenId];
    }

    /**
     * @dev See {IERC721-setApprovalForAll}.
     */
    function setApprovalForAll(address operator, bool approved) public virtual {
        if (operator == msg.sender) revert ApproveToCaller();

        _operatorApprovals[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, operator, approved);
    }

    /**
     * @dev See {IERC721-isApprovedForAll}.
     */
    function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {
        return _operatorApprovals[owner][operator];
    }

    /**
     * @dev See {IERC721-transferFrom}.
     */
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual {
        if (!_exists(tokenId)) revert OwnerQueryForNonexistentToken();
        if (ownerOf(tokenId) != from) revert TransferFromIncorrectOwner();
        if (to == address(0)) revert TransferToZeroAddress();

        bool isApprovedOrOwner = (msg.sender == from ||
            msg.sender == getApproved(tokenId) ||
            isApprovedForAll(from, msg.sender));
        if (!isApprovedOrOwner) revert TransferCallerNotOwnerNorApproved();

        // delete token approvals from previous owner
        delete _tokenApprovals[tokenId];
        _owners[tokenId] = to;

        // if token ID below transferred one isnt set, set it to previous owner
        // if tokenid is zero, skip this to prevent underflow
        if (tokenId > 0 && _owners[tokenId - 1] == address(0)) {
            _owners[tokenId - 1] = from;
        }

        emit Transfer(from, to, tokenId);
    }

    /**
     * @dev See {IERC721-safeTransferFrom}.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        safeTransferFrom(from, to, id, '');
    }

    /**
     * @dev See {IERC721-safeTransferFrom}.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        bytes memory data
    ) public virtual {
        transferFrom(from, to, id);
        if (!_checkOnERC721Received(from, to, id, data)) revert TransferToNonERC721ReceiverImplementer();
    }

    /**
     * @dev Returns whether `tokenId` exists.
     */
    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return tokenId < _owners.length;
    }

    /**
     * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.
     * The call is not executed if the target address is not a contract.
     *
     * @param from address representing the previous owner of the given token ID
     * @param to target address that will receive the tokens
     * @param tokenId uint256 ID of the token to be transferred
     * @param _data bytes optional data to send along with the call
     * @return bool whether the call correctly returned the expected magic value
     */
    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.code.length == 0) return true;

        try IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data) returns (bytes4 retval) {
            return retval == IERC721Receiver(to).onERC721Received.selector;
        } catch (bytes memory reason) {
            if (reason.length == 0) revert TransferToNonERC721ReceiverImplementer();

            assembly {
                revert(add(32, reason), mload(reason))
            }
        }
    }

    /*///////////////////////////////////////////////////////////////
                       INTERNAL MINT LOGIC
    //////////////////////////////////////////////////////////////*/

    /**
     * @dev check if contract confirms token transfer, if not - reverts
     * unlike the standard ERC721 implementation this is only called once per mint,
     * no matter how many tokens get minted, since it is useless to check this
     * requirement several times -- if the contract confirms one token,
     * it will confirm all additional ones too.
     * This saves us around 5k gas per additional mint
     */
    function _safeMint(address to, uint256 qty) internal virtual {
        _safeMint(to, qty, '');
    }

    function _safeMint(
        address to,
        uint256 qty,
        bytes memory data
    ) internal virtual {
        _mint(to, qty);

        if (!_checkOnERC721Received(address(0), to, _owners.length - 1, data))
            revert TransferToNonERC721ReceiverImplementer();
    }

    function _mint(address to, uint256 qty) internal virtual {
        if (to == address(0)) revert MintToZeroAddress();
        if (qty == 0) revert MintZeroQuantity();

        uint256 _currentIndex = _owners.length;

        // Cannot realistically overflow, since we are using uint256
        unchecked {
            for (uint256 i; i < qty - 1; i++) {
                _owners.push();
                emit Transfer(address(0), to, _currentIndex + i);
            }
        }

        // set last index to receiver
        _owners.push(to);
        emit Transfer(address(0), to, _currentIndex + (qty - 1));
    }
}
// File: @openzeppelin/contracts/utils/Strings.sol


// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
    uint8 private constant _ADDRESS_LENGTH = 20;

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }

    /**
     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.
     */
    function toHexString(address addr) internal pure returns (string memory) {
        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
    }
}

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


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

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

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


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: contracts/Vast.sol



pragma solidity ^0.8.4;




/**
    _______           __         ____              _       __     __   _____ ____  ____  ____     
   / ____(_)_______  / /_  ___  / / /_  _______   | |     / /__  / /_ |__  // __ \/ __ \/ __ \    
  / /_  / / ___/ _ \/ __ \/ _ \/ / / / / / ___/   | | /| / / _ \/ __ \ /_ </ / / / / / / / / /    
 / __/ / / /  /  __/ /_/ /  __/ / / /_/ (__  )    | |/ |/ /  __/ /_/ /__/ / /_/ / /_/ / /_/ /     
/_/   /_/_/   \___/_.___/\___/_/_/\__, /____/     |__/|__/\___/_.___/____/\____/\____/\____/      
                                 /____/                                                           


____   ____                __     _______          __                       __    
\   \ /   /____    _______/  |_   \      \   _____/  |___  _  _____________|  | __
 \   Y   /\__  \  /  ___/\   __\  /   |   \_/ __ \   __\ \/ \/ /  _ \_  __ \  |/ /
  \     /  / __ \_\___ \  |  |   /    |    \  ___/|  |  \     (  <_> )  | \/    < 
   \___/  (____  /____  > |__|   \____|__  /\___  >__|   \/\_/ \____/|__|  |__|_ \
               \/     \/                 \/     \/                              \/

After endless research, space has been folded and communications are open.
The Vast Network has been built and is ready to connect the galaxy.

*/

// Constructor and kickoff
contract VastNetwork is ERC721B, Ownable {
    using Strings for uint256;

    string private baseURI = "";
    bool private isLive = false;
    mapping(address => bool) private Wallets;
    address[] private allowListed;
    bool private _staked = false;
    uint256 private _stakedAt = 0;

    // Fungible constants
    uint256 private MAX_SUPPLY = 300;
    uint256 private MAX_PUBLIC_MINT = 1;
    uint256 private MAX_BATCH_MINT = 5;
    uint256 private MAX_PER_WALLET = 1;
    uint256 private PRICE_PER_TOKEN = 0.006 ether;
    uint256 private MAX_COOLDOWN = 432000;
    address private ESCAPE_POD = 0x1FebC9ba1EA4e399e15B0D21f39DE0A4ee2566Fe;

    // CONSTRURRRRRRRRRRRRRRR
    constructor(string memory name_, string memory symbol_)
        ERC721B(name_, symbol_)
    {}

    /**
     * @dev See {IERC721Metadata-tokenURI}.
     */
    function tokenURI(uint256 _tokenId)
        public
        view
        override
        returns (string memory)
    {
        if (!_exists(_tokenId)) revert OwnerQueryForNonexistentToken();
        return string(abi.encodePacked(baseURI, Strings.toString(_tokenId)));
    }

    /**
     * Set base URI of NFT
     */
    function setBaseURI(string calldata _baseURI) external onlyOwner {
        baseURI = _baseURI;
    }

    /**
     * Enable or Disable Mint status
     */
    function setMintStatus(bool _isLive) external onlyOwner {
        isLive = _isLive;
    }

    /**
     * Set Mint Price.
     */
    function setPrice(uint256 price) external onlyOwner {
        PRICE_PER_TOKEN = price;
    }

    /**
     * Change Supply and make someone mad or happy
     */
    function setSupply(uint256 amt) external onlyOwner {
        MAX_SUPPLY = amt;
    }

    /**
     * Change how many things can be minted at once
     */
    function setMaxPublic(uint256 amt) external onlyOwner {
        MAX_PUBLIC_MINT = amt;
    }

    /**
     * Change the batch mint size. For culture.
     */
    function setMaxBatch(uint256 amt) external onlyOwner {
        MAX_BATCH_MINT = amt;
    }

    /**
     * Change how many a wallet can have. Watching you.
     */
    function setMaxPerWallet(uint256 amt) external onlyOwner {
        MAX_PER_WALLET = amt;
    }

    /**
     * Sets a cooldown after staking to prevent weirdos from haxing
     */
    function setMaxCooldown(uint256 time) external onlyOwner {
        MAX_COOLDOWN = time;
    }

    /**
     * Add an Allow list address list
     */
    function setAllowList(address[] memory walletAddresses) external onlyOwner {
        allowListed = walletAddresses;
    }

    // Who really exists?
    function exists(uint256 tokenId) public view returns (bool) {
        return _exists(tokenId);
    }

    // The ultimate in protection
    function safeMint(address to, uint256 quantity) private {
        _safeMint(to, quantity);
    }

    // Stake your stuff
    // This is a soft stake, ownership is not transfered.
    function stake() external {
        require(
            (block.timestamp - _stakedAt) < MAX_COOLDOWN,
            "Staked too recently. Wait a little while."
        );
        _stakedAt = block.timestamp;
        _staked = true;
    }

    // Unstake your stuff
    function unStake() external {
        require(_staked, "Must be staked to unstake my friend.");
        _staked = false;
    }

    // The ultimate in protection
    function safeMint(
        address to,
        uint256 quantity,
        bytes memory _data
    ) private {
        _safeMint(to, quantity, _data);
    }

    // Make a single thing.
    function mint() external payable {
        require(isLive, "Mint not live at the moment.");
        require(
            balanceOf(msg.sender) < MAX_PER_WALLET,
            "One per wallet please and thanks."
        );
        require(
            totalSupply() < MAX_SUPPLY,
            "Max Supply hit. May I have some more please?"
        );
        require(
            msg.value >= PRICE_PER_TOKEN,
            "Amount not exactly at mint price. "
        );
        _mint(msg.sender, 1);
    }

    // Make a bunch of things
    function batchMint(uint256 quantity) external onlyOwner {
        _mint(msg.sender, quantity);
    }

    // The power of the sun, in mint form
    function uberMint(address to, uint256 quantity) external onlyOwner {
        _mint(to, quantity);
    }

    // Set a wallet by index
    function setWallet(address _wallet) private {
        Wallets[_wallet] = true;
    }

    /**
     * Getter done
     */

    // Get MAX_SUPPLY
    function getMaxSupply() external view returns (uint256) {
        return MAX_SUPPLY;
    }

    // Get MAX_PUBLIC_MINT
    function getMaxPublicMint() external view returns (uint256) {
        return MAX_PUBLIC_MINT;
    }

    // Get MAX_BATCH_MINT
    function getMaxBatchMint() external view returns (uint256) {
        return MAX_BATCH_MINT;
    }

    // Get MAX_PER_WALLET
    function getMaxPerWallet() external view returns (uint256) {
        return MAX_PER_WALLET;
    }

    // Get PRICE_PER_TOKEN
    function getPricePerToken() external view returns (uint256) {
        return PRICE_PER_TOKEN;
    }

    // Get MAX_COOLDOWN
    function getMaxCooldown() external view returns (uint256) {
        return MAX_COOLDOWN;
    }

    /**
     * Events
     */

    // Cherish the land
    event Cultivate(address indexed _from, uint256 _value);

    function cultivate(uint256 _value) external {
        emit Cultivate(msg.sender, _value);
    }

    // Move into the future
    event Modernize(address indexed _from, uint256 _value);

    function modernize(uint256 _value) external {
        emit Modernize(msg.sender, _value);
    }

    // End times
    event Cataclysm(address indexed _from, uint256 _value);

    function cataclysm(uint256 _value) external {
        emit Cataclysm(msg.sender, _value);
    }

    // Redeem yourself
    event Redemption(address indexed _from, uint256 _value);

    function redemption(uint256 _value) external {
        emit Redemption(msg.sender, _value);
    }

    // Escape Pod Stuff
    // Hit that eject button
    function eject() external onlyOwner {
        payable(ESCAPE_POD).transfer(address(this).balance);
    }

    // Get current owner address
    function getEscapePodAddress() external view onlyOwner returns (address) {
        return ESCAPE_POD;
    }

    // Set current owner address
    function setEscapePodAddress(address addy) external onlyOwner {
        ESCAPE_POD = addy;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApprovalToCurrentOwner","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerIndexOutOfBounds","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"TokenIndexOutOfBounds","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"UnableDetermineTokenOwner","type":"error"},{"inputs":[],"name":"UnableGetTokenOwnerByIndex","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Cataclysm","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Cultivate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Modernize","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":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Redemption","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"batchMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"cataclysm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"cultivate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eject","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEscapePodAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxBatchMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxPublicMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPricePerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"modernize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"redemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"walletAddresses","type":"address[]"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"setEscapePodAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"setMaxCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxPublic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isLive","type":"bool"}],"name":"setMintStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"uberMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unStake","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260405180602001604052806000815250600690805190602001906200002b92919062000242565b506000600760006101000a81548160ff0219169083151502179055506000600a60006101000a81548160ff0219169083151502179055506000600b5561012c600c556001600d556005600e556001600f55661550f7dca7000060105562069780601155731febc9ba1ea4e399e15b0d21f39de0a4ee2566fe601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000f057600080fd5b5060405162003bcd38038062003bcd833981810160405281019062000116919062000370565b818181600090805190602001906200013092919062000242565b5080600190805190602001906200014992919062000242565b5050506200016c620001606200017460201b60201c565b6200017c60201b60201c565b505062000579565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82805462000250906200048a565b90600052602060002090601f016020900481019282620002745760008555620002c0565b82601f106200028f57805160ff1916838001178555620002c0565b82800160010185558215620002c0579182015b82811115620002bf578251825591602001919060010190620002a2565b5b509050620002cf9190620002d3565b5090565b5b80821115620002ee576000816000905550600101620002d4565b5090565b60006200030962000303846200041e565b620003f5565b90508281526020810184848401111562000328576200032762000559565b5b6200033584828562000454565b509392505050565b600082601f83011262000355576200035462000554565b5b815162000367848260208601620002f2565b91505092915050565b600080604083850312156200038a576200038962000563565b5b600083015167ffffffffffffffff811115620003ab57620003aa6200055e565b5b620003b9858286016200033d565b925050602083015167ffffffffffffffff811115620003dd57620003dc6200055e565b5b620003eb858286016200033d565b9150509250929050565b60006200040162000414565b90506200040f8282620004c0565b919050565b6000604051905090565b600067ffffffffffffffff8211156200043c576200043b62000525565b5b620004478262000568565b9050602081019050919050565b60005b838110156200047457808201518184015260208101905062000457565b8381111562000484576000848401525b50505050565b60006002820490506001821680620004a357607f821691505b60208210811415620004ba57620004b9620004f6565b5b50919050565b620004cb8262000568565b810181811067ffffffffffffffff82111715620004ed57620004ec62000525565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61364480620005896000396000f3fe6080604052600436106102885760003560e01c8063708f08341161015a5780639ff151dc116100c1578063ca1e97381161007a578063ca1e97381461096b578063e268e4d314610996578063e985e9c5146109bf578063f2fde38b146109fc578063f9a95cb914610a25578063fbdb849414610a4e57610288565b80639ff151dc1461085f578063a22cb46514610888578063ac8a16a8146108b1578063b88d4fde146108da578063c87b56dd14610903578063c8e84b661461094057610288565b80638467be0d116101135780638467be0d146107615780638da5cb5b1461078a5780638f40eaa9146107b557806391b7f5ed146107e0578063922062841461080957806395d89b411461083457610288565b8063708f08341461068d57806370a08231146106b6578063715018a6146106f357806373cf575a1461070a57806382e94ac514610721578063831bf0af1461073857610288565b80633a4b66f1116101fe5780634f558e79116101b75780634f558e79146105595780634f6ccce71461059657806355f804b3146105d35780636352211e146105fc5780636447c35d146106395780636bbc42911461066257610288565b80633a4b66f1146104715780633b4c4b251461048857806342842e0e146104b15780634a157ce0146104da5780634a1dc092146105055780634c0f38c21461052e57610288565b806318160ddd1161025057806318160ddd146103655780631f85e3ca1461039057806323b872dd146103b95780632d5aa30b146103e25780632f745c591461040b578063300b23d81461044857610288565b806301ffc9a71461028d57806306fdde03146102ca578063081812fc146102f5578063095ea7b3146103325780631249c58b1461035b575b600080fd5b34801561029957600080fd5b506102b460048036038101906102af9190612a26565b610a77565b6040516102c19190612dec565b60405180910390f35b3480156102d657600080fd5b506102df610b39565b6040516102ec9190612e07565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190612acd565b610bc7565b6040516103299190612d85565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612970565b610c43565b005b610363610de2565b005b34801561037157600080fd5b5061037a610f1a565b6040516103879190612f29565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b291906129f9565b610f27565b005b3480156103c557600080fd5b506103e060048036038101906103db919061285a565b610f4c565b005b3480156103ee57600080fd5b5061040960048036038101906104049190612acd565b611301565b005b34801561041757600080fd5b50610432600480360381019061042d9190612970565b611352565b60405161043f9190612f29565b60405180910390f35b34801561045457600080fd5b5061046f600480360381019061046a9190612acd565b611442565b005b34801561047d57600080fd5b50610486611454565b005b34801561049457600080fd5b506104af60048036038101906104aa9190612acd565b6114c9565b005b3480156104bd57600080fd5b506104d860048036038101906104d3919061285a565b6114db565b005b3480156104e657600080fd5b506104ef6114fb565b6040516104fc9190612f29565b60405180910390f35b34801561051157600080fd5b5061052c60048036038101906105279190612acd565b611505565b005b34801561053a57600080fd5b50610543611556565b6040516105509190612f29565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190612acd565b611560565b60405161058d9190612dec565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190612acd565b611572565b6040516105ca9190612f29565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f59190612a80565b6115bc565b005b34801561060857600080fd5b50610623600480360381019061061e9190612acd565b6115da565b6040516106309190612d85565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b91906129b0565b6116e6565b005b34801561066e57600080fd5b50610677611708565b6040516106849190612f29565b60405180910390f35b34801561069957600080fd5b506106b460048036038101906106af91906127ed565b611712565b005b3480156106c257600080fd5b506106dd60048036038101906106d891906127ed565b61175e565b6040516106ea9190612f29565b60405180910390f35b3480156106ff57600080fd5b50610708611839565b005b34801561071657600080fd5b5061071f61184d565b005b34801561072d57600080fd5b506107366118b9565b005b34801561074457600080fd5b5061075f600480360381019061075a9190612970565b61192c565b005b34801561076d57600080fd5b5061078860048036038101906107839190612acd565b611942565b005b34801561079657600080fd5b5061079f611957565b6040516107ac9190612d85565b60405180910390f35b3480156107c157600080fd5b506107ca611981565b6040516107d79190612d85565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190612acd565b6119b3565b005b34801561081557600080fd5b5061081e6119c5565b60405161082b9190612f29565b60405180910390f35b34801561084057600080fd5b506108496119cf565b6040516108569190612e07565b60405180910390f35b34801561086b57600080fd5b5061088660048036038101906108819190612acd565b611a5d565b005b34801561089457600080fd5b506108af60048036038101906108aa9190612930565b611aae565b005b3480156108bd57600080fd5b506108d860048036038101906108d39190612acd565b611c11565b005b3480156108e657600080fd5b5061090160048036038101906108fc91906128ad565b611c62565b005b34801561090f57600080fd5b5061092a60048036038101906109259190612acd565b611cb5565b6040516109379190612e07565b60405180910390f35b34801561094c57600080fd5b50610955611d28565b6040516109629190612f29565b60405180910390f35b34801561097757600080fd5b50610980611d32565b60405161098d9190612f29565b60405180910390f35b3480156109a257600080fd5b506109bd60048036038101906109b89190612acd565b611d3c565b005b3480156109cb57600080fd5b506109e660048036038101906109e1919061281a565b611d4e565b6040516109f39190612dec565b60405180910390f35b348015610a0857600080fd5b50610a236004803603810190610a1e91906127ed565b611de2565b005b348015610a3157600080fd5b50610a4c6004803603810190610a479190612acd565b611e66565b005b348015610a5a57600080fd5b50610a756004803603810190610a709190612acd565b611e78565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ad257506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b02575063780e9d6360e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b325750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60008054610b469061318f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b729061318f565b8015610bbf5780601f10610b9457610100808354040283529160200191610bbf565b820191906000526020600020905b815481529060010190602001808311610ba257829003601f168201915b505050505081565b6000610bd282611e8a565b610c08576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c4e826115da565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb6576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610cf95750610cf78133611d4e565b155b15610d30576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600760009054906101000a900460ff16610e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2890612e69565b60405180910390fd5b600f54610e3d3361175e565b10610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490612f09565b60405180910390fd5b600c54610e88610f1a565b10610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90612e49565b60405180910390fd5b601054341015610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490612e89565b60405180910390fd5b610f18336001611e9b565b565b6000600280549050905090565b610f2f6120c4565b80600760006101000a81548160ff02191690831515021790555050565b610f5581611e8a565b610f8b576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16610fab826115da565b73ffffffffffffffffffffffffffffffffffffffff1614610ff8576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561105f576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110ce575061109f82610bc7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806110df57506110de8433611d4e565b5b905080611118576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558260028381548110611163576111626132f9565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000821180156112315750600073ffffffffffffffffffffffffffffffffffffffff1660026001846111dd91906130a5565b815481106111ee576111ed6132f9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156112a05783600260018461124691906130a5565b81548110611257576112566132f9565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b3373ffffffffffffffffffffffffffffffffffffffff167f5e74a0fcf85124ef0aa057a93e9633c5064cd90f376f3e729ece2779708b50ad826040516113479190612f29565b60405180910390a250565b600061135d8361175e565b8210611395576040517f0ddac30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060028054905090505b8083101561140a576113b2836115da565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156113fd57838214156113f457505061143c565b81806001019250505b82806001019350506113a1565b6040517f7339954700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b61144a6120c4565b80600e8190555050565b601154600b544261146591906130a5565b106114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612ec9565b60405180910390fd5b42600b819055506001600a60006101000a81548160ff021916908315150217905550565b6114d16120c4565b80600c8190555050565b6114f683838360405180602001604052806000815250611c62565b505050565b6000601154905090565b3373ffffffffffffffffffffffffffffffffffffffff167fe6c82503aaaa3db78b70f183901ae8668918f895b3982b2c851cf2ffe0c6c6398260405161154b9190612f29565b60405180910390a250565b6000600c54905090565b600061156b82611e8a565b9050919050565b600061157c610f1a565b82106115b4576040517fa723001c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b819050919050565b6115c46120c4565b8181600691906115d59291906124f3565b505050565b60006115e582611e8a565b61161b576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff1660028381548110611648576116476132f9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d457600282815481106116a2576116a16132f9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506116e1565b818060010192505061161c565b919050565b6116ee6120c4565b8060099080519060200190611704929190612579565b5050565b6000600f54905090565b61171a6120c4565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117c6576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600280549050905060005b8181101561182e576117e5816115da565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156118215782806001019350505b80806001019150506117d4565b508192505050919050565b6118416120c4565b61184b6000612142565b565b600a60009054906101000a900460ff1661189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189390612ee9565b60405180910390fd5b6000600a60006101000a81548160ff021916908315150217905550565b6118c16120c4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611929573d6000803e3d6000fd5b50565b6119346120c4565b61193e8282611e9b565b5050565b61194a6120c4565b6119543382611e9b565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061198b6120c4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6119bb6120c4565b8060108190555050565b6000600e54905090565b600180546119dc9061318f565b80601f0160208091040260200160405190810160405280929190818152602001828054611a089061318f565b8015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff167ff76eb7cb29cc9455d55725f3266d51c8a030bdc5feba6473af50fb9a68d33cc882604051611aa39190612f29565b60405180910390a250565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b14576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c059190612dec565b60405180910390a35050565b3373ffffffffffffffffffffffffffffffffffffffff167f0e1fb76a5728ca18431fd70fcdd67543c28af0007d5e8a3cf37ac7dd9dcaa3c182604051611c579190612f29565b60405180910390a250565b611c6d848484610f4c565b611c7984848484612208565b611caf576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6060611cc082611e8a565b611cf6576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006611d018361238a565b604051602001611d12929190612d61565b6040516020818303038152906040529050919050565b6000600d54905090565b6000601054905090565b611d446120c4565b80600f8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611dea6120c4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5190612e29565b60405180910390fd5b611e6381612142565b50565b611e6e6120c4565b8060118190555050565b611e806120c4565b80600d8190555050565b600060028054905082109050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f02576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000811415611f3d576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600280549050905060005b60018303811015611fe8576002600181600181540180825580915050039060005260206000200160009054906101000a9050508082018473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48080600101915050611f4a565b506002839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018261205991906130a5565b81612064919061301e565b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6120cc6124eb565b73ffffffffffffffffffffffffffffffffffffffff166120ea611957565b73ffffffffffffffffffffffffffffffffffffffff1614612140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213790612ea9565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808473ffffffffffffffffffffffffffffffffffffffff163b14156122325760019050612382565b8373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b81526004016122719493929190612da0565b602060405180830381600087803b15801561228b57600080fd5b505af19250505080156122bc57506040513d601f19601f820116820180604052508101906122b99190612a53565b60015b612336573d80600081146122ec576040519150601f19603f3d011682016040523d82523d6000602084013e6122f1565b606091505b5060008151141561232e576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b606060008214156123d2576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506124e6565b600082905060005b600082146124045780806123ed906131f2565b915050600a826123fd9190613074565b91506123da565b60008167ffffffffffffffff8111156124205761241f613328565b5b6040519080825280601f01601f1916602001820160405280156124525781602001600182028036833780820191505090505b5090505b600085146124df5760018261246b91906130a5565b9150600a8561247a919061323b565b6030612486919061301e565b60f81b81838151811061249c5761249b6132f9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856124d89190613074565b9450612456565b8093505050505b919050565b600033905090565b8280546124ff9061318f565b90600052602060002090601f0160209004810192826125215760008555612568565b82601f1061253a57803560ff1916838001178555612568565b82800160010185558215612568579182015b8281111561256757823582559160200191906001019061254c565b5b5090506125759190612603565b5090565b8280548282559060005260206000209081019282156125f2579160200282015b828111156125f15782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612599565b5b5090506125ff9190612603565b5090565b5b8082111561261c576000816000905550600101612604565b5090565b600061263361262e84612f69565b612f44565b9050808382526020820190508285602086028201111561265657612655613361565b5b60005b85811015612686578161266c88826126d2565b845260208401935060208301925050600181019050612659565b5050509392505050565b60006126a361269e84612f95565b612f44565b9050828152602081018484840111156126bf576126be613366565b5b6126ca84828561314d565b509392505050565b6000813590506126e1816135b2565b92915050565b600082601f8301126126fc576126fb61335c565b5b813561270c848260208601612620565b91505092915050565b600081359050612724816135c9565b92915050565b600081359050612739816135e0565b92915050565b60008151905061274e816135e0565b92915050565b600082601f8301126127695761276861335c565b5b8135612779848260208601612690565b91505092915050565b60008083601f8401126127985761279761335c565b5b8235905067ffffffffffffffff8111156127b5576127b4613357565b5b6020830191508360018202830111156127d1576127d0613361565b5b9250929050565b6000813590506127e7816135f7565b92915050565b60006020828403121561280357612802613370565b5b6000612811848285016126d2565b91505092915050565b6000806040838503121561283157612830613370565b5b600061283f858286016126d2565b9250506020612850858286016126d2565b9150509250929050565b60008060006060848603121561287357612872613370565b5b6000612881868287016126d2565b9350506020612892868287016126d2565b92505060406128a3868287016127d8565b9150509250925092565b600080600080608085870312156128c7576128c6613370565b5b60006128d5878288016126d2565b94505060206128e6878288016126d2565b93505060406128f7878288016127d8565b925050606085013567ffffffffffffffff8111156129185761291761336b565b5b61292487828801612754565b91505092959194509250565b6000806040838503121561294757612946613370565b5b6000612955858286016126d2565b925050602061296685828601612715565b9150509250929050565b6000806040838503121561298757612986613370565b5b6000612995858286016126d2565b92505060206129a6858286016127d8565b9150509250929050565b6000602082840312156129c6576129c5613370565b5b600082013567ffffffffffffffff8111156129e4576129e361336b565b5b6129f0848285016126e7565b91505092915050565b600060208284031215612a0f57612a0e613370565b5b6000612a1d84828501612715565b91505092915050565b600060208284031215612a3c57612a3b613370565b5b6000612a4a8482850161272a565b91505092915050565b600060208284031215612a6957612a68613370565b5b6000612a778482850161273f565b91505092915050565b60008060208385031215612a9757612a96613370565b5b600083013567ffffffffffffffff811115612ab557612ab461336b565b5b612ac185828601612782565b92509250509250929050565b600060208284031215612ae357612ae2613370565b5b6000612af1848285016127d8565b91505092915050565b612b03816130d9565b82525050565b612b12816130eb565b82525050565b6000612b2382612fdb565b612b2d8185612ff1565b9350612b3d81856020860161315c565b612b4681613375565b840191505092915050565b6000612b5c82612fe6565b612b668185613002565b9350612b7681856020860161315c565b612b7f81613375565b840191505092915050565b6000612b9582612fe6565b612b9f8185613013565b9350612baf81856020860161315c565b80840191505092915050565b60008154612bc88161318f565b612bd28186613013565b94506001821660008114612bed5760018114612bfe57612c31565b60ff19831686528186019350612c31565b612c0785612fc6565b60005b83811015612c2957815481890152600182019150602081019050612c0a565b838801955050505b50505092915050565b6000612c47602683613002565b9150612c5282613386565b604082019050919050565b6000612c6a602c83613002565b9150612c75826133d5565b604082019050919050565b6000612c8d601c83613002565b9150612c9882613424565b602082019050919050565b6000612cb0602283613002565b9150612cbb8261344d565b604082019050919050565b6000612cd3602083613002565b9150612cde8261349c565b602082019050919050565b6000612cf6602983613002565b9150612d01826134c5565b604082019050919050565b6000612d19602483613002565b9150612d2482613514565b604082019050919050565b6000612d3c602183613002565b9150612d4782613563565b604082019050919050565b612d5b81613143565b82525050565b6000612d6d8285612bbb565b9150612d798284612b8a565b91508190509392505050565b6000602082019050612d9a6000830184612afa565b92915050565b6000608082019050612db56000830187612afa565b612dc26020830186612afa565b612dcf6040830185612d52565b8181036060830152612de18184612b18565b905095945050505050565b6000602082019050612e016000830184612b09565b92915050565b60006020820190508181036000830152612e218184612b51565b905092915050565b60006020820190508181036000830152612e4281612c3a565b9050919050565b60006020820190508181036000830152612e6281612c5d565b9050919050565b60006020820190508181036000830152612e8281612c80565b9050919050565b60006020820190508181036000830152612ea281612ca3565b9050919050565b60006020820190508181036000830152612ec281612cc6565b9050919050565b60006020820190508181036000830152612ee281612ce9565b9050919050565b60006020820190508181036000830152612f0281612d0c565b9050919050565b60006020820190508181036000830152612f2281612d2f565b9050919050565b6000602082019050612f3e6000830184612d52565b92915050565b6000612f4e612f5f565b9050612f5a82826131c1565b919050565b6000604051905090565b600067ffffffffffffffff821115612f8457612f83613328565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612fb057612faf613328565b5b612fb982613375565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061302982613143565b915061303483613143565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130695761306861326c565b5b828201905092915050565b600061307f82613143565b915061308a83613143565b92508261309a5761309961329b565b5b828204905092915050565b60006130b082613143565b91506130bb83613143565b9250828210156130ce576130cd61326c565b5b828203905092915050565b60006130e482613123565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561317a57808201518184015260208101905061315f565b83811115613189576000848401525b50505050565b600060028204905060018216806131a757607f821691505b602082108114156131bb576131ba6132ca565b5b50919050565b6131ca82613375565b810181811067ffffffffffffffff821117156131e9576131e8613328565b5b80604052505050565b60006131fd82613143565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132305761322f61326c565b5b600182019050919050565b600061324682613143565b915061325183613143565b9250826132615761326061329b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4d617820537570706c79206869742e204d61792049206861766520736f6d652060008201527f6d6f726520706c656173653f0000000000000000000000000000000000000000602082015250565b7f4d696e74206e6f74206c69766520617420746865206d6f6d656e742e00000000600082015250565b7f416d6f756e74206e6f742065786163746c79206174206d696e7420707269636560008201527f2e20000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5374616b656420746f6f20726563656e746c792e20576169742061206c69747460008201527f6c65207768696c652e0000000000000000000000000000000000000000000000602082015250565b7f4d757374206265207374616b656420746f20756e7374616b65206d792066726960008201527f656e642e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e65207065722077616c6c657420706c6561736520616e64207468616e6b7360008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6135bb816130d9565b81146135c657600080fd5b50565b6135d2816130eb565b81146135dd57600080fd5b50565b6135e9816130f7565b81146135f457600080fd5b50565b61360081613143565b811461360b57600080fd5b5056fea26469706673582212206f9ddec17721e856b333da2e2e77c43c821240649acf93f1cf0983193e6b447d64736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c56617374204e6574776f726b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045641535400000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102885760003560e01c8063708f08341161015a5780639ff151dc116100c1578063ca1e97381161007a578063ca1e97381461096b578063e268e4d314610996578063e985e9c5146109bf578063f2fde38b146109fc578063f9a95cb914610a25578063fbdb849414610a4e57610288565b80639ff151dc1461085f578063a22cb46514610888578063ac8a16a8146108b1578063b88d4fde146108da578063c87b56dd14610903578063c8e84b661461094057610288565b80638467be0d116101135780638467be0d146107615780638da5cb5b1461078a5780638f40eaa9146107b557806391b7f5ed146107e0578063922062841461080957806395d89b411461083457610288565b8063708f08341461068d57806370a08231146106b6578063715018a6146106f357806373cf575a1461070a57806382e94ac514610721578063831bf0af1461073857610288565b80633a4b66f1116101fe5780634f558e79116101b75780634f558e79146105595780634f6ccce71461059657806355f804b3146105d35780636352211e146105fc5780636447c35d146106395780636bbc42911461066257610288565b80633a4b66f1146104715780633b4c4b251461048857806342842e0e146104b15780634a157ce0146104da5780634a1dc092146105055780634c0f38c21461052e57610288565b806318160ddd1161025057806318160ddd146103655780631f85e3ca1461039057806323b872dd146103b95780632d5aa30b146103e25780632f745c591461040b578063300b23d81461044857610288565b806301ffc9a71461028d57806306fdde03146102ca578063081812fc146102f5578063095ea7b3146103325780631249c58b1461035b575b600080fd5b34801561029957600080fd5b506102b460048036038101906102af9190612a26565b610a77565b6040516102c19190612dec565b60405180910390f35b3480156102d657600080fd5b506102df610b39565b6040516102ec9190612e07565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190612acd565b610bc7565b6040516103299190612d85565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612970565b610c43565b005b610363610de2565b005b34801561037157600080fd5b5061037a610f1a565b6040516103879190612f29565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b291906129f9565b610f27565b005b3480156103c557600080fd5b506103e060048036038101906103db919061285a565b610f4c565b005b3480156103ee57600080fd5b5061040960048036038101906104049190612acd565b611301565b005b34801561041757600080fd5b50610432600480360381019061042d9190612970565b611352565b60405161043f9190612f29565b60405180910390f35b34801561045457600080fd5b5061046f600480360381019061046a9190612acd565b611442565b005b34801561047d57600080fd5b50610486611454565b005b34801561049457600080fd5b506104af60048036038101906104aa9190612acd565b6114c9565b005b3480156104bd57600080fd5b506104d860048036038101906104d3919061285a565b6114db565b005b3480156104e657600080fd5b506104ef6114fb565b6040516104fc9190612f29565b60405180910390f35b34801561051157600080fd5b5061052c60048036038101906105279190612acd565b611505565b005b34801561053a57600080fd5b50610543611556565b6040516105509190612f29565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190612acd565b611560565b60405161058d9190612dec565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190612acd565b611572565b6040516105ca9190612f29565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f59190612a80565b6115bc565b005b34801561060857600080fd5b50610623600480360381019061061e9190612acd565b6115da565b6040516106309190612d85565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b91906129b0565b6116e6565b005b34801561066e57600080fd5b50610677611708565b6040516106849190612f29565b60405180910390f35b34801561069957600080fd5b506106b460048036038101906106af91906127ed565b611712565b005b3480156106c257600080fd5b506106dd60048036038101906106d891906127ed565b61175e565b6040516106ea9190612f29565b60405180910390f35b3480156106ff57600080fd5b50610708611839565b005b34801561071657600080fd5b5061071f61184d565b005b34801561072d57600080fd5b506107366118b9565b005b34801561074457600080fd5b5061075f600480360381019061075a9190612970565b61192c565b005b34801561076d57600080fd5b5061078860048036038101906107839190612acd565b611942565b005b34801561079657600080fd5b5061079f611957565b6040516107ac9190612d85565b60405180910390f35b3480156107c157600080fd5b506107ca611981565b6040516107d79190612d85565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190612acd565b6119b3565b005b34801561081557600080fd5b5061081e6119c5565b60405161082b9190612f29565b60405180910390f35b34801561084057600080fd5b506108496119cf565b6040516108569190612e07565b60405180910390f35b34801561086b57600080fd5b5061088660048036038101906108819190612acd565b611a5d565b005b34801561089457600080fd5b506108af60048036038101906108aa9190612930565b611aae565b005b3480156108bd57600080fd5b506108d860048036038101906108d39190612acd565b611c11565b005b3480156108e657600080fd5b5061090160048036038101906108fc91906128ad565b611c62565b005b34801561090f57600080fd5b5061092a60048036038101906109259190612acd565b611cb5565b6040516109379190612e07565b60405180910390f35b34801561094c57600080fd5b50610955611d28565b6040516109629190612f29565b60405180910390f35b34801561097757600080fd5b50610980611d32565b60405161098d9190612f29565b60405180910390f35b3480156109a257600080fd5b506109bd60048036038101906109b89190612acd565b611d3c565b005b3480156109cb57600080fd5b506109e660048036038101906109e1919061281a565b611d4e565b6040516109f39190612dec565b60405180910390f35b348015610a0857600080fd5b50610a236004803603810190610a1e91906127ed565b611de2565b005b348015610a3157600080fd5b50610a4c6004803603810190610a479190612acd565b611e66565b005b348015610a5a57600080fd5b50610a756004803603810190610a709190612acd565b611e78565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ad257506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b02575063780e9d6360e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b325750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60008054610b469061318f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b729061318f565b8015610bbf5780601f10610b9457610100808354040283529160200191610bbf565b820191906000526020600020905b815481529060010190602001808311610ba257829003601f168201915b505050505081565b6000610bd282611e8a565b610c08576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c4e826115da565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb6576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610cf95750610cf78133611d4e565b155b15610d30576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600760009054906101000a900460ff16610e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2890612e69565b60405180910390fd5b600f54610e3d3361175e565b10610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490612f09565b60405180910390fd5b600c54610e88610f1a565b10610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90612e49565b60405180910390fd5b601054341015610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490612e89565b60405180910390fd5b610f18336001611e9b565b565b6000600280549050905090565b610f2f6120c4565b80600760006101000a81548160ff02191690831515021790555050565b610f5581611e8a565b610f8b576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16610fab826115da565b73ffffffffffffffffffffffffffffffffffffffff1614610ff8576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561105f576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110ce575061109f82610bc7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806110df57506110de8433611d4e565b5b905080611118576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558260028381548110611163576111626132f9565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000821180156112315750600073ffffffffffffffffffffffffffffffffffffffff1660026001846111dd91906130a5565b815481106111ee576111ed6132f9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156112a05783600260018461124691906130a5565b81548110611257576112566132f9565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b3373ffffffffffffffffffffffffffffffffffffffff167f5e74a0fcf85124ef0aa057a93e9633c5064cd90f376f3e729ece2779708b50ad826040516113479190612f29565b60405180910390a250565b600061135d8361175e565b8210611395576040517f0ddac30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060028054905090505b8083101561140a576113b2836115da565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156113fd57838214156113f457505061143c565b81806001019250505b82806001019350506113a1565b6040517f7339954700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b61144a6120c4565b80600e8190555050565b601154600b544261146591906130a5565b106114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612ec9565b60405180910390fd5b42600b819055506001600a60006101000a81548160ff021916908315150217905550565b6114d16120c4565b80600c8190555050565b6114f683838360405180602001604052806000815250611c62565b505050565b6000601154905090565b3373ffffffffffffffffffffffffffffffffffffffff167fe6c82503aaaa3db78b70f183901ae8668918f895b3982b2c851cf2ffe0c6c6398260405161154b9190612f29565b60405180910390a250565b6000600c54905090565b600061156b82611e8a565b9050919050565b600061157c610f1a565b82106115b4576040517fa723001c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b819050919050565b6115c46120c4565b8181600691906115d59291906124f3565b505050565b60006115e582611e8a565b61161b576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff1660028381548110611648576116476132f9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d457600282815481106116a2576116a16132f9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506116e1565b818060010192505061161c565b919050565b6116ee6120c4565b8060099080519060200190611704929190612579565b5050565b6000600f54905090565b61171a6120c4565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117c6576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600280549050905060005b8181101561182e576117e5816115da565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156118215782806001019350505b80806001019150506117d4565b508192505050919050565b6118416120c4565b61184b6000612142565b565b600a60009054906101000a900460ff1661189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189390612ee9565b60405180910390fd5b6000600a60006101000a81548160ff021916908315150217905550565b6118c16120c4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611929573d6000803e3d6000fd5b50565b6119346120c4565b61193e8282611e9b565b5050565b61194a6120c4565b6119543382611e9b565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061198b6120c4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6119bb6120c4565b8060108190555050565b6000600e54905090565b600180546119dc9061318f565b80601f0160208091040260200160405190810160405280929190818152602001828054611a089061318f565b8015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff167ff76eb7cb29cc9455d55725f3266d51c8a030bdc5feba6473af50fb9a68d33cc882604051611aa39190612f29565b60405180910390a250565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b14576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c059190612dec565b60405180910390a35050565b3373ffffffffffffffffffffffffffffffffffffffff167f0e1fb76a5728ca18431fd70fcdd67543c28af0007d5e8a3cf37ac7dd9dcaa3c182604051611c579190612f29565b60405180910390a250565b611c6d848484610f4c565b611c7984848484612208565b611caf576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6060611cc082611e8a565b611cf6576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006611d018361238a565b604051602001611d12929190612d61565b6040516020818303038152906040529050919050565b6000600d54905090565b6000601054905090565b611d446120c4565b80600f8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611dea6120c4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5190612e29565b60405180910390fd5b611e6381612142565b50565b611e6e6120c4565b8060118190555050565b611e806120c4565b80600d8190555050565b600060028054905082109050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f02576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000811415611f3d576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600280549050905060005b60018303811015611fe8576002600181600181540180825580915050039060005260206000200160009054906101000a9050508082018473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48080600101915050611f4a565b506002839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018261205991906130a5565b81612064919061301e565b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6120cc6124eb565b73ffffffffffffffffffffffffffffffffffffffff166120ea611957565b73ffffffffffffffffffffffffffffffffffffffff1614612140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213790612ea9565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808473ffffffffffffffffffffffffffffffffffffffff163b14156122325760019050612382565b8373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b81526004016122719493929190612da0565b602060405180830381600087803b15801561228b57600080fd5b505af19250505080156122bc57506040513d601f19601f820116820180604052508101906122b99190612a53565b60015b612336573d80600081146122ec576040519150601f19603f3d011682016040523d82523d6000602084013e6122f1565b606091505b5060008151141561232e576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b606060008214156123d2576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506124e6565b600082905060005b600082146124045780806123ed906131f2565b915050600a826123fd9190613074565b91506123da565b60008167ffffffffffffffff8111156124205761241f613328565b5b6040519080825280601f01601f1916602001820160405280156124525781602001600182028036833780820191505090505b5090505b600085146124df5760018261246b91906130a5565b9150600a8561247a919061323b565b6030612486919061301e565b60f81b81838151811061249c5761249b6132f9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856124d89190613074565b9450612456565b8093505050505b919050565b600033905090565b8280546124ff9061318f565b90600052602060002090601f0160209004810192826125215760008555612568565b82601f1061253a57803560ff1916838001178555612568565b82800160010185558215612568579182015b8281111561256757823582559160200191906001019061254c565b5b5090506125759190612603565b5090565b8280548282559060005260206000209081019282156125f2579160200282015b828111156125f15782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612599565b5b5090506125ff9190612603565b5090565b5b8082111561261c576000816000905550600101612604565b5090565b600061263361262e84612f69565b612f44565b9050808382526020820190508285602086028201111561265657612655613361565b5b60005b85811015612686578161266c88826126d2565b845260208401935060208301925050600181019050612659565b5050509392505050565b60006126a361269e84612f95565b612f44565b9050828152602081018484840111156126bf576126be613366565b5b6126ca84828561314d565b509392505050565b6000813590506126e1816135b2565b92915050565b600082601f8301126126fc576126fb61335c565b5b813561270c848260208601612620565b91505092915050565b600081359050612724816135c9565b92915050565b600081359050612739816135e0565b92915050565b60008151905061274e816135e0565b92915050565b600082601f8301126127695761276861335c565b5b8135612779848260208601612690565b91505092915050565b60008083601f8401126127985761279761335c565b5b8235905067ffffffffffffffff8111156127b5576127b4613357565b5b6020830191508360018202830111156127d1576127d0613361565b5b9250929050565b6000813590506127e7816135f7565b92915050565b60006020828403121561280357612802613370565b5b6000612811848285016126d2565b91505092915050565b6000806040838503121561283157612830613370565b5b600061283f858286016126d2565b9250506020612850858286016126d2565b9150509250929050565b60008060006060848603121561287357612872613370565b5b6000612881868287016126d2565b9350506020612892868287016126d2565b92505060406128a3868287016127d8565b9150509250925092565b600080600080608085870312156128c7576128c6613370565b5b60006128d5878288016126d2565b94505060206128e6878288016126d2565b93505060406128f7878288016127d8565b925050606085013567ffffffffffffffff8111156129185761291761336b565b5b61292487828801612754565b91505092959194509250565b6000806040838503121561294757612946613370565b5b6000612955858286016126d2565b925050602061296685828601612715565b9150509250929050565b6000806040838503121561298757612986613370565b5b6000612995858286016126d2565b92505060206129a6858286016127d8565b9150509250929050565b6000602082840312156129c6576129c5613370565b5b600082013567ffffffffffffffff8111156129e4576129e361336b565b5b6129f0848285016126e7565b91505092915050565b600060208284031215612a0f57612a0e613370565b5b6000612a1d84828501612715565b91505092915050565b600060208284031215612a3c57612a3b613370565b5b6000612a4a8482850161272a565b91505092915050565b600060208284031215612a6957612a68613370565b5b6000612a778482850161273f565b91505092915050565b60008060208385031215612a9757612a96613370565b5b600083013567ffffffffffffffff811115612ab557612ab461336b565b5b612ac185828601612782565b92509250509250929050565b600060208284031215612ae357612ae2613370565b5b6000612af1848285016127d8565b91505092915050565b612b03816130d9565b82525050565b612b12816130eb565b82525050565b6000612b2382612fdb565b612b2d8185612ff1565b9350612b3d81856020860161315c565b612b4681613375565b840191505092915050565b6000612b5c82612fe6565b612b668185613002565b9350612b7681856020860161315c565b612b7f81613375565b840191505092915050565b6000612b9582612fe6565b612b9f8185613013565b9350612baf81856020860161315c565b80840191505092915050565b60008154612bc88161318f565b612bd28186613013565b94506001821660008114612bed5760018114612bfe57612c31565b60ff19831686528186019350612c31565b612c0785612fc6565b60005b83811015612c2957815481890152600182019150602081019050612c0a565b838801955050505b50505092915050565b6000612c47602683613002565b9150612c5282613386565b604082019050919050565b6000612c6a602c83613002565b9150612c75826133d5565b604082019050919050565b6000612c8d601c83613002565b9150612c9882613424565b602082019050919050565b6000612cb0602283613002565b9150612cbb8261344d565b604082019050919050565b6000612cd3602083613002565b9150612cde8261349c565b602082019050919050565b6000612cf6602983613002565b9150612d01826134c5565b604082019050919050565b6000612d19602483613002565b9150612d2482613514565b604082019050919050565b6000612d3c602183613002565b9150612d4782613563565b604082019050919050565b612d5b81613143565b82525050565b6000612d6d8285612bbb565b9150612d798284612b8a565b91508190509392505050565b6000602082019050612d9a6000830184612afa565b92915050565b6000608082019050612db56000830187612afa565b612dc26020830186612afa565b612dcf6040830185612d52565b8181036060830152612de18184612b18565b905095945050505050565b6000602082019050612e016000830184612b09565b92915050565b60006020820190508181036000830152612e218184612b51565b905092915050565b60006020820190508181036000830152612e4281612c3a565b9050919050565b60006020820190508181036000830152612e6281612c5d565b9050919050565b60006020820190508181036000830152612e8281612c80565b9050919050565b60006020820190508181036000830152612ea281612ca3565b9050919050565b60006020820190508181036000830152612ec281612cc6565b9050919050565b60006020820190508181036000830152612ee281612ce9565b9050919050565b60006020820190508181036000830152612f0281612d0c565b9050919050565b60006020820190508181036000830152612f2281612d2f565b9050919050565b6000602082019050612f3e6000830184612d52565b92915050565b6000612f4e612f5f565b9050612f5a82826131c1565b919050565b6000604051905090565b600067ffffffffffffffff821115612f8457612f83613328565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612fb057612faf613328565b5b612fb982613375565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061302982613143565b915061303483613143565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130695761306861326c565b5b828201905092915050565b600061307f82613143565b915061308a83613143565b92508261309a5761309961329b565b5b828204905092915050565b60006130b082613143565b91506130bb83613143565b9250828210156130ce576130cd61326c565b5b828203905092915050565b60006130e482613123565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561317a57808201518184015260208101905061315f565b83811115613189576000848401525b50505050565b600060028204905060018216806131a757607f821691505b602082108114156131bb576131ba6132ca565b5b50919050565b6131ca82613375565b810181811067ffffffffffffffff821117156131e9576131e8613328565b5b80604052505050565b60006131fd82613143565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132305761322f61326c565b5b600182019050919050565b600061324682613143565b915061325183613143565b9250826132615761326061329b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4d617820537570706c79206869742e204d61792049206861766520736f6d652060008201527f6d6f726520706c656173653f0000000000000000000000000000000000000000602082015250565b7f4d696e74206e6f74206c69766520617420746865206d6f6d656e742e00000000600082015250565b7f416d6f756e74206e6f742065786163746c79206174206d696e7420707269636560008201527f2e20000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5374616b656420746f6f20726563656e746c792e20576169742061206c69747460008201527f6c65207768696c652e0000000000000000000000000000000000000000000000602082015250565b7f4d757374206265207374616b656420746f20756e7374616b65206d792066726960008201527f656e642e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e65207065722077616c6c657420706c6561736520616e64207468616e6b7360008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6135bb816130d9565b81146135c657600080fd5b50565b6135d2816130eb565b81146135dd57600080fd5b50565b6135e9816130f7565b81146135f457600080fd5b50565b61360081613143565b811461360b57600080fd5b5056fea26469706673582212206f9ddec17721e856b333da2e2e77c43c821240649acf93f1cf0983193e6b447d64736f6c63430008070033

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

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c56617374204e6574776f726b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045641535400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Vast Network
Arg [1] : symbol_ (string): VAST

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [3] : 56617374204e6574776f726b0000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 5641535400000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

21036:6724:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4038:426;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2877:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8060:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7617:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24720:516;;;:::i;:::-;;4730:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22408:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8900:1011;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27005:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5013:631;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23055:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24074:243;;;;;;;;;;;;;:::i;:::-;;22721:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9982:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26395:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27198:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25728:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23739:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5721:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22242:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7075:480;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23581:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26126:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27659:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6343:494;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18855:103;;;;;;;;;;;;;:::i;:::-;;24352:129;;;;;;;;;;;;;:::i;:::-;;27360:106;;;;;;;;;;;;;:::i;:::-;;25428:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25275:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18207:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27508:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22549:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25992:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2904:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26819:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8335:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26622:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10219:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21906:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25856:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26261;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23230:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8678:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19113:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23421:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22886:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4038:426;4114:4;4166:10;4151:25;;:11;:25;;;;:101;;;;4242:10;4227:25;;:11;:25;;;;4151:101;:177;;;;4318:10;4303:25;;:11;:25;;;;4151:177;:263;;;;4404:10;4389:25;;:11;:25;;;;4151:263;4131:283;;4038:426;;;:::o;2877:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8060:203::-;8127:7;8152:16;8160:7;8152;:16::i;:::-;8147:64;;8177:34;;;;;;;;;;;;;;8147:64;8231:15;:24;8247:7;8231:24;;;;;;;;;;;;;;;;;;;;;8224:31;;8060:203;;;:::o;7617:377::-;7689:13;7705:16;7713:7;7705;:16::i;:::-;7689:32;;7742:5;7736:11;;:2;:11;;;7732:48;;;7756:24;;;;;;;;;;;;;;7732:48;7811:5;7797:19;;:10;:19;;;;:59;;;;;7821:35;7838:5;7845:10;7821:16;:35::i;:::-;7820:36;7797:59;7793:107;;;7865:35;;;;;;;;;;;;;;7793:107;7940:2;7913:15;:24;7929:7;7913:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7978:7;7974:2;7958:28;;7967:5;7958:28;;;;;;;;;;;;7678:316;7617:377;;:::o;24720:516::-;24772:6;;;;;;;;;;;24764:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;24868:14;;24844:21;24854:10;24844:9;:21::i;:::-;:38;24822:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;24992:10;;24976:13;:11;:13::i;:::-;:26;24954:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;25120:15;;25107:9;:28;;25085:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;25208:20;25214:10;25226:1;25208:5;:20::i;:::-;24720:516::o;4730:93::-;4774:7;4801;:14;;;;4794:21;;4730:93;:::o;22408:91::-;18093:13;:11;:13::i;:::-;22484:7:::1;22475:6;;:16;;;;;;;;;;;;;;;;;;22408:91:::0;:::o;8900:1011::-;9030:16;9038:7;9030;:16::i;:::-;9025:61;;9055:31;;;;;;;;;;;;;;9025:61;9121:4;9101:24;;:16;9109:7;9101;:16::i;:::-;:24;;;9097:65;;9134:28;;;;;;;;;;;;;;9097:65;9191:1;9177:16;;:2;:16;;;9173:52;;;9202:23;;;;;;;;;;;;;;9173:52;9238:22;9278:4;9264:18;;:10;:18;;;:69;;;;9313:20;9325:7;9313:11;:20::i;:::-;9299:34;;:10;:34;;;9264:69;:120;;;;9350:34;9367:4;9373:10;9350:16;:34::i;:::-;9264:120;9238:147;;9401:17;9396:66;;9427:35;;;;;;;;;;;;;;9396:66;9537:15;:24;9553:7;9537:24;;;;;;;;;;;;9530:31;;;;;;;;;;;9591:2;9572:7;9580;9572:16;;;;;;;;:::i;:::-;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9764:1;9754:7;:11;:49;;;;;9801:1;9769:34;;:7;9787:1;9777:7;:11;;;;:::i;:::-;9769:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:34;;;9754:49;9750:109;;;9843:4;9820:7;9838:1;9828:7;:11;;;;:::i;:::-;9820:20;;;;;;;;:::i;:::-;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;9750:109;9895:7;9891:2;9876:27;;9885:4;9876:27;;;;;;;;;;;;9014:897;8900:1011;;;:::o;27005:97::-;27075:10;27065:29;;;27087:6;27065:29;;;;;;:::i;:::-;;;;;;;;27005:97;:::o;5013:631::-;5101:15;5142:16;5152:5;5142:9;:16::i;:::-;5133:5;:25;5129:61;;5167:23;;;;;;;;;;;;;;5129:61;5203:13;5227:11;5241:7;:14;;;;5227:28;;5361:217;5385:3;5375:7;:13;5361:217;;;5433:16;5441:7;5433;:16::i;:::-;5424:25;;:5;:25;;;5420:143;;;5487:5;5478;:14;5474:69;;;5494:14;;;;5474:69;5536:7;;;;;;;5420:143;5390:9;;;;;;;5361:217;;;5608:28;;;;;;;;;;;;;;5013:631;;;;;:::o;23055:92::-;18093:13;:11;:13::i;:::-;23136:3:::1;23119:14;:20;;;;23055:92:::0;:::o;24074:243::-;24165:12;;24152:9;;24134:15;:27;;;;:::i;:::-;24133:44;24111:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;24269:15;24257:9;:27;;;;24305:4;24295:7;;:14;;;;;;;;;;;;;;;;;;24074:243::o;22721:86::-;18093:13;:11;:13::i;:::-;22796:3:::1;22783:10;:16;;;;22721:86:::0;:::o;9982:166::-;10106:34;10123:4;10129:2;10133;10106:34;;;;;;;;;;;;:16;:34::i;:::-;9982:166;;;:::o;26395:96::-;26444:7;26471:12;;26464:19;;26395:96;:::o;27198:99::-;27270:10;27259:30;;;27282:6;27259:30;;;;;;:::i;:::-;;;;;;;;27198:99;:::o;25728:92::-;25775:7;25802:10;;25795:17;;25728:92;:::o;23739:102::-;23793:4;23817:16;23825:7;23817;:16::i;:::-;23810:23;;23739:102;;;:::o;5721:175::-;5787:7;5820:13;:11;:13::i;:::-;5811:5;:22;5807:58;;5842:23;;;;;;;;;;;;;;5807:58;5883:5;5876:12;;5721:175;;;:::o;22242:102::-;18093:13;:11;:13::i;:::-;22328:8:::1;;22318:7;:18;;;;;;;:::i;:::-;;22242:102:::0;;:::o;7075:480::-;7138:7;7163:16;7171:7;7163;:16::i;:::-;7158:61;;7188:31;;;;;;;;;;;;;;7158:61;7327:163;7405:1;7377:30;;:7;7385;7377:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:30;;;7373:102;;7439:7;7447;7439:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7432:23;;;;7373:102;7343:9;;;;;;;7327:163;;7075:480;;;;:::o;23581:123::-;18093:13;:11;:13::i;:::-;23681:15:::1;23667:11;:29;;;;;;;;;;;;:::i;:::-;;23581:123:::0;:::o;26126:99::-;26176:7;26203:14;;26196:21;;26126:99;:::o;27659:98::-;18093:13;:11;:13::i;:::-;27745:4:::1;27732:10;;:17;;;;;;;;;;;;;;;;;;27659:98:::0;:::o;6343:494::-;6406:7;6447:1;6430:19;;:5;:19;;;6426:60;;;6458:28;;;;;;;;;;;;;;6426:60;6499:13;6523:11;6537:7;:14;;;;6523:28;;6662:9;6657:139;6677:3;6673:1;:7;6657:139;;;6719:10;6727:1;6719:7;:10::i;:::-;6710:19;;:5;:19;;;6706:75;;;6754:7;;;;;;;6706:75;6682:3;;;;;;;6657:139;;;;6824:5;6817:12;;;;6343:494;;;:::o;18855:103::-;18093:13;:11;:13::i;:::-;18920:30:::1;18947:1;18920:18;:30::i;:::-;18855:103::o:0;24352:129::-;24399:7;;;;;;;;;;;24391:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;24468:5;24458:7;;:15;;;;;;;;;;;;;;;;;;24352:129::o;27360:106::-;18093:13;:11;:13::i;:::-;27415:10:::1;;;;;;;;;;;27407:28;;:51;27436:21;27407:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;27360:106::o:0;25428:105::-;18093:13;:11;:13::i;:::-;25506:19:::1;25512:2;25516:8;25506:5;:19::i;:::-;25428:105:::0;;:::o;25275:102::-;18093:13;:11;:13::i;:::-;25342:27:::1;25348:10;25360:8;25342:5;:27::i;:::-;25275:102:::0;:::o;18207:87::-;18253:7;18280:6;;;;;;;;;;;18273:13;;18207:87;:::o;27508:109::-;27572:7;18093:13;:11;:13::i;:::-;27599:10:::1;;;;;;;;;;;27592:17;;27508:109:::0;:::o;22549:94::-;18093:13;:11;:13::i;:::-;22630:5:::1;22612:15;:23;;;;22549:94:::0;:::o;25992:99::-;26042:7;26069:14;;26062:21;;25992:99;:::o;2904:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26819:97::-;26889:10;26879:29;;;26901:6;26879:29;;;;;;:::i;:::-;;;;;;;;26819:97;:::o;8335:272::-;8437:10;8425:22;;:8;:22;;;8421:52;;;8456:17;;;;;;;;;;;;;;8421:52;8529:8;8486:18;:30;8505:10;8486:30;;;;;;;;;;;;;;;:40;8517:8;8486:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;8580:8;8553:46;;8568:10;8553:46;;;8590:8;8553:46;;;;;;:::i;:::-;;;;;;;;8335:272;;:::o;26622:97::-;26692:10;26682:29;;;26704:6;26682:29;;;;;;:::i;:::-;;;;;;;;26622:97;:::o;10219:293::-;10371:26;10384:4;10390:2;10394;10371:12;:26::i;:::-;10413:42;10436:4;10442:2;10446;10450:4;10413:22;:42::i;:::-;10408:96;;10464:40;;;;;;;;;;;;;;10408:96;10219:293;;;;:::o;21906:282::-;22008:13;22044:17;22052:8;22044:7;:17::i;:::-;22039:62;;22070:31;;;;;;;;;;;;;;22039:62;22143:7;22152:26;22169:8;22152:16;:26::i;:::-;22126:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22112:68;;21906:282;;;:::o;25856:101::-;25907:7;25934:15;;25927:22;;25856:101;:::o;26261:::-;26312:7;26339:15;;26332:22;;26261:101;:::o;23230:96::-;18093:13;:11;:13::i;:::-;23315:3:::1;23298:14;:20;;;;23230:96:::0;:::o;8678:155::-;8766:4;8790:18;:25;8809:5;8790:25;;;;;;;;;;;;;;;:35;8816:8;8790:35;;;;;;;;;;;;;;;;;;;;;;;;;8783:42;;8678:155;;;;:::o;19113:201::-;18093:13;:11;:13::i;:::-;19222:1:::1;19202:22;;:8;:22;;;;19194:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19278:28;19297:8;19278:18;:28::i;:::-;19113:201:::0;:::o;23421:95::-;18093:13;:11;:13::i;:::-;23504:4:::1;23489:12;:19;;;;23421:95:::0;:::o;22886:94::-;18093:13;:11;:13::i;:::-;22969:3:::1;22951:15;:21;;;;22886:94:::0;:::o;10585:121::-;10650:4;10684:7;:14;;;;10674:7;:24;10667:31;;10585:121;;;:::o;12949:628::-;13035:1;13021:16;;:2;:16;;;13017:48;;;13046:19;;;;;;;;;;;;;;13017:48;13087:1;13080:3;:8;13076:39;;;13097:18;;;;;;;;;;;;;;13076:39;13128:21;13152:7;:14;;;;13128:38;;13279:9;13274:150;13300:1;13294:3;:7;13290:1;:11;13274:150;;;13327:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13406:1;13390:13;:17;13386:2;13365:43;;13382:1;13365:43;;;;;;;;;;;;13303:3;;;;;;;13274:150;;;;13486:7;13499:2;13486:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13566:1;13560:3;:7;;;;:::i;:::-;13543:13;:25;;;;:::i;:::-;13539:2;13518:51;;13535:1;13518:51;;;;;;;;;;;;13006:571;12949:628;;:::o;18372:132::-;18447:12;:10;:12::i;:::-;18436:23;;:7;:5;:7::i;:::-;:23;;;18428:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18372:132::o;19474:191::-;19548:16;19567:6;;;;;;;;;;;19548:25;;19593:8;19584:6;;:17;;;;;;;;;;;;;;;;;;19648:8;19617:40;;19638:8;19617:40;;;;;;;;;;;;19537:128;19474:191;:::o;11271:640::-;11426:4;11465:1;11447:2;:14;;;:19;11443:36;;;11475:4;11468:11;;;;11443:36;11512:2;11496:36;;;11533:10;11545:4;11551:7;11560:5;11496:70;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;11492:412;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11745:1;11728:6;:13;:18;11724:71;;;11755:40;;;;;;;;;;;;;;11724:71;11870:6;11864:13;11855:6;11851:2;11847:15;11840:38;11492:412;11623:45;;;11613:55;;;:6;:55;;;;11606:62;;;11271:640;;;;;;;:::o;14012:723::-;14068:13;14298:1;14289:5;:10;14285:53;;;14316:10;;;;;;;;;;;;;;;;;;;;;14285:53;14348:12;14363:5;14348:20;;14379:14;14404:78;14419:1;14411:4;:9;14404:78;;14437:8;;;;;:::i;:::-;;;;14468:2;14460:10;;;;;:::i;:::-;;;14404:78;;;14492:19;14524:6;14514:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14492:39;;14542:154;14558:1;14549:5;:10;14542:154;;14586:1;14576:11;;;;;:::i;:::-;;;14653:2;14645:5;:10;;;;:::i;:::-;14632:2;:24;;;;:::i;:::-;14619:39;;14602:6;14609;14602:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;14682:2;14673:11;;;;;:::i;:::-;;;14542:154;;;14720:6;14706:21;;;;;14012:723;;;;:::o;16758:98::-;16811:7;16838:10;16831:17;;16758:98;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:410::-;829:5;854:65;870:48;911:6;870:48;:::i;:::-;854:65;:::i;:::-;845:74;;942:6;935:5;928:21;980:4;973:5;969:16;1018:3;1009:6;1004:3;1000:16;997:25;994:112;;;1025:79;;:::i;:::-;994:112;1115:41;1149:6;1144:3;1139;1115:41;:::i;:::-;835:327;752:410;;;;;:::o;1168:139::-;1214:5;1252:6;1239:20;1230:29;;1268:33;1295:5;1268:33;:::i;:::-;1168:139;;;;:::o;1330:370::-;1401:5;1450:3;1443:4;1435:6;1431:17;1427:27;1417:122;;1458:79;;:::i;:::-;1417:122;1575:6;1562:20;1600:94;1690:3;1682:6;1675:4;1667:6;1663:17;1600:94;:::i;:::-;1591:103;;1407:293;1330:370;;;;:::o;1706:133::-;1749:5;1787:6;1774:20;1765:29;;1803:30;1827:5;1803:30;:::i;:::-;1706:133;;;;:::o;1845:137::-;1890:5;1928:6;1915:20;1906:29;;1944:32;1970:5;1944:32;:::i;:::-;1845:137;;;;:::o;1988:141::-;2044:5;2075:6;2069:13;2060:22;;2091:32;2117:5;2091:32;:::i;:::-;1988:141;;;;:::o;2148:338::-;2203:5;2252:3;2245:4;2237:6;2233:17;2229:27;2219:122;;2260:79;;:::i;:::-;2219:122;2377:6;2364:20;2402:78;2476:3;2468:6;2461:4;2453:6;2449:17;2402:78;:::i;:::-;2393:87;;2209:277;2148:338;;;;:::o;2506:553::-;2564:8;2574:6;2624:3;2617:4;2609:6;2605:17;2601:27;2591:122;;2632:79;;:::i;:::-;2591:122;2745:6;2732:20;2722:30;;2775:18;2767:6;2764:30;2761:117;;;2797:79;;:::i;:::-;2761:117;2911:4;2903:6;2899:17;2887:29;;2965:3;2957:4;2949:6;2945:17;2935:8;2931:32;2928:41;2925:128;;;2972:79;;:::i;:::-;2925:128;2506:553;;;;;:::o;3065:139::-;3111:5;3149:6;3136:20;3127:29;;3165:33;3192:5;3165:33;:::i;:::-;3065:139;;;;:::o;3210:329::-;3269:6;3318:2;3306:9;3297:7;3293:23;3289:32;3286:119;;;3324:79;;:::i;:::-;3286:119;3444:1;3469:53;3514:7;3505:6;3494:9;3490:22;3469:53;:::i;:::-;3459:63;;3415:117;3210:329;;;;:::o;3545:474::-;3613:6;3621;3670:2;3658:9;3649:7;3645:23;3641:32;3638:119;;;3676:79;;:::i;:::-;3638:119;3796:1;3821:53;3866:7;3857:6;3846:9;3842:22;3821:53;:::i;:::-;3811:63;;3767:117;3923:2;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3894:118;3545:474;;;;;:::o;4025:619::-;4102:6;4110;4118;4167:2;4155:9;4146:7;4142:23;4138:32;4135:119;;;4173:79;;:::i;:::-;4135:119;4293:1;4318:53;4363:7;4354:6;4343:9;4339:22;4318:53;:::i;:::-;4308:63;;4264:117;4420:2;4446:53;4491:7;4482:6;4471:9;4467:22;4446:53;:::i;:::-;4436:63;;4391:118;4548:2;4574:53;4619:7;4610:6;4599:9;4595:22;4574:53;:::i;:::-;4564:63;;4519:118;4025:619;;;;;:::o;4650:943::-;4745:6;4753;4761;4769;4818:3;4806:9;4797:7;4793:23;4789:33;4786:120;;;4825:79;;:::i;:::-;4786:120;4945:1;4970:53;5015:7;5006:6;4995:9;4991:22;4970:53;:::i;:::-;4960:63;;4916:117;5072:2;5098:53;5143:7;5134:6;5123:9;5119:22;5098:53;:::i;:::-;5088:63;;5043:118;5200:2;5226:53;5271:7;5262:6;5251:9;5247:22;5226:53;:::i;:::-;5216:63;;5171:118;5356:2;5345:9;5341:18;5328:32;5387:18;5379:6;5376:30;5373:117;;;5409:79;;:::i;:::-;5373:117;5514:62;5568:7;5559:6;5548:9;5544:22;5514:62;:::i;:::-;5504:72;;5299:287;4650:943;;;;;;;:::o;5599:468::-;5664:6;5672;5721:2;5709:9;5700:7;5696:23;5692:32;5689:119;;;5727:79;;:::i;:::-;5689:119;5847:1;5872:53;5917:7;5908:6;5897:9;5893:22;5872:53;:::i;:::-;5862:63;;5818:117;5974:2;6000:50;6042:7;6033:6;6022:9;6018:22;6000:50;:::i;:::-;5990:60;;5945:115;5599:468;;;;;:::o;6073:474::-;6141:6;6149;6198:2;6186:9;6177:7;6173:23;6169:32;6166:119;;;6204:79;;:::i;:::-;6166:119;6324:1;6349:53;6394:7;6385:6;6374:9;6370:22;6349:53;:::i;:::-;6339:63;;6295:117;6451:2;6477:53;6522:7;6513:6;6502:9;6498:22;6477:53;:::i;:::-;6467:63;;6422:118;6073:474;;;;;:::o;6553:539::-;6637:6;6686:2;6674:9;6665:7;6661:23;6657:32;6654:119;;;6692:79;;:::i;:::-;6654:119;6840:1;6829:9;6825:17;6812:31;6870:18;6862:6;6859:30;6856:117;;;6892:79;;:::i;:::-;6856:117;6997:78;7067:7;7058:6;7047:9;7043:22;6997:78;:::i;:::-;6987:88;;6783:302;6553:539;;;;:::o;7098:323::-;7154:6;7203:2;7191:9;7182:7;7178:23;7174:32;7171:119;;;7209:79;;:::i;:::-;7171:119;7329:1;7354:50;7396:7;7387:6;7376:9;7372:22;7354:50;:::i;:::-;7344:60;;7300:114;7098:323;;;;:::o;7427:327::-;7485:6;7534:2;7522:9;7513:7;7509:23;7505:32;7502:119;;;7540:79;;:::i;:::-;7502:119;7660:1;7685:52;7729:7;7720:6;7709:9;7705:22;7685:52;:::i;:::-;7675:62;;7631:116;7427:327;;;;:::o;7760:349::-;7829:6;7878:2;7866:9;7857:7;7853:23;7849:32;7846:119;;;7884:79;;:::i;:::-;7846:119;8004:1;8029:63;8084:7;8075:6;8064:9;8060:22;8029:63;:::i;:::-;8019:73;;7975:127;7760:349;;;;:::o;8115:529::-;8186:6;8194;8243:2;8231:9;8222:7;8218:23;8214:32;8211:119;;;8249:79;;:::i;:::-;8211:119;8397:1;8386:9;8382:17;8369:31;8427:18;8419:6;8416:30;8413:117;;;8449:79;;:::i;:::-;8413:117;8562:65;8619:7;8610:6;8599:9;8595:22;8562:65;:::i;:::-;8544:83;;;;8340:297;8115:529;;;;;:::o;8650:329::-;8709:6;8758:2;8746:9;8737:7;8733:23;8729:32;8726:119;;;8764:79;;:::i;:::-;8726:119;8884:1;8909:53;8954:7;8945:6;8934:9;8930:22;8909:53;:::i;:::-;8899:63;;8855:117;8650:329;;;;:::o;8985:118::-;9072:24;9090:5;9072:24;:::i;:::-;9067:3;9060:37;8985:118;;:::o;9109:109::-;9190:21;9205:5;9190:21;:::i;:::-;9185:3;9178:34;9109:109;;:::o;9224:360::-;9310:3;9338:38;9370:5;9338:38;:::i;:::-;9392:70;9455:6;9450:3;9392:70;:::i;:::-;9385:77;;9471:52;9516:6;9511:3;9504:4;9497:5;9493:16;9471:52;:::i;:::-;9548:29;9570:6;9548:29;:::i;:::-;9543:3;9539:39;9532:46;;9314:270;9224:360;;;;:::o;9590:364::-;9678:3;9706:39;9739:5;9706:39;:::i;:::-;9761:71;9825:6;9820:3;9761:71;:::i;:::-;9754:78;;9841:52;9886:6;9881:3;9874:4;9867:5;9863:16;9841:52;:::i;:::-;9918:29;9940:6;9918:29;:::i;:::-;9913:3;9909:39;9902:46;;9682:272;9590:364;;;;:::o;9960:377::-;10066:3;10094:39;10127:5;10094:39;:::i;:::-;10149:89;10231:6;10226:3;10149:89;:::i;:::-;10142:96;;10247:52;10292:6;10287:3;10280:4;10273:5;10269:16;10247:52;:::i;:::-;10324:6;10319:3;10315:16;10308:23;;10070:267;9960:377;;;;:::o;10367:845::-;10470:3;10507:5;10501:12;10536:36;10562:9;10536:36;:::i;:::-;10588:89;10670:6;10665:3;10588:89;:::i;:::-;10581:96;;10708:1;10697:9;10693:17;10724:1;10719:137;;;;10870:1;10865:341;;;;10686:520;;10719:137;10803:4;10799:9;10788;10784:25;10779:3;10772:38;10839:6;10834:3;10830:16;10823:23;;10719:137;;10865:341;10932:38;10964:5;10932:38;:::i;:::-;10992:1;11006:154;11020:6;11017:1;11014:13;11006:154;;;11094:7;11088:14;11084:1;11079:3;11075:11;11068:35;11144:1;11135:7;11131:15;11120:26;;11042:4;11039:1;11035:12;11030:17;;11006:154;;;11189:6;11184:3;11180:16;11173:23;;10872:334;;10686:520;;10474:738;;10367:845;;;;:::o;11218:366::-;11360:3;11381:67;11445:2;11440:3;11381:67;:::i;:::-;11374:74;;11457:93;11546:3;11457:93;:::i;:::-;11575:2;11570:3;11566:12;11559:19;;11218:366;;;:::o;11590:::-;11732:3;11753:67;11817:2;11812:3;11753:67;:::i;:::-;11746:74;;11829:93;11918:3;11829:93;:::i;:::-;11947:2;11942:3;11938:12;11931:19;;11590:366;;;:::o;11962:::-;12104:3;12125:67;12189:2;12184:3;12125:67;:::i;:::-;12118:74;;12201:93;12290:3;12201:93;:::i;:::-;12319:2;12314:3;12310:12;12303:19;;11962:366;;;:::o;12334:::-;12476:3;12497:67;12561:2;12556:3;12497:67;:::i;:::-;12490:74;;12573:93;12662:3;12573:93;:::i;:::-;12691:2;12686:3;12682:12;12675:19;;12334:366;;;:::o;12706:::-;12848:3;12869:67;12933:2;12928:3;12869:67;:::i;:::-;12862:74;;12945:93;13034:3;12945:93;:::i;:::-;13063:2;13058:3;13054:12;13047:19;;12706:366;;;:::o;13078:::-;13220:3;13241:67;13305:2;13300:3;13241:67;:::i;:::-;13234:74;;13317:93;13406:3;13317:93;:::i;:::-;13435:2;13430:3;13426:12;13419:19;;13078:366;;;:::o;13450:::-;13592:3;13613:67;13677:2;13672:3;13613:67;:::i;:::-;13606:74;;13689:93;13778:3;13689:93;:::i;:::-;13807:2;13802:3;13798:12;13791:19;;13450:366;;;:::o;13822:::-;13964:3;13985:67;14049:2;14044:3;13985:67;:::i;:::-;13978:74;;14061:93;14150:3;14061:93;:::i;:::-;14179:2;14174:3;14170:12;14163:19;;13822:366;;;:::o;14194:118::-;14281:24;14299:5;14281:24;:::i;:::-;14276:3;14269:37;14194:118;;:::o;14318:429::-;14495:3;14517:92;14605:3;14596:6;14517:92;:::i;:::-;14510:99;;14626:95;14717:3;14708:6;14626:95;:::i;:::-;14619:102;;14738:3;14731:10;;14318:429;;;;;:::o;14753:222::-;14846:4;14884:2;14873:9;14869:18;14861:26;;14897:71;14965:1;14954:9;14950:17;14941:6;14897:71;:::i;:::-;14753:222;;;;:::o;14981:640::-;15176:4;15214:3;15203:9;15199:19;15191:27;;15228:71;15296:1;15285:9;15281:17;15272:6;15228:71;:::i;:::-;15309:72;15377:2;15366:9;15362:18;15353:6;15309:72;:::i;:::-;15391;15459:2;15448:9;15444:18;15435:6;15391:72;:::i;:::-;15510:9;15504:4;15500:20;15495:2;15484:9;15480:18;15473:48;15538:76;15609:4;15600:6;15538:76;:::i;:::-;15530:84;;14981:640;;;;;;;:::o;15627:210::-;15714:4;15752:2;15741:9;15737:18;15729:26;;15765:65;15827:1;15816:9;15812:17;15803:6;15765:65;:::i;:::-;15627:210;;;;:::o;15843:313::-;15956:4;15994:2;15983:9;15979:18;15971:26;;16043:9;16037:4;16033:20;16029:1;16018:9;16014:17;16007:47;16071:78;16144:4;16135:6;16071:78;:::i;:::-;16063:86;;15843:313;;;;:::o;16162:419::-;16328:4;16366:2;16355:9;16351:18;16343:26;;16415:9;16409:4;16405:20;16401:1;16390:9;16386:17;16379:47;16443:131;16569:4;16443:131;:::i;:::-;16435:139;;16162:419;;;:::o;16587:::-;16753:4;16791:2;16780:9;16776:18;16768:26;;16840:9;16834:4;16830:20;16826:1;16815:9;16811:17;16804:47;16868:131;16994:4;16868:131;:::i;:::-;16860:139;;16587:419;;;:::o;17012:::-;17178:4;17216:2;17205:9;17201:18;17193:26;;17265:9;17259:4;17255:20;17251:1;17240:9;17236:17;17229:47;17293:131;17419:4;17293:131;:::i;:::-;17285:139;;17012:419;;;:::o;17437:::-;17603:4;17641:2;17630:9;17626:18;17618:26;;17690:9;17684:4;17680:20;17676:1;17665:9;17661:17;17654:47;17718:131;17844:4;17718:131;:::i;:::-;17710:139;;17437:419;;;:::o;17862:::-;18028:4;18066:2;18055:9;18051:18;18043:26;;18115:9;18109:4;18105:20;18101:1;18090:9;18086:17;18079:47;18143:131;18269:4;18143:131;:::i;:::-;18135:139;;17862:419;;;:::o;18287:::-;18453:4;18491:2;18480:9;18476:18;18468:26;;18540:9;18534:4;18530:20;18526:1;18515:9;18511:17;18504:47;18568:131;18694:4;18568:131;:::i;:::-;18560:139;;18287:419;;;:::o;18712:::-;18878:4;18916:2;18905:9;18901:18;18893:26;;18965:9;18959:4;18955:20;18951:1;18940:9;18936:17;18929:47;18993:131;19119:4;18993:131;:::i;:::-;18985:139;;18712:419;;;:::o;19137:::-;19303:4;19341:2;19330:9;19326:18;19318:26;;19390:9;19384:4;19380:20;19376:1;19365:9;19361:17;19354:47;19418:131;19544:4;19418:131;:::i;:::-;19410:139;;19137:419;;;:::o;19562:222::-;19655:4;19693:2;19682:9;19678:18;19670:26;;19706:71;19774:1;19763:9;19759:17;19750:6;19706:71;:::i;:::-;19562:222;;;;:::o;19790:129::-;19824:6;19851:20;;:::i;:::-;19841:30;;19880:33;19908:4;19900:6;19880:33;:::i;:::-;19790:129;;;:::o;19925:75::-;19958:6;19991:2;19985:9;19975:19;;19925:75;:::o;20006:311::-;20083:4;20173:18;20165:6;20162:30;20159:56;;;20195:18;;:::i;:::-;20159:56;20245:4;20237:6;20233:17;20225:25;;20305:4;20299;20295:15;20287:23;;20006:311;;;:::o;20323:307::-;20384:4;20474:18;20466:6;20463:30;20460:56;;;20496:18;;:::i;:::-;20460:56;20534:29;20556:6;20534:29;:::i;:::-;20526:37;;20618:4;20612;20608:15;20600:23;;20323:307;;;:::o;20636:141::-;20685:4;20708:3;20700:11;;20731:3;20728:1;20721:14;20765:4;20762:1;20752:18;20744:26;;20636:141;;;:::o;20783:98::-;20834:6;20868:5;20862:12;20852:22;;20783:98;;;:::o;20887:99::-;20939:6;20973:5;20967:12;20957:22;;20887:99;;;:::o;20992:168::-;21075:11;21109:6;21104:3;21097:19;21149:4;21144:3;21140:14;21125:29;;20992:168;;;;:::o;21166:169::-;21250:11;21284:6;21279:3;21272:19;21324:4;21319:3;21315:14;21300:29;;21166:169;;;;:::o;21341:148::-;21443:11;21480:3;21465:18;;21341:148;;;;:::o;21495:305::-;21535:3;21554:20;21572:1;21554:20;:::i;:::-;21549:25;;21588:20;21606:1;21588:20;:::i;:::-;21583:25;;21742:1;21674:66;21670:74;21667:1;21664:81;21661:107;;;21748:18;;:::i;:::-;21661:107;21792:1;21789;21785:9;21778:16;;21495:305;;;;:::o;21806:185::-;21846:1;21863:20;21881:1;21863:20;:::i;:::-;21858:25;;21897:20;21915:1;21897:20;:::i;:::-;21892:25;;21936:1;21926:35;;21941:18;;:::i;:::-;21926:35;21983:1;21980;21976:9;21971:14;;21806:185;;;;:::o;21997:191::-;22037:4;22057:20;22075:1;22057:20;:::i;:::-;22052:25;;22091:20;22109:1;22091:20;:::i;:::-;22086:25;;22130:1;22127;22124:8;22121:34;;;22135:18;;:::i;:::-;22121:34;22180:1;22177;22173:9;22165:17;;21997:191;;;;:::o;22194:96::-;22231:7;22260:24;22278:5;22260:24;:::i;:::-;22249:35;;22194:96;;;:::o;22296:90::-;22330:7;22373:5;22366:13;22359:21;22348:32;;22296:90;;;:::o;22392:149::-;22428:7;22468:66;22461:5;22457:78;22446:89;;22392:149;;;:::o;22547:126::-;22584:7;22624:42;22617:5;22613:54;22602:65;;22547:126;;;:::o;22679:77::-;22716:7;22745:5;22734:16;;22679:77;;;:::o;22762:154::-;22846:6;22841:3;22836;22823:30;22908:1;22899:6;22894:3;22890:16;22883:27;22762:154;;;:::o;22922:307::-;22990:1;23000:113;23014:6;23011:1;23008:13;23000:113;;;23099:1;23094:3;23090:11;23084:18;23080:1;23075:3;23071:11;23064:39;23036:2;23033:1;23029:10;23024:15;;23000:113;;;23131:6;23128:1;23125:13;23122:101;;;23211:1;23202:6;23197:3;23193:16;23186:27;23122:101;22971:258;22922:307;;;:::o;23235:320::-;23279:6;23316:1;23310:4;23306:12;23296:22;;23363:1;23357:4;23353:12;23384:18;23374:81;;23440:4;23432:6;23428:17;23418:27;;23374:81;23502:2;23494:6;23491:14;23471:18;23468:38;23465:84;;;23521:18;;:::i;:::-;23465:84;23286:269;23235:320;;;:::o;23561:281::-;23644:27;23666:4;23644:27;:::i;:::-;23636:6;23632:40;23774:6;23762:10;23759:22;23738:18;23726:10;23723:34;23720:62;23717:88;;;23785:18;;:::i;:::-;23717:88;23825:10;23821:2;23814:22;23604:238;23561:281;;:::o;23848:233::-;23887:3;23910:24;23928:5;23910:24;:::i;:::-;23901:33;;23956:66;23949:5;23946:77;23943:103;;;24026:18;;:::i;:::-;23943:103;24073:1;24066:5;24062:13;24055:20;;23848:233;;;:::o;24087:176::-;24119:1;24136:20;24154:1;24136:20;:::i;:::-;24131:25;;24170:20;24188:1;24170:20;:::i;:::-;24165:25;;24209:1;24199:35;;24214:18;;:::i;:::-;24199:35;24255:1;24252;24248:9;24243:14;;24087:176;;;;:::o;24269:180::-;24317:77;24314:1;24307:88;24414:4;24411:1;24404:15;24438:4;24435:1;24428:15;24455:180;24503:77;24500:1;24493:88;24600:4;24597:1;24590:15;24624:4;24621:1;24614:15;24641:180;24689:77;24686:1;24679:88;24786:4;24783:1;24776:15;24810:4;24807:1;24800:15;24827:180;24875:77;24872:1;24865:88;24972:4;24969:1;24962:15;24996:4;24993:1;24986:15;25013:180;25061:77;25058:1;25051:88;25158:4;25155:1;25148:15;25182:4;25179:1;25172:15;25199:117;25308:1;25305;25298:12;25322:117;25431:1;25428;25421:12;25445:117;25554:1;25551;25544:12;25568:117;25677:1;25674;25667:12;25691:117;25800:1;25797;25790:12;25814:117;25923:1;25920;25913:12;25937:102;25978:6;26029:2;26025:7;26020:2;26013:5;26009:14;26005:28;25995:38;;25937:102;;;:::o;26045:225::-;26185:34;26181:1;26173:6;26169:14;26162:58;26254:8;26249:2;26241:6;26237:15;26230:33;26045:225;:::o;26276:231::-;26416:34;26412:1;26404:6;26400:14;26393:58;26485:14;26480:2;26472:6;26468:15;26461:39;26276:231;:::o;26513:178::-;26653:30;26649:1;26641:6;26637:14;26630:54;26513:178;:::o;26697:221::-;26837:34;26833:1;26825:6;26821:14;26814:58;26906:4;26901:2;26893:6;26889:15;26882:29;26697:221;:::o;26924:182::-;27064:34;27060:1;27052:6;27048:14;27041:58;26924:182;:::o;27112:228::-;27252:34;27248:1;27240:6;27236:14;27229:58;27321:11;27316:2;27308:6;27304:15;27297:36;27112:228;:::o;27346:223::-;27486:34;27482:1;27474:6;27470:14;27463:58;27555:6;27550:2;27542:6;27538:15;27531:31;27346:223;:::o;27575:220::-;27715:34;27711:1;27703:6;27699:14;27692:58;27784:3;27779:2;27771:6;27767:15;27760:28;27575:220;:::o;27801:122::-;27874:24;27892:5;27874:24;:::i;:::-;27867:5;27864:35;27854:63;;27913:1;27910;27903:12;27854:63;27801:122;:::o;27929:116::-;27999:21;28014:5;27999:21;:::i;:::-;27992:5;27989:32;27979:60;;28035:1;28032;28025:12;27979:60;27929:116;:::o;28051:120::-;28123:23;28140:5;28123:23;:::i;:::-;28116:5;28113:34;28103:62;;28161:1;28158;28151:12;28103:62;28051:120;:::o;28177:122::-;28250:24;28268:5;28250:24;:::i;:::-;28243:5;28240:35;28230:63;;28289:1;28286;28279:12;28230:63;28177:122;:::o

Swarm Source

ipfs://6f9ddec17721e856b333da2e2e77c43c821240649acf93f1cf0983193e6b447d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.