ETH Price: $2,449.91 (+1.31%)

Token

 

Overview

Max Total Supply

33

Holders

20

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
0x4300333a99d3419b1e9cfca9191a8a837fac2bd8
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:
SovPreOrder

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 10000000 runs

Other Settings:
default evmVersion
File 1 of 3 : PreOrder.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

import "solmate/tokens/ERC1155.sol";
import "solmate/auth/Owned.sol";

contract SovPreOrder is ERC1155, Owned {
    string private _tokenUri;

    bool public refundActive;

    uint256 public mintTime;
    uint256 public mintPrice;
    uint256 public maxMint;

    uint256 public maxSupply;
    uint256 public totalSupply;
    mapping(address => uint256) public numMinted;

    constructor() Owned(msg.sender) {
        _tokenUri = "https://static.721.gg/sov/1.json";

        mintPrice = 0.069 ether;
        mintTime = 1677891600;

        maxMint = 3;
        maxSupply = 10000;

        refundActive = false;
    }

    function mint() public payable {
        require(msg.sender == tx.origin, "BOT");

        uint256 mintStart = mintTime;
        require(mintStart != 0 && block.timestamp > mintStart, "MINT_CLOSED");

        require(msg.value % mintPrice == 0, "VALUE_MISMATCH");
        uint256 amount = msg.value / mintPrice;

        require(totalSupply + amount <= maxSupply, "EXCEED_SUPPLY");
        uint256 currentlyMinted = numMinted[msg.sender];
        require(currentlyMinted + amount <= maxMint, "EXCEED_MAX_MINT");

        totalSupply += amount;
        numMinted[msg.sender] += amount;

        _mint(msg.sender, 1, amount, new bytes(0));
    }

    function refund(uint256 amount) public {
        require(refundActive, "REFUND_INACTIVE");
        require(numMinted[msg.sender] >= amount && balanceOf[msg.sender][1] >= amount, "EXCEED_BALANCE");

        _burn(msg.sender, 1, amount);
        totalSupply -= amount;

        (bool success,) = msg.sender.call{ value: (mintPrice * amount) / 2 }("");
        require(success, "TRANSFER_FAILED");
    }

    function withdraw(uint256 amount) public onlyOwner {
        (bool success,) = msg.sender.call{ value: amount }("");
        require(success, "TRANSFER_FAILED");
    }

    function setRefundActive(bool newActive) public onlyOwner {
        refundActive = newActive;
    }

    function setMintTime(uint256 newTime) public onlyOwner {
        mintTime = newTime;
    }

    function setMintPrice(uint256 newPrice) public onlyOwner {
        mintPrice = newPrice;
    }

    function setMaxMint(uint256 newMax) public onlyOwner {
        maxMint = newMax;
    }

    function setMaxSupply(uint256 newMax) public onlyOwner {
        maxSupply = newMax;
    }

    function setTokenUri(string calldata newUri) public onlyOwner {
        _tokenUri = newUri;
    }

    function uri(uint256 id) public view override returns (string memory) {
        id; return _tokenUri;
    }
}

File 2 of 3 : Owned.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Simple single owner authorization mixin.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

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

    /*//////////////////////////////////////////////////////////////
                            OWNERSHIP STORAGE
    //////////////////////////////////////////////////////////////*/

    address public owner;

    modifier onlyOwner() virtual {
        require(msg.sender == owner, "UNAUTHORIZED");

        _;
    }

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

    constructor(address _owner) {
        owner = _owner;

        emit OwnershipTransferred(address(0), _owner);
    }

    /*//////////////////////////////////////////////////////////////
                             OWNERSHIP LOGIC
    //////////////////////////////////////////////////////////////*/

    function transferOwnership(address newOwner) public virtual onlyOwner {
        owner = newOwner;

        emit OwnershipTransferred(msg.sender, newOwner);
    }
}

File 3 of 3 : ERC1155.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Minimalist and gas efficient standard ERC1155 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol)
abstract contract ERC1155 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event TransferSingle(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256 id,
        uint256 amount
    );

    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] amounts
    );

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

    event URI(string value, uint256 indexed id);

    /*//////////////////////////////////////////////////////////////
                             ERC1155 STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(address => mapping(uint256 => uint256)) public balanceOf;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

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

    function uri(uint256 id) public view virtual returns (string memory);

    /*//////////////////////////////////////////////////////////////
                              ERC1155 LOGIC
    //////////////////////////////////////////////////////////////*/

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) public virtual {
        require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED");

        balanceOf[from][id] -= amount;
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, from, to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, from, id, amount, data) ==
                    ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) public virtual {
        require(ids.length == amounts.length, "LENGTH_MISMATCH");

        require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED");

        // Storing these outside the loop saves ~15 gas per iteration.
        uint256 id;
        uint256 amount;

        for (uint256 i = 0; i < ids.length; ) {
            id = ids[i];
            amount = amounts[i];

            balanceOf[from][id] -= amount;
            balanceOf[to][id] += amount;

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, from, to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, from, ids, amounts, data) ==
                    ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function balanceOfBatch(address[] calldata owners, uint256[] calldata ids)
        public
        view
        virtual
        returns (uint256[] memory balances)
    {
        require(owners.length == ids.length, "LENGTH_MISMATCH");

        balances = new uint256[](owners.length);

        // Unchecked because the only math done is incrementing
        // the array index counter which cannot possibly overflow.
        unchecked {
            for (uint256 i = 0; i < owners.length; ++i) {
                balances[i] = balanceOf[owners[i]][ids[i]];
            }
        }
    }

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

    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155
            interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI
    }

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

    function _mint(
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, address(0), to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, address(0), id, amount, data) ==
                    ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchMint(
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[to][ids[i]] += amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, address(0), to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, address(0), ids, amounts, data) ==
                    ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchBurn(
        address from,
        uint256[] memory ids,
        uint256[] memory amounts
    ) internal virtual {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[from][ids[i]] -= amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, from, address(0), ids, amounts);
    }

    function _burn(
        address from,
        uint256 id,
        uint256 amount
    ) internal virtual {
        balanceOf[from][id] -= amount;

        emit TransferSingle(msg.sender, from, address(0), id, amount);
    }
}

/// @notice A generic interface for a contract which properly accepts ERC1155 tokens.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol)
abstract contract ERC1155TokenReceiver {
    function onERC1155Received(
        address,
        address,
        uint256,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155Received.selector;
    }

    function onERC1155BatchReceived(
        address,
        address,
        uint256[] calldata,
        uint256[] calldata,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155BatchReceived.selector;
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "solmate/=lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 10000000
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "viaIR": true,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refundActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","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":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","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":"uint256","name":"newMax","type":"uint256"}],"name":"setMaxMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"setMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTime","type":"uint256"}],"name":"setMintTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newActive","type":"bool"}],"name":"setRefundActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUri","type":"string"}],"name":"setTokenUri","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608080604052346200015b57600280546001600160a01b03191633908117909155600090817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36003546001908181811c9116801562000150575b60208210146200013c57601f8111620000f0575b604160039081558084527f68747470733a2f2f7374617469632e3732312e67672f736f762f312e6a736f6e7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5566f523226980800060065563640298106005556007556127106008556004805460ff19169055611ec48481620001618239f35b60038352601f0160051c7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9081019082015b81811062000131575062000070565b838155820162000122565b634e487b7160e01b83526022600452602483fd5b90607f16906200005c565b600080fdfe60806040908082526004908136101561001757600080fd5b600092833560e01c918262fdd58e146118b25750816301ffc9a7146117c15781630675b7c6146115905781630dcbf8c6146115025781630e89341c146113d85781631249c58b14610fd457816318160ddd14610f9757816320fc7eb214610f35578163278ecde114610d545781632e1a7d4d14610ce65781632eb2c2d614610a115781634e1273f41461085c578163547520fe146108015781636817c76c146107c45781636f8b44b0146107695781637501f7411461072c57816386478122146106ef5781638da5cb5b1461069c578163a22cb465146105cd578163cb0269bc1461058b578163d5abeb011461054e578163dda52d53146104f3578163e985e9c51461047a578163f242432a1461025457508063f2fde38b146101a05763f4a0a5281461014357600080fd5b3461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5761019573ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b3560065580f35b5080fd5b82346102515760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610251577fffffffffffffffffffffffff00000000000000000000000000000000000000006101f9611918565b6002549073ffffffffffffffffffffffffffffffffffffffff906102208284163314611a20565b169182911617600255337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b80fd5b919050346104765760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765761028e611918565b9083610298611940565b9260643560443560843567ffffffffffffffff8111610472576102be9036908701611963565b949073ffffffffffffffffffffffffffffffffffffffff809516908133148015610453575b6102ec90611a85565b8183526020958387528a842085855287528a842061030b878254611aea565b90558916988984528387528a842085855287528a842061032c878254611b26565b905589838c7fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628151918983528a8c8401523392a43b61037c57505050505050505061037991501515611c1a565b80f35b906103da869798999493928b51998a97889687957ff23a6e61000000000000000000000000000000000000000000000000000000009e8f8852339088015260248701526044860152606485015260a0608485015260a4840191611bdb565b03925af193841561044a5750927fffffffff000000000000000000000000000000000000000000000000000000009161037994869261041d575b50501614611c1a565b61043c9250803d10610443575b6104348183611b33565b810190611ba3565b3880610414565b503d61042a565b513d86823e3d90fd5b50818352600160209081528a842033855290528983205460ff166102e3565b8480fd5b8280fd5b83903461019c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5760ff816020936104b8611918565b6104c0611940565b73ffffffffffffffffffffffffffffffffffffffff91821683526001875283832091168252855220549151911615158152f35b50503461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5761054773ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b3560055580f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906008549051908152f35b9050823461025157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610251575060ff602092541690519015158152f35b83903461019c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c57610605611918565b906024359081151580920361069857338452600160205273ffffffffffffffffffffffffffffffffffffffff8185209316928385526020528084207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b8380fd5b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5760209073ffffffffffffffffffffffffffffffffffffffff600254169051908152f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906005549051908152f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906007549051908152f35b50503461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576107bd73ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b3560085580f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906006549051908152f35b50503461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5761085573ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b3560075580f35b83833461019c57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5767ffffffffffffffff91813583811161019c576108ac90369084016119ef565b919093602490813590811161047657918486926108cd8995369084016119ef565b9490926108db868914611c7f565b6108e488611d60565b936108f188519586611b33565b8885526108fd89611d60565b966020997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08b88019901368a37875b818110610975575050505050505083519485948186019282875251809352850193925b82811061095e57505050500390f35b83518552869550938101939281019260010161094f565b6109868183889e9b9a9c9d9e611ce4565b3573ffffffffffffffffffffffffffffffffffffffff8116809103610a0d5788528789528b88206109b8828587611ce4565b35895289528b8820548a518210156109e257600582901b8b018a0152979a9998969760010161092c565b87896032887f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8880fd5b91905034610476577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a08136011261069857610a4c611918565b91610a55611940565b9167ffffffffffffffff90604435828111610ce257610a7790369085016119ef565b919092606435818111610cde57610a9190369087016119ef565b929091608435908111610cda57610aab9036908801611963565b9092610ab8858714611c7f565b73ffffffffffffffffffffffffffffffffffffffff998a1694610aed3387148d8f8215610cbb575b8b8f918f93958c95611a85565b8c81925b818410610c5057907f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb949350610b309250875197808952880191611d23565b928584036020870152169380610b483394888a611d23565b0390a4893b610b67575050505050505050506103799250161515611c1a565b8b9a969799989a51998a9889977fbc197c81000000000000000000000000000000000000000000000000000000009d8e8a5233908a015260248901526044880160a0905260a4880190610bb992611d23565b9084878303016064880152610bcd92611d23565b91848303016084850152610be092611bdb565b0392169181875a94602095f1928315610c475750610379927fffffffff00000000000000000000000000000000000000000000000000000000918591610c29575b501614611c1a565b610c41915060203d8111610443576104348183611b33565b38610c21565b513d85823e3d90fd5b94610c6584610caa969360019a969998611ce4565b3591610c72888b8d611ce4565b359684526020918483528585208486528352858520610c92898254611aea565b90551683528281528383209183525220918254611b26565b905501868b8f8f938f918c8e610af1565b60ff925089815260016020528181203382526020522054168d8f610ae0565b8a80fd5b8980fd5b8780fd5b50503461019c578160207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102515780808061037994610d4273ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b35335af1610d4e611d78565b50611dd6565b9190503461047657602091827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106985781359260ff83541615610eda57338552600a81528382862054101580610ec1575b15610e6657908491338352828152818320600184528152818320610dce868254611aea565b905584825191600183528201527fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6233923392a4610e0d82600954611aea565b600955600654828102928184041490151715610e3a5750818080806103799460011c335af1610d4e611d78565b8260116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6064929151917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600e60248201527f4558434545445f42414c414e43450000000000000000000000000000000000006044820152fd5b5084815281852060018652815283828620541015610da9565b6064929151917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600f60248201527f524546554e445f494e41435449564500000000000000000000000000000000006044820152fd5b83903461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c578060209273ffffffffffffffffffffffffffffffffffffffff610f87611918565b168152600a845220549051908152f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906009549051908152f35b919050827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765732330361137c576005548015159081611372575b50156113165760065480156112ea5780340661128d5734046009546110398282611b26565b6008541061123057338552602090600a82526110588386882054611b26565b600754106111d4578261106a91611b26565b600955338552600a8152838520611082838254611b26565b905583519181830183811067ffffffffffffffff8211176111a85785528583523386528582528486206001875282528486206110bf828254611b26565b905584516001815281838201528633917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62883392a4333b61110a575050505050610379331515611c1a565b611164928291865194859283927ff23a6e61000000000000000000000000000000000000000000000000000000009889855233908501528a602485015260016044850152606484015260a0608484015260a4830190611991565b038188335af193841561044a5750927fffffffff000000000000000000000000000000000000000000000000000000009161037994869261041d5750501614611c1a565b6024876041877f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b606484838751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600f60248201527f4558434545445f4d41585f4d494e5400000000000000000000000000000000006044820152fd5b60648360208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600d60248201527f4558434545445f535550504c59000000000000000000000000000000000000006044820152fd5b50602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600e60248201527f56414c55455f4d49534d415443480000000000000000000000000000000000006044820152fd5b6024846012847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600b60248201527f4d494e545f434c4f5345440000000000000000000000000000000000000000006044820152fd5b9050421138611014565b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600360248201527f424f5400000000000000000000000000000000000000000000000000000000006044820152fd5b83903461019c57602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765780518381949060035461141d81611e3b565b918285526001918783821691826000146114bd575050600114611461575b50505061145d929161144e910385611b33565b51928284938452830190611991565b0390f35b9190869350600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106114a5575050508201018161144e61145d61143b565b8054848a01860152889550879490930192810161148c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b8601909301935084925061144e915061145d905061143b565b50503461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5780358015158091036104765761156273ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b60ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617905580f35b82843461025157602091827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5767ffffffffffffffff8135818111610698576115e29036908401611963565b92909161160873ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b8311611795575061161a600354611e3b565b601f8111611737575b508293601f831160011461167d5750928293829392611672575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161760035580f35b01359050838061163d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08316947fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9285905b87821061171f5750508360019596106116e7575b505050811b0160035580f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558380806116db565b806001849682949587013581550195019201906116c7565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81019186851061178b575b601f0160051c01905b8181106117805750611623565b848155600101611773565b909150819061176a565b8360416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b919050346104765760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765735907fffffffff00000000000000000000000000000000000000000000000000000000821680920361047657602092507f01ffc9a7000000000000000000000000000000000000000000000000000000008214918215611888575b821561185e575b50519015158152f35b7f0e89341c0000000000000000000000000000000000000000000000000000000014915038611855565b7fd9b67a26000000000000000000000000000000000000000000000000000000008114925061184e565b84913461047657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765760209273ffffffffffffffffffffffffffffffffffffffff611902611918565b1681528084528181206024358252845220548152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361193b57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361193b57565b9181601f8401121561193b5782359167ffffffffffffffff831161193b576020838186019501011161193b57565b919082519283825260005b8481106119db5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b60208183018101518483018201520161199c565b9181601f8401121561193b5782359167ffffffffffffffff831161193b576020808501948460051b01011161193b57565b15611a2757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152fd5b15611a8c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152fd5b91908203918211611af757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b91908201809211611af757565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611b7457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9081602091031261193b57517fffffffff000000000000000000000000000000000000000000000000000000008116810361193b5790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b15611c2157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152fd5b15611c8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152fd5b9190811015611cf45760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831161193b5760209260051b809284830137010190565b67ffffffffffffffff8111611b745760051b60200190565b3d15611dd1573d9067ffffffffffffffff8211611b745760405191611dc560207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184611b33565b82523d6000602084013e565b606090565b15611ddd57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b90600182811c92168015611e84575b6020831014611e5557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691611e4a56fea2646970667358221220f885f140cec8c241c2d5a00c7045ef6111453eb047a025a0290275d9eb07b53964736f6c63430008110033

Deployed Bytecode

0x60806040908082526004908136101561001757600080fd5b600092833560e01c918262fdd58e146118b25750816301ffc9a7146117c15781630675b7c6146115905781630dcbf8c6146115025781630e89341c146113d85781631249c58b14610fd457816318160ddd14610f9757816320fc7eb214610f35578163278ecde114610d545781632e1a7d4d14610ce65781632eb2c2d614610a115781634e1273f41461085c578163547520fe146108015781636817c76c146107c45781636f8b44b0146107695781637501f7411461072c57816386478122146106ef5781638da5cb5b1461069c578163a22cb465146105cd578163cb0269bc1461058b578163d5abeb011461054e578163dda52d53146104f3578163e985e9c51461047a578163f242432a1461025457508063f2fde38b146101a05763f4a0a5281461014357600080fd5b3461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5761019573ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b3560065580f35b5080fd5b82346102515760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610251577fffffffffffffffffffffffff00000000000000000000000000000000000000006101f9611918565b6002549073ffffffffffffffffffffffffffffffffffffffff906102208284163314611a20565b169182911617600255337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b80fd5b919050346104765760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765761028e611918565b9083610298611940565b9260643560443560843567ffffffffffffffff8111610472576102be9036908701611963565b949073ffffffffffffffffffffffffffffffffffffffff809516908133148015610453575b6102ec90611a85565b8183526020958387528a842085855287528a842061030b878254611aea565b90558916988984528387528a842085855287528a842061032c878254611b26565b905589838c7fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628151918983528a8c8401523392a43b61037c57505050505050505061037991501515611c1a565b80f35b906103da869798999493928b51998a97889687957ff23a6e61000000000000000000000000000000000000000000000000000000009e8f8852339088015260248701526044860152606485015260a0608485015260a4840191611bdb565b03925af193841561044a5750927fffffffff000000000000000000000000000000000000000000000000000000009161037994869261041d575b50501614611c1a565b61043c9250803d10610443575b6104348183611b33565b810190611ba3565b3880610414565b503d61042a565b513d86823e3d90fd5b50818352600160209081528a842033855290528983205460ff166102e3565b8480fd5b8280fd5b83903461019c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5760ff816020936104b8611918565b6104c0611940565b73ffffffffffffffffffffffffffffffffffffffff91821683526001875283832091168252855220549151911615158152f35b50503461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5761054773ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b3560055580f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906008549051908152f35b9050823461025157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610251575060ff602092541690519015158152f35b83903461019c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c57610605611918565b906024359081151580920361069857338452600160205273ffffffffffffffffffffffffffffffffffffffff8185209316928385526020528084207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b8380fd5b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5760209073ffffffffffffffffffffffffffffffffffffffff600254169051908152f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906005549051908152f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906007549051908152f35b50503461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576107bd73ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b3560085580f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906006549051908152f35b50503461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5761085573ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b3560075580f35b83833461019c57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5767ffffffffffffffff91813583811161019c576108ac90369084016119ef565b919093602490813590811161047657918486926108cd8995369084016119ef565b9490926108db868914611c7f565b6108e488611d60565b936108f188519586611b33565b8885526108fd89611d60565b966020997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08b88019901368a37875b818110610975575050505050505083519485948186019282875251809352850193925b82811061095e57505050500390f35b83518552869550938101939281019260010161094f565b6109868183889e9b9a9c9d9e611ce4565b3573ffffffffffffffffffffffffffffffffffffffff8116809103610a0d5788528789528b88206109b8828587611ce4565b35895289528b8820548a518210156109e257600582901b8b018a0152979a9998969760010161092c565b87896032887f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8880fd5b91905034610476577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a08136011261069857610a4c611918565b91610a55611940565b9167ffffffffffffffff90604435828111610ce257610a7790369085016119ef565b919092606435818111610cde57610a9190369087016119ef565b929091608435908111610cda57610aab9036908801611963565b9092610ab8858714611c7f565b73ffffffffffffffffffffffffffffffffffffffff998a1694610aed3387148d8f8215610cbb575b8b8f918f93958c95611a85565b8c81925b818410610c5057907f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb949350610b309250875197808952880191611d23565b928584036020870152169380610b483394888a611d23565b0390a4893b610b67575050505050505050506103799250161515611c1a565b8b9a969799989a51998a9889977fbc197c81000000000000000000000000000000000000000000000000000000009d8e8a5233908a015260248901526044880160a0905260a4880190610bb992611d23565b9084878303016064880152610bcd92611d23565b91848303016084850152610be092611bdb565b0392169181875a94602095f1928315610c475750610379927fffffffff00000000000000000000000000000000000000000000000000000000918591610c29575b501614611c1a565b610c41915060203d8111610443576104348183611b33565b38610c21565b513d85823e3d90fd5b94610c6584610caa969360019a969998611ce4565b3591610c72888b8d611ce4565b359684526020918483528585208486528352858520610c92898254611aea565b90551683528281528383209183525220918254611b26565b905501868b8f8f938f918c8e610af1565b60ff925089815260016020528181203382526020522054168d8f610ae0565b8a80fd5b8980fd5b8780fd5b50503461019c578160207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102515780808061037994610d4273ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b35335af1610d4e611d78565b50611dd6565b9190503461047657602091827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106985781359260ff83541615610eda57338552600a81528382862054101580610ec1575b15610e6657908491338352828152818320600184528152818320610dce868254611aea565b905584825191600183528201527fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6233923392a4610e0d82600954611aea565b600955600654828102928184041490151715610e3a5750818080806103799460011c335af1610d4e611d78565b8260116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6064929151917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600e60248201527f4558434545445f42414c414e43450000000000000000000000000000000000006044820152fd5b5084815281852060018652815283828620541015610da9565b6064929151917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600f60248201527f524546554e445f494e41435449564500000000000000000000000000000000006044820152fd5b83903461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c578060209273ffffffffffffffffffffffffffffffffffffffff610f87611918565b168152600a845220549051908152f35b83903461019c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576020906009549051908152f35b919050827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765732330361137c576005548015159081611372575b50156113165760065480156112ea5780340661128d5734046009546110398282611b26565b6008541061123057338552602090600a82526110588386882054611b26565b600754106111d4578261106a91611b26565b600955338552600a8152838520611082838254611b26565b905583519181830183811067ffffffffffffffff8211176111a85785528583523386528582528486206001875282528486206110bf828254611b26565b905584516001815281838201528633917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62883392a4333b61110a575050505050610379331515611c1a565b611164928291865194859283927ff23a6e61000000000000000000000000000000000000000000000000000000009889855233908501528a602485015260016044850152606484015260a0608484015260a4830190611991565b038188335af193841561044a5750927fffffffff000000000000000000000000000000000000000000000000000000009161037994869261041d5750501614611c1a565b6024876041877f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b606484838751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600f60248201527f4558434545445f4d41585f4d494e5400000000000000000000000000000000006044820152fd5b60648360208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600d60248201527f4558434545445f535550504c59000000000000000000000000000000000000006044820152fd5b50602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600e60248201527f56414c55455f4d49534d415443480000000000000000000000000000000000006044820152fd5b6024846012847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600b60248201527f4d494e545f434c4f5345440000000000000000000000000000000000000000006044820152fd5b9050421138611014565b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600360248201527f424f5400000000000000000000000000000000000000000000000000000000006044820152fd5b83903461019c57602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765780518381949060035461141d81611e3b565b918285526001918783821691826000146114bd575050600114611461575b50505061145d929161144e910385611b33565b51928284938452830190611991565b0390f35b9190869350600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106114a5575050508201018161144e61145d61143b565b8054848a01860152889550879490930192810161148c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b8601909301935084925061144e915061145d905061143b565b50503461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5780358015158091036104765761156273ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b60ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617905580f35b82843461025157602091827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5767ffffffffffffffff8135818111610698576115e29036908401611963565b92909161160873ffffffffffffffffffffffffffffffffffffffff600254163314611a20565b8311611795575061161a600354611e3b565b601f8111611737575b508293601f831160011461167d5750928293829392611672575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161760035580f35b01359050838061163d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08316947fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9285905b87821061171f5750508360019596106116e7575b505050811b0160035580f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558380806116db565b806001849682949587013581550195019201906116c7565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81019186851061178b575b601f0160051c01905b8181106117805750611623565b848155600101611773565b909150819061176a565b8360416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b919050346104765760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765735907fffffffff00000000000000000000000000000000000000000000000000000000821680920361047657602092507f01ffc9a7000000000000000000000000000000000000000000000000000000008214918215611888575b821561185e575b50519015158152f35b7f0e89341c0000000000000000000000000000000000000000000000000000000014915038611855565b7fd9b67a26000000000000000000000000000000000000000000000000000000008114925061184e565b84913461047657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104765760209273ffffffffffffffffffffffffffffffffffffffff611902611918565b1681528084528181206024358252845220548152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361193b57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361193b57565b9181601f8401121561193b5782359167ffffffffffffffff831161193b576020838186019501011161193b57565b919082519283825260005b8481106119db5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b60208183018101518483018201520161199c565b9181601f8401121561193b5782359167ffffffffffffffff831161193b576020808501948460051b01011161193b57565b15611a2757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152fd5b15611a8c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152fd5b91908203918211611af757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b91908201809211611af757565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611b7457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9081602091031261193b57517fffffffff000000000000000000000000000000000000000000000000000000008116810361193b5790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b15611c2157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152fd5b15611c8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152fd5b9190811015611cf45760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831161193b5760209260051b809284830137010190565b67ffffffffffffffff8111611b745760051b60200190565b3d15611dd1573d9067ffffffffffffffff8211611b745760405191611dc560207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184611b33565b82523d6000602084013e565b606090565b15611ddd57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b90600182811c92168015611e84575b6020831014611e5557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691611e4a56fea2646970667358221220f885f140cec8c241c2d5a00c7045ef6111453eb047a025a0290275d9eb07b53964736f6c63430008110033

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.