ETH Price: $3,396.27 (+6.39%)
Gas: 28 Gwei

Token

V0 Doodles (V0DOOD)
 

Overview

Max Total Supply

10,000 V0DOOD

Holders

873

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
0xhme.eth
Balance
10 V0DOOD
0x70940bd73aceb8ff672a7c1f48d1d618bdb66458
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:
V0Doodles

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 10 : V0Doodles.sol
// SPDX-License-Identifier: Unlicense
// Creatoor: Scroungy Labs

pragma solidity ^0.8.9;

//   ____                                                          ________                                        ___
//  /\  _`\                              __                       /\_____  \                                      /\_ \      __
//  \ \ \L\ \   __  __   _ __    ___    /\_\     ___       __     \/____//'/'      __    _____    _____      __   \//\ \    /\_\     ___
//   \ \  _ <' /\ \/\ \ /\`'__\/' _ `\  \/\ \  /' _ `\   /'_ `\        //'/'     /'__`\ /\ '__`\ /\ '__`\  /'__`\   \ \ \   \/\ \  /' _ `\
//    \ \ \L\ \\ \ \_\ \\ \ \/ /\ \/\ \  \ \ \ /\ \/\ \ /\ \L\ \      //'/'___  /\  __/ \ \ \L\ \\ \ \L\ \/\  __/    \_\ \_  \ \ \ /\ \/\ \
//     \ \____/ \ \____/ \ \_\ \ \_\ \_\  \ \_\\ \_\ \_\\ \____ \     /\_______\\ \____\ \ \ ,__/ \ \ ,__/\ \____\   /\____\  \ \_\\ \_\ \_\
//      \/___/   \/___/   \/_/  \/_/\/_/   \/_/ \/_/\/_/ \/___L\ \    \/_______/ \/____/  \ \ \/   \ \ \/  \/____/   \/____/   \/_/ \/_/\/_/
//                                                         /\____/                         \ \_\    \ \_\
//                                                         \_/__/                           \/_/     \/_/
//   ____                                      __                  ____                        __                                __
//  /\  _`\                                   /\ \__              /\  _`\                     /\ \__                            /\ \__
//  \ \,\L\_\     ___ ___       __      _ __  \ \ ,_\             \ \ \/\_\    ___     ___    \ \ ,_\   _ __     __       ___   \ \ ,_\    ____
//   \/_\__ \   /' __` __`\   /'__`\   /\`'__\ \ \ \/              \ \ \/_/_  / __`\ /' _ `\   \ \ \/  /\`'__\ /'__`\    /'___\  \ \ \/   /',__\
//     /\ \L\ \ /\ \/\ \/\ \ /\ \L\.\_ \ \ \/   \ \ \_              \ \ \L\ \/\ \L\ \/\ \/\ \   \ \ \_ \ \ \/ /\ \L\.\_ /\ \__/   \ \ \_ /\__, `\
//     \ `\____\\ \_\ \_\ \_\\ \__/.\_\ \ \_\    \ \__\              \ \____/\ \____/\ \_\ \_\   \ \__\ \ \_\ \ \__/.\_\\ \____\   \ \__\\/\____/
//      \/_____/ \/_/\/_/\/_/ \/__/\/_/  \/_/     \/__/               \/___/  \/___/  \/_/\/_/    \/__/  \/_/  \/__/\/_/ \/____/    \/__/ \/___/

import "./@burningzeppelin/contracts/access/Ownabull.sol";
import "./@burningzeppelin/contracts/token/ERC20/IERC20.sol";
import "./ERC72169420.sol";

contract V0Doodles is ERC72169420, Ownabull {
    mapping(address => uint256) private _numMinted;

    uint256 private maxPerTx = 10;
    uint256 private maxPerWallet = 100;

    enum MintStatus {
        PreMint,
        Public,
        Finished
    }

    MintStatus public mintStatus;

    constructor(
        string memory name_,
        string memory symbol_,
        string memory description_,
        string memory coverImage_
    ) ERC72169420(name_, symbol_, description_, coverImage_) {}

    function reeeeeeeee(uint256 _reeeeeeeee) public onlyOwnoor {
        _reee(_reeeeeeeee);
    }

    function changeMintStatus(MintStatus newMintStatus) public onlyOwnoor {
        require(newMintStatus != MintStatus.PreMint, "p");
        mintStatus = newMintStatus;
    }

    function preMint(address to, uint256 quantity, uint256 times) public onlyOwnoor {
        require(mintStatus == MintStatus.PreMint, "p");
        for (uint256 i = 0; i < times; i++) {
            _safeMint(address(0), to, quantity);
        }
    }

    function mintPublic(uint256 quantity) public {
        require(mintStatus == MintStatus.Public, "ms");
        require(quantity <= maxPerTx, "tx");
        require((_numMinted[msg.sender] + quantity) <= maxPerWallet, "w");
        require(totalSupply() + quantity <= maxPossibleSupply, "s");

        _safeMint(address(0), msg.sender, quantity);

        _numMinted[msg.sender] += quantity;
        if (totalSupply() == maxPossibleSupply) {
            mintStatus = MintStatus.Finished;
        }
    }

    function giftMint(uint256 quantity, address to) public {
        require(mintStatus == MintStatus.Public, "ms");
        require(quantity <= maxPerTx, "tx");
        require(totalSupply() + quantity <= maxPossibleSupply, "s");

        _safeMint(msg.sender, to, quantity);

        if (totalSupply() == maxPossibleSupply) {
            mintStatus = MintStatus.Finished;
        }
    }

    /********/

    function setBaseURI(string memory baseURI_) public onlyOwnoor {
        _setBaseURI(baseURI_);
    }

    function setPreRevealURI(string memory preRevealURI_) public onlyOwnoor {
        _setPreRevealURI(preRevealURI_);
    }

    function contractURI() public view returns (string memory) {
        return string(
            abi.encodePacked(
                "data:application/json;utf8,{\"name\":\"", name(), "\",",
                "\"description\":\"", description, "\",",
                "\"image\":\"", coverImage, "\"}"
            )
        );
    }

    /********/

    event Yippee(uint256 indexed _howMuch);

    receive() external payable {
        emit Yippee(msg.value);
    }

    function withdraw() public onlyOwnoor {
        (bool success, ) = payable(msg.sender).call{value: address(this).balance}("");
        require(success, "F");
    }

    function withdrawTokens(address tokenAddress) public onlyOwnoor {
        IERC20(tokenAddress).transfer(msg.sender, IERC20(tokenAddress).balanceOf(address(this)));
    }
}

/******************/

File 2 of 10 : ERC72169420.sol
// SPDX-License-Identifier: Unlicense
// Creatoor: Scroungy Labs

pragma solidity ^0.8.9;

//   ____                                                          ________                                        ___
//  /\  _`\                              __                       /\_____  \                                      /\_ \      __
//  \ \ \L\ \   __  __   _ __    ___    /\_\     ___       __     \/____//'/'      __    _____    _____      __   \//\ \    /\_\     ___
//   \ \  _ <' /\ \/\ \ /\`'__\/' _ `\  \/\ \  /' _ `\   /'_ `\        //'/'     /'__`\ /\ '__`\ /\ '__`\  /'__`\   \ \ \   \/\ \  /' _ `\
//    \ \ \L\ \\ \ \_\ \\ \ \/ /\ \/\ \  \ \ \ /\ \/\ \ /\ \L\ \      //'/'___  /\  __/ \ \ \L\ \\ \ \L\ \/\  __/    \_\ \_  \ \ \ /\ \/\ \
//     \ \____/ \ \____/ \ \_\ \ \_\ \_\  \ \_\\ \_\ \_\\ \____ \     /\_______\\ \____\ \ \ ,__/ \ \ ,__/\ \____\   /\____\  \ \_\\ \_\ \_\
//      \/___/   \/___/   \/_/  \/_/\/_/   \/_/ \/_/\/_/ \/___L\ \    \/_______/ \/____/  \ \ \/   \ \ \/  \/____/   \/____/   \/_/ \/_/\/_/
//                                                         /\____/                         \ \_\    \ \_\
//                                                         \_/__/                           \/_/     \/_/
//   ____                                      __                  ____                        __                                __
//  /\  _`\                                   /\ \__              /\  _`\                     /\ \__                            /\ \__
//  \ \,\L\_\     ___ ___       __      _ __  \ \ ,_\             \ \ \/\_\    ___     ___    \ \ ,_\   _ __     __       ___   \ \ ,_\    ____
//   \/_\__ \   /' __` __`\   /'__`\   /\`'__\ \ \ \/              \ \ \/_/_  / __`\ /' _ `\   \ \ \/  /\`'__\ /'__`\    /'___\  \ \ \/   /',__\
//     /\ \L\ \ /\ \/\ \/\ \ /\ \L\.\_ \ \ \/   \ \ \_              \ \ \L\ \/\ \L\ \/\ \/\ \   \ \ \_ \ \ \/ /\ \L\.\_ /\ \__/   \ \ \_ /\__, `\
//     \ `\____\\ \_\ \_\ \_\\ \__/.\_\ \ \_\    \ \__\              \ \____/\ \____/\ \_\ \_\   \ \__\ \ \_\ \ \__/.\_\\ \____\   \ \__\\/\____/
//      \/_____/ \/_/\/_/\/_/ \/__/\/_/  \/_/     \/__/               \/___/  \/___/  \/_/\/_/    \/__/  \/_/  \/__/\/_/ \/____/    \/__/ \/___/

import "./@burningzeppelin/contracts/token/ERC721/IERC721Receivoooor.sol";
import "./@burningzeppelin/contracts/token/ERC721/IERC721.sol";
import "./@burningzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
import "./@burningzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
import "./@burningzeppelin/contracts/utils/introspection/ERC165.sol";

contract ERC72169420 is ERC165 {
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /********/

    mapping(uint256 => address) private _ownerships;
    mapping(address => uint256) private _balanceOf;

    mapping(uint256 => address) _getApproved;
    mapping(address => mapping(address => bool)) public _isApprovedForAll;

    uint256 private _totalSupply = 0;

    string private _name;
    string private _symbol;
    string internal description;
    string internal coverImage;
    address royaltyAddress;

    string private _preRevealURI;
    string private _baseURI;

    uint256 public maxPossibleSupply;

    /********/

    constructor(
        string memory name_,
        string memory symbol_,
        string memory description_,
        string memory coverImage_
    ) {
        _name = name_;
        _symbol = symbol_;
        description = description_;
        coverImage = coverImage_;
    }

    /********/

    function _reee(uint256 _reeeee) internal {
        maxPossibleSupply = _reeeee;
    }

    /********/

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function tokenByIndex(uint256 index) public view returns (uint256) {
        require(index < _totalSupply, "g");
        return index;
    }

    function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {
        require(index < _balanceOf[owner], "b");

        uint256 indexSoFar = 0;
        address currentOwner = address(0);

        for (uint256 i = 0; i < _totalSupply; i++) {
            currentOwner = _ownerships[i] == address(0) ? currentOwner : _ownerships[i];
            if (owner == currentOwner) {
                if (indexSoFar == index) {
                    return i;
                }
                indexSoFar++;
            }
        }
        revert("u");
    }

    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165) returns (bool) {
        return
        interfaceId == type(IERC721).interfaceId ||
        interfaceId == type(IERC721Metadata).interfaceId ||
        interfaceId == type(IERC721Enumerable).interfaceId ||
        super.supportsInterface(interfaceId);
    }

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

    function ownerOf(uint256 tokenId) public view returns (address) {
        require(tokenId < _totalSupply, "t");

        for (uint256 curr = tokenId; curr >= 0; curr--) {
            if (_ownerships[curr] != address(0)) {
                return _ownerships[curr];
            }
        }

        revert("o");
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function tokenURI(uint256 tokenId) public view returns (string memory) {
        require(_exists(tokenId), "z");

        if (bytes(_baseURI).length > 0) {
//            return string(abi.encodePacked(_baseURI, "/", _toString(tokenId), ".json"));
            return string(abi.encodePacked(_baseURI, "/", _toString(tokenId)));
        }
        else {
            return _preRevealURI;
        }
    }

    function baseURI() public view virtual returns (string memory) {
        return _baseURI;
    }

    function _setBaseURI(string memory baseURI_) internal virtual {
        _baseURI = baseURI_;
    }

    function preRevealURI() public view virtual returns (string memory) {
        return _preRevealURI;
    }

    function _setPreRevealURI(string memory preRevealURI_) internal virtual {
        _preRevealURI = preRevealURI_;
    }

    function approve(address to, uint256 tokenId) public {
        address owner = ERC72169420.ownerOf(tokenId);
        require(to != owner, "o");
        require(msg.sender == owner || _isApprovedForAll[owner][msg.sender], "a");

        _approve(to, tokenId, owner);
    }

    function getApproved(uint256 tokenId) public view returns (address) {
        require(_exists(tokenId), "a");

        return _getApproved[tokenId];
    }

    function setApprovalForAll(address operator, bool approved) public {
        require(operator != msg.sender, "a");

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

    function isApprovedForAll(address owner, address operator) public view returns (bool) {
        return _isApprovedForAll[owner][operator];
    }

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public {
        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public {
        safeTransferFrom(from, to, tokenId, "");
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, _data), "z");
    }

    function _safeMint(address from, address to, uint256 quantity) internal {
        _safeMint(from, to, quantity, "");
    }

    function _safeMint(
        address from,
        address to,
        uint256 quantity,
        bytes memory _data
    ) internal {
        _mint(from, to, quantity);
        require(_checkOnERC721Received(address(0), to, _totalSupply - 1, _data), "z");
    }

    function _mint(address from, address to, uint256 quantity) internal {
        uint256 startTokenId = _totalSupply;
        require(to != address(0), "0");
        // We know if the first token in the batch doesn't exist, the other ones don't as well, because of serial ordering.
        require(!_exists(startTokenId), "a");

        _balanceOf[to] += quantity;
        _ownerships[startTokenId] = to;

        uint256 updatedIndex = startTokenId;

        for (uint256 i = 0; i < quantity; i++) {
            if (from != address(0)) {
                emit Transfer(address(0), from, updatedIndex);
            }
            emit Transfer(from, to, updatedIndex);
            updatedIndex++;
        }

        _totalSupply = updatedIndex;
    }

    /********/

    function _exists(uint256 tokenId) internal view returns (bool) {
        return tokenId < _totalSupply;
    }

    function _approve(
        address to,
        uint256 tokenId,
        address owner
    ) private {
        _getApproved[tokenId] = to;
        emit Approval(owner, to, tokenId);
    }

    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) private {
        address prevOwnership = ownerOf(tokenId);

        bool isApprovedOrOwner = (msg.sender == prevOwnership ||
        getApproved(tokenId) == msg.sender ||
        isApprovedForAll(prevOwnership, msg.sender));

        require(isApprovedOrOwner, "a");

        require(prevOwnership == from, "o");
        require(to != address(0), "0");

        // Clear approvals from the previous owner
        _approve(address(0), tokenId, prevOwnership);

        _balanceOf[from] -= 1;
        _balanceOf[to] += 1;
        _ownerships[tokenId] = to;

        // If the ownership slot of tokenId+1 is not explicitly set, that means the transfer initiator owns it.
        // Set the slot of tokenId+1 explicitly in storage to maintain correctness for ownerOf(tokenId+1) calls.
        uint256 nextTokenId = tokenId + 1;
        if (_ownerships[nextTokenId] == address(0)) {
            if (_exists(nextTokenId)) {
                _ownerships[nextTokenId] = prevOwnership;
            }
        }

        emit Transfer(from, to, tokenId);
    }

    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.code.length > 0) {
            try IERC721Receivoooor(to).onERC721Received(msg.sender, from, tokenId, _data) returns (bytes4 retval) {
                return retval == IERC721Receivoooor(to).onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("z");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }

    function _toString(uint256 value) private pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

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

/******************/

File 3 of 10 : Ownabull.sol
// SPDX-License-Identifier: Unlicense
// Creator: Scroungy Labs

pragma solidity ^0.8.9;

//   ____                                                          ________                                        ___
//  /\  _`\                              __                       /\_____  \                                      /\_ \      __
//  \ \ \L\ \   __  __   _ __    ___    /\_\     ___       __     \/____//'/'      __    _____    _____      __   \//\ \    /\_\     ___
//   \ \  _ <' /\ \/\ \ /\`'__\/' _ `\  \/\ \  /' _ `\   /'_ `\        //'/'     /'__`\ /\ '__`\ /\ '__`\  /'__`\   \ \ \   \/\ \  /' _ `\
//    \ \ \L\ \\ \ \_\ \\ \ \/ /\ \/\ \  \ \ \ /\ \/\ \ /\ \L\ \      //'/'___  /\  __/ \ \ \L\ \\ \ \L\ \/\  __/    \_\ \_  \ \ \ /\ \/\ \
//     \ \____/ \ \____/ \ \_\ \ \_\ \_\  \ \_\\ \_\ \_\\ \____ \     /\_______\\ \____\ \ \ ,__/ \ \ ,__/\ \____\   /\____\  \ \_\\ \_\ \_\
//      \/___/   \/___/   \/_/  \/_/\/_/   \/_/ \/_/\/_/ \/___L\ \    \/_______/ \/____/  \ \ \/   \ \ \/  \/____/   \/____/   \/_/ \/_/\/_/
//                                                         /\____/                         \ \_\    \ \_\
//                                                         \_/__/                           \/_/     \/_/
//   ____                                      __                  ____                        __                                __
//  /\  _`\                                   /\ \__              /\  _`\                     /\ \__                            /\ \__
//  \ \,\L\_\     ___ ___       __      _ __  \ \ ,_\             \ \ \/\_\    ___     ___    \ \ ,_\   _ __     __       ___   \ \ ,_\    ____
//   \/_\__ \   /' __` __`\   /'__`\   /\`'__\ \ \ \/              \ \ \/_/_  / __`\ /' _ `\   \ \ \/  /\`'__\ /'__`\    /'___\  \ \ \/   /',__\
//     /\ \L\ \ /\ \/\ \/\ \ /\ \L\.\_ \ \ \/   \ \ \_              \ \ \L\ \/\ \L\ \/\ \/\ \   \ \ \_ \ \ \/ /\ \L\.\_ /\ \__/   \ \ \_ /\__, `\
//     \ `\____\\ \_\ \_\ \_\\ \__/.\_\ \ \_\    \ \__\              \ \____/\ \____/\ \_\ \_\   \ \__\ \ \_\ \ \__/.\_\\ \____\   \ \__\\/\____/
//      \/_____/ \/_/\/_/\/_/ \/__/\/_/  \/_/     \/__/               \/___/  \/___/  \/_/\/_/    \/__/  \/_/  \/__/\/_/ \/____/    \/__/ \/___/

contract Ownabull {
    address public ownoor;

    modifier onlyOwnoor() {
        _isOwnoor();
        _;
    }
    function _isOwnoor() internal view virtual {
        require(msg.sender == ownoor, "oo");
    }

    constructor() {
        ownoor = msg.sender;
    }

    function transferOwnoorship(address newOwnoor) public onlyOwnoor {
        ownoor = newOwnoor;
    }

    function renounceOwnoorship() public onlyOwnoor {
        ownoor = address(0);
    }
}

File 4 of 10 : IERC20.sol
// SPDX-License-Identifier: Unlicense
// Creatoor: Scroungy Labs
// BurningZeppelin Contracts (last updated v0.0.1) (token/ERC20/IERC20.sol)

pragma solidity 0.8.9;

//   ____                                                          ________                                        ___
//  /\  _`\                              __                       /\_____  \                                      /\_ \      __
//  \ \ \L\ \   __  __   _ __    ___    /\_\     ___       __     \/____//'/'      __    _____    _____      __   \//\ \    /\_\     ___
//   \ \  _ <' /\ \/\ \ /\`'__\/' _ `\  \/\ \  /' _ `\   /'_ `\        //'/'     /'__`\ /\ '__`\ /\ '__`\  /'__`\   \ \ \   \/\ \  /' _ `\
//    \ \ \L\ \\ \ \_\ \\ \ \/ /\ \/\ \  \ \ \ /\ \/\ \ /\ \L\ \      //'/'___  /\  __/ \ \ \L\ \\ \ \L\ \/\  __/    \_\ \_  \ \ \ /\ \/\ \
//     \ \____/ \ \____/ \ \_\ \ \_\ \_\  \ \_\\ \_\ \_\\ \____ \     /\_______\\ \____\ \ \ ,__/ \ \ ,__/\ \____\   /\____\  \ \_\\ \_\ \_\
//      \/___/   \/___/   \/_/  \/_/\/_/   \/_/ \/_/\/_/ \/___L\ \    \/_______/ \/____/  \ \ \/   \ \ \/  \/____/   \/____/   \/_/ \/_/\/_/
//                                                         /\____/                         \ \_\    \ \_\
//                                                         \_/__/                           \/_/     \/_/
//   ____                                      __                  ____                        __                                __
//  /\  _`\                                   /\ \__              /\  _`\                     /\ \__                            /\ \__
//  \ \,\L\_\     ___ ___       __      _ __  \ \ ,_\             \ \ \/\_\    ___     ___    \ \ ,_\   _ __     __       ___   \ \ ,_\    ____
//   \/_\__ \   /' __` __`\   /'__`\   /\`'__\ \ \ \/              \ \ \/_/_  / __`\ /' _ `\   \ \ \/  /\`'__\ /'__`\    /'___\  \ \ \/   /',__\
//     /\ \L\ \ /\ \/\ \/\ \ /\ \L\.\_ \ \ \/   \ \ \_              \ \ \L\ \/\ \L\ \/\ \/\ \   \ \ \_ \ \ \/ /\ \L\.\_ /\ \__/   \ \ \_ /\__, `\
//     \ `\____\\ \_\ \_\ \_\\ \__/.\_\ \ \_\    \ \__\              \ \____/\ \____/\ \_\ \_\   \ \__\ \ \_\ \ \__/.\_\\ \____\   \ \__\\/\____/
//      \/_____/ \/_/\/_/\/_/ \/__/\/_/  \/_/     \/__/               \/___/  \/___/  \/_/\/_/    \/__/  \/_/  \/__/\/_/ \/____/    \/__/ \/___/

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 5 of 10 : IERC721Enumerable.sol
// SPDX-License-Identifier: Unlicense
// Creatoor: Scroungy Labs
// BurningZeppelin Contracts (last updated v0.0.1) (token/ERC721/extensions/IERC721Enumerable.sol)

pragma solidity 0.8.9;

//   ____                                                          ________                                        ___
//  /\  _`\                              __                       /\_____  \                                      /\_ \      __
//  \ \ \L\ \   __  __   _ __    ___    /\_\     ___       __     \/____//'/'      __    _____    _____      __   \//\ \    /\_\     ___
//   \ \  _ <' /\ \/\ \ /\`'__\/' _ `\  \/\ \  /' _ `\   /'_ `\        //'/'     /'__`\ /\ '__`\ /\ '__`\  /'__`\   \ \ \   \/\ \  /' _ `\
//    \ \ \L\ \\ \ \_\ \\ \ \/ /\ \/\ \  \ \ \ /\ \/\ \ /\ \L\ \      //'/'___  /\  __/ \ \ \L\ \\ \ \L\ \/\  __/    \_\ \_  \ \ \ /\ \/\ \
//     \ \____/ \ \____/ \ \_\ \ \_\ \_\  \ \_\\ \_\ \_\\ \____ \     /\_______\\ \____\ \ \ ,__/ \ \ ,__/\ \____\   /\____\  \ \_\\ \_\ \_\
//      \/___/   \/___/   \/_/  \/_/\/_/   \/_/ \/_/\/_/ \/___L\ \    \/_______/ \/____/  \ \ \/   \ \ \/  \/____/   \/____/   \/_/ \/_/\/_/
//                                                         /\____/                         \ \_\    \ \_\
//                                                         \_/__/                           \/_/     \/_/
//   ____                                      __                  ____                        __                                __
//  /\  _`\                                   /\ \__              /\  _`\                     /\ \__                            /\ \__
//  \ \,\L\_\     ___ ___       __      _ __  \ \ ,_\             \ \ \/\_\    ___     ___    \ \ ,_\   _ __     __       ___   \ \ ,_\    ____
//   \/_\__ \   /' __` __`\   /'__`\   /\`'__\ \ \ \/              \ \ \/_/_  / __`\ /' _ `\   \ \ \/  /\`'__\ /'__`\    /'___\  \ \ \/   /',__\
//     /\ \L\ \ /\ \/\ \/\ \ /\ \L\.\_ \ \ \/   \ \ \_              \ \ \L\ \/\ \L\ \/\ \/\ \   \ \ \_ \ \ \/ /\ \L\.\_ /\ \__/   \ \ \_ /\__, `\
//     \ `\____\\ \_\ \_\ \_\\ \__/.\_\ \ \_\    \ \__\              \ \____/\ \____/\ \_\ \_\   \ \__\ \ \_\ \ \__/.\_\\ \____\   \ \__\\/\____/
//      \/_____/ \/_/\/_/\/_/ \/__/\/_/  \/_/     \/__/               \/___/  \/___/  \/_/\/_/    \/__/  \/_/  \/__/\/_/ \/____/    \/__/ \/___/

import "../IERC721.sol";

interface IERC721Enumerable is IERC721 {
    function totalSupply() external view returns (uint256);
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);
    function tokenByIndex(uint256 index) external view returns (uint256);
}

File 6 of 10 : IERC721Metadata.sol
// SPDX-License-Identifier: Unlicense
// Creatoor: Scroungy Labs
// BurningZeppelin Contracts v0.0.1 (token/ERC721/extensions/IERC721Metadata.sol)

pragma solidity 0.8.9;

//   ____                                                          ________                                        ___
//  /\  _`\                              __                       /\_____  \                                      /\_ \      __
//  \ \ \L\ \   __  __   _ __    ___    /\_\     ___       __     \/____//'/'      __    _____    _____      __   \//\ \    /\_\     ___
//   \ \  _ <' /\ \/\ \ /\`'__\/' _ `\  \/\ \  /' _ `\   /'_ `\        //'/'     /'__`\ /\ '__`\ /\ '__`\  /'__`\   \ \ \   \/\ \  /' _ `\
//    \ \ \L\ \\ \ \_\ \\ \ \/ /\ \/\ \  \ \ \ /\ \/\ \ /\ \L\ \      //'/'___  /\  __/ \ \ \L\ \\ \ \L\ \/\  __/    \_\ \_  \ \ \ /\ \/\ \
//     \ \____/ \ \____/ \ \_\ \ \_\ \_\  \ \_\\ \_\ \_\\ \____ \     /\_______\\ \____\ \ \ ,__/ \ \ ,__/\ \____\   /\____\  \ \_\\ \_\ \_\
//      \/___/   \/___/   \/_/  \/_/\/_/   \/_/ \/_/\/_/ \/___L\ \    \/_______/ \/____/  \ \ \/   \ \ \/  \/____/   \/____/   \/_/ \/_/\/_/
//                                                         /\____/                         \ \_\    \ \_\
//                                                         \_/__/                           \/_/     \/_/
//   ____                                      __                  ____                        __                                __
//  /\  _`\                                   /\ \__              /\  _`\                     /\ \__                            /\ \__
//  \ \,\L\_\     ___ ___       __      _ __  \ \ ,_\             \ \ \/\_\    ___     ___    \ \ ,_\   _ __     __       ___   \ \ ,_\    ____
//   \/_\__ \   /' __` __`\   /'__`\   /\`'__\ \ \ \/              \ \ \/_/_  / __`\ /' _ `\   \ \ \/  /\`'__\ /'__`\    /'___\  \ \ \/   /',__\
//     /\ \L\ \ /\ \/\ \/\ \ /\ \L\.\_ \ \ \/   \ \ \_              \ \ \L\ \/\ \L\ \/\ \/\ \   \ \ \_ \ \ \/ /\ \L\.\_ /\ \__/   \ \ \_ /\__, `\
//     \ `\____\\ \_\ \_\ \_\\ \__/.\_\ \ \_\    \ \__\              \ \____/\ \____/\ \_\ \_\   \ \__\ \ \_\ \ \__/.\_\\ \____\   \ \__\\/\____/
//      \/_____/ \/_/\/_/\/_/ \/__/\/_/  \/_/     \/__/               \/___/  \/___/  \/_/\/_/    \/__/  \/_/  \/__/\/_/ \/____/    \/__/ \/___/

import "../IERC721.sol";

interface IERC721Metadata is IERC721 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

/******************/

File 7 of 10 : ERC165.sol
// SPDX-License-Identifier: Unlicense
// Creator: Scroungy Labs
// BurningZeppelin Contracts v0.0.1 (utils/introspection/ERC165.sol)

pragma solidity 0.8.9;

//   ____                                                          ________                                        ___
//  /\  _`\                              __                       /\_____  \                                      /\_ \      __
//  \ \ \L\ \   __  __   _ __    ___    /\_\     ___       __     \/____//'/'      __    _____    _____      __   \//\ \    /\_\     ___
//   \ \  _ <' /\ \/\ \ /\`'__\/' _ `\  \/\ \  /' _ `\   /'_ `\        //'/'     /'__`\ /\ '__`\ /\ '__`\  /'__`\   \ \ \   \/\ \  /' _ `\
//    \ \ \L\ \\ \ \_\ \\ \ \/ /\ \/\ \  \ \ \ /\ \/\ \ /\ \L\ \      //'/'___  /\  __/ \ \ \L\ \\ \ \L\ \/\  __/    \_\ \_  \ \ \ /\ \/\ \
//     \ \____/ \ \____/ \ \_\ \ \_\ \_\  \ \_\\ \_\ \_\\ \____ \     /\_______\\ \____\ \ \ ,__/ \ \ ,__/\ \____\   /\____\  \ \_\\ \_\ \_\
//      \/___/   \/___/   \/_/  \/_/\/_/   \/_/ \/_/\/_/ \/___L\ \    \/_______/ \/____/  \ \ \/   \ \ \/  \/____/   \/____/   \/_/ \/_/\/_/
//                                                         /\____/                         \ \_\    \ \_\
//                                                         \_/__/                           \/_/     \/_/
//   ____                                      __                  ____                        __                                __
//  /\  _`\                                   /\ \__              /\  _`\                     /\ \__                            /\ \__
//  \ \,\L\_\     ___ ___       __      _ __  \ \ ,_\             \ \ \/\_\    ___     ___    \ \ ,_\   _ __     __       ___   \ \ ,_\    ____
//   \/_\__ \   /' __` __`\   /'__`\   /\`'__\ \ \ \/              \ \ \/_/_  / __`\ /' _ `\   \ \ \/  /\`'__\ /'__`\    /'___\  \ \ \/   /',__\
//     /\ \L\ \ /\ \/\ \/\ \ /\ \L\.\_ \ \ \/   \ \ \_              \ \ \L\ \/\ \L\ \/\ \/\ \   \ \ \_ \ \ \/ /\ \L\.\_ /\ \__/   \ \ \_ /\__, `\
//     \ `\____\\ \_\ \_\ \_\\ \__/.\_\ \ \_\    \ \__\              \ \____/\ \____/\ \_\ \_\   \ \__\ \ \_\ \ \__/.\_\\ \____\   \ \__\\/\____/
//      \/_____/ \/_/\/_/\/_/ \/__/\/_/  \/_/     \/__/               \/___/  \/___/  \/_/\/_/    \/__/  \/_/  \/__/\/_/ \/____/    \/__/ \/___/

import "./IERC165.sol";

abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

File 8 of 10 : IERC721.sol
// SPDX-License-Identifier: Unlicense
// Creatoor: Scroungy Labs
// BurningZeppelin Contracts (last updated v0.0.1) (token/ERC721/IERC721.sol)

pragma solidity ^0.8.9;

//   ____                                                          ________                                        ___
//  /\  _`\                              __                       /\_____  \                                      /\_ \      __
//  \ \ \L\ \   __  __   _ __    ___    /\_\     ___       __     \/____//'/'      __    _____    _____      __   \//\ \    /\_\     ___
//   \ \  _ <' /\ \/\ \ /\`'__\/' _ `\  \/\ \  /' _ `\   /'_ `\        //'/'     /'__`\ /\ '__`\ /\ '__`\  /'__`\   \ \ \   \/\ \  /' _ `\
//    \ \ \L\ \\ \ \_\ \\ \ \/ /\ \/\ \  \ \ \ /\ \/\ \ /\ \L\ \      //'/'___  /\  __/ \ \ \L\ \\ \ \L\ \/\  __/    \_\ \_  \ \ \ /\ \/\ \
//     \ \____/ \ \____/ \ \_\ \ \_\ \_\  \ \_\\ \_\ \_\\ \____ \     /\_______\\ \____\ \ \ ,__/ \ \ ,__/\ \____\   /\____\  \ \_\\ \_\ \_\
//      \/___/   \/___/   \/_/  \/_/\/_/   \/_/ \/_/\/_/ \/___L\ \    \/_______/ \/____/  \ \ \/   \ \ \/  \/____/   \/____/   \/_/ \/_/\/_/
//                                                         /\____/                         \ \_\    \ \_\
//                                                         \_/__/                           \/_/     \/_/
//   ____                                      __                  ____                        __                                __
//  /\  _`\                                   /\ \__              /\  _`\                     /\ \__                            /\ \__
//  \ \,\L\_\     ___ ___       __      _ __  \ \ ,_\             \ \ \/\_\    ___     ___    \ \ ,_\   _ __     __       ___   \ \ ,_\    ____
//   \/_\__ \   /' __` __`\   /'__`\   /\`'__\ \ \ \/              \ \ \/_/_  / __`\ /' _ `\   \ \ \/  /\`'__\ /'__`\    /'___\  \ \ \/   /',__\
//     /\ \L\ \ /\ \/\ \/\ \ /\ \L\.\_ \ \ \/   \ \ \_              \ \ \L\ \/\ \L\ \/\ \/\ \   \ \ \_ \ \ \/ /\ \L\.\_ /\ \__/   \ \ \_ /\__, `\
//     \ `\____\\ \_\ \_\ \_\\ \__/.\_\ \ \_\    \ \__\              \ \____/\ \____/\ \_\ \_\   \ \__\ \ \_\ \ \__/.\_\\ \____\   \ \__\\/\____/
//      \/_____/ \/_/\/_/\/_/ \/__/\/_/  \/_/     \/__/               \/___/  \/___/  \/_/\/_/    \/__/  \/_/  \/__/\/_/ \/____/    \/__/ \/___/

import "../../utils/introspection/IERC165.sol";

interface IERC721 is IERC165 {
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    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,
        bytes calldata data
    ) external;
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;
    function approve(address to, uint256 tokenId) external;
    function setApprovalForAll(address operator, bool _approved) external;
    function getApproved(uint256 tokenId) external view returns (address operator);
    function isApprovedForAll(address owner, address operator) external view returns (bool);
}

/******************/

File 9 of 10 : IERC721Receivoooor.sol
// SPDX-License-Identifier: Unlicense
// Creator: Scroungy Labs
// BurningZeppelin Contracts (last updated v-0.0.1) (token/ERC721/IERC721Receivoooor.sol)

pragma solidity ^0.8.9;

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

/******************/

File 10 of 10 : IERC165.sol
// SPDX-License-Identifier: Unlicense
// Creator: Scroungy Labs
// BurningZeppelin Contracts v0.0.1 (utils/introspection/IERC165.sol)

pragma solidity 0.8.9;

//   ____                                                          ________                                        ___
//  /\  _`\                              __                       /\_____  \                                      /\_ \      __
//  \ \ \L\ \   __  __   _ __    ___    /\_\     ___       __     \/____//'/'      __    _____    _____      __   \//\ \    /\_\     ___
//   \ \  _ <' /\ \/\ \ /\`'__\/' _ `\  \/\ \  /' _ `\   /'_ `\        //'/'     /'__`\ /\ '__`\ /\ '__`\  /'__`\   \ \ \   \/\ \  /' _ `\
//    \ \ \L\ \\ \ \_\ \\ \ \/ /\ \/\ \  \ \ \ /\ \/\ \ /\ \L\ \      //'/'___  /\  __/ \ \ \L\ \\ \ \L\ \/\  __/    \_\ \_  \ \ \ /\ \/\ \
//     \ \____/ \ \____/ \ \_\ \ \_\ \_\  \ \_\\ \_\ \_\\ \____ \     /\_______\\ \____\ \ \ ,__/ \ \ ,__/\ \____\   /\____\  \ \_\\ \_\ \_\
//      \/___/   \/___/   \/_/  \/_/\/_/   \/_/ \/_/\/_/ \/___L\ \    \/_______/ \/____/  \ \ \/   \ \ \/  \/____/   \/____/   \/_/ \/_/\/_/
//                                                         /\____/                         \ \_\    \ \_\
//                                                         \_/__/                           \/_/     \/_/
//   ____                                      __                  ____                        __                                __
//  /\  _`\                                   /\ \__              /\  _`\                     /\ \__                            /\ \__
//  \ \,\L\_\     ___ ___       __      _ __  \ \ ,_\             \ \ \/\_\    ___     ___    \ \ ,_\   _ __     __       ___   \ \ ,_\    ____
//   \/_\__ \   /' __` __`\   /'__`\   /\`'__\ \ \ \/              \ \ \/_/_  / __`\ /' _ `\   \ \ \/  /\`'__\ /'__`\    /'___\  \ \ \/   /',__\
//     /\ \L\ \ /\ \/\ \/\ \ /\ \L\.\_ \ \ \/   \ \ \_              \ \ \L\ \/\ \L\ \/\ \/\ \   \ \ \_ \ \ \/ /\ \L\.\_ /\ \__/   \ \ \_ /\__, `\
//     \ `\____\\ \_\ \_\ \_\\ \__/.\_\ \ \_\    \ \__\              \ \____/\ \____/\ \_\ \_\   \ \__\ \ \_\ \ \__/.\_\\ \____\   \ \__\\/\____/
//      \/_____/ \/_/\/_/\/_/ \/__/\/_/  \/_/     \/__/               \/___/  \/___/  \/_/\/_/    \/__/  \/_/  \/__/\/_/ \/____/    \/__/ \/___/

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

/******************/

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"description_","type":"string"},{"internalType":"string","name":"coverImage_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","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":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_howMuch","type":"uint256"}],"name":"Yippee","type":"event"},{"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":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum V0Doodles.MintStatus","name":"newMintStatus","type":"uint8"}],"name":"changeMintStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"giftMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPossibleSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mintPublic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintStatus","outputs":[{"internalType":"enum V0Doodles.MintStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownoor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"times","type":"uint256"}],"name":"preMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"preRevealURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reeeeeeeee","type":"uint256"}],"name":"reeeeeeeee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnoorship","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","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":"tokenId","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":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"preRevealURI_","type":"string"}],"name":"setPreRevealURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwnoor","type":"address"}],"name":"transferOwnoorship","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600455600a600f5560646010553480156200002057600080fd5b50604051620045883803806200458883398181016040528101906200004691906200034a565b83838383836005908051906020019062000062929190620000fd565b5082600690805190602001906200007b929190620000fd565b50816007908051906020019062000094929190620000fd565b508060089080519060200190620000ad929190620000fd565b505050505033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506200049d565b8280546200010b9062000467565b90600052602060002090601f0160209004810192826200012f57600085556200017b565b82601f106200014a57805160ff19168380011785556200017b565b828001600101855582156200017b579182015b828111156200017a5782518255916020019190600101906200015d565b5b5090506200018a91906200018e565b5090565b5b80821115620001a95760008160009055506001016200018f565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200021682620001cb565b810181811067ffffffffffffffff82111715620002385762000237620001dc565b5b80604052505050565b60006200024d620001ad565b90506200025b82826200020b565b919050565b600067ffffffffffffffff8211156200027e576200027d620001dc565b5b6200028982620001cb565b9050602081019050919050565b60005b83811015620002b657808201518184015260208101905062000299565b83811115620002c6576000848401525b50505050565b6000620002e3620002dd8462000260565b62000241565b905082815260208101848484011115620003025762000301620001c6565b5b6200030f84828562000296565b509392505050565b600082601f8301126200032f576200032e620001c1565b5b815162000341848260208601620002cc565b91505092915050565b60008060008060808587031215620003675762000366620001b7565b5b600085015167ffffffffffffffff811115620003885762000387620001bc565b5b620003968782880162000317565b945050602085015167ffffffffffffffff811115620003ba57620003b9620001bc565b5b620003c88782880162000317565b935050604085015167ffffffffffffffff811115620003ec57620003eb620001bc565b5b620003fa8782880162000317565b925050606085015167ffffffffffffffff8111156200041e576200041d620001bc565b5b6200042c8782880162000317565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200048057607f821691505b6020821081141562000497576200049662000438565b5b50919050565b6140db80620004ad6000396000f3fe6080604052600436106101fd5760003560e01c806358e80b401161010d5780639da3f8fd116100a0578063bd475fed1161006f578063bd475fed14610765578063c87b56dd1461077c578063e8a3d485146107b9578063e985e9c5146107e4578063efd0cbf91461082157610231565b80639da3f8fd146106bf578063a22cb465146106ea578063b20e628d14610713578063b88d4fde1461073c57610231565b806379b6ed36116100dc57806379b6ed36146106175780637cac2602146106425780638f566abb1461066b57806395d89b411461069457610231565b806358e80b40146105495780636352211e146105725780636c0360eb146105af57806370a08231146105da57610231565b80632d95fdb5116101905780633ccfd60b1161015f5780633ccfd60b1461047a57806342842e0e1461049157806349df728c146104ba5780634f6ccce7146104e357806355f804b31461052057610231565b80632d95fdb5146103aa5780632f745c59146103e757806334eaf23d14610424578063386b76911461044f57610231565b80630e17d598116101cc5780630e17d5981461030457806318160ddd1461032d57806323b872dd146103585780632a85db551461038157610231565b806301ffc9a71461023657806306fdde0314610273578063081812fc1461029e578063095ea7b3146102db57610231565b3661023157347f806579a8533e14b5e3a06449c7ee00e2909280929a6d04826aa744a572071e0860405160405180910390a2005b600080fd5b34801561024257600080fd5b5061025d60048036038101906102589190612b16565b61084a565b60405161026a9190612b5e565b60405180910390f35b34801561027f57600080fd5b50610288610994565b6040516102959190612c12565b60405180910390f35b3480156102aa57600080fd5b506102c560048036038101906102c09190612c6a565b610a26565b6040516102d29190612cd8565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190612d1f565b610aab565b005b34801561031057600080fd5b5061032b60048036038101906103269190612c6a565b610c36565b005b34801561033957600080fd5b50610342610c4a565b60405161034f9190612d6e565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a9190612d89565b610c54565b005b34801561038d57600080fd5b506103a860048036038101906103a39190612f11565b610c64565b005b3480156103b657600080fd5b506103d160048036038101906103cc9190612f5a565b610c78565b6040516103de9190612b5e565b60405180910390f35b3480156103f357600080fd5b5061040e60048036038101906104099190612d1f565b610ca7565b60405161041b9190612d6e565b60405180910390f35b34801561043057600080fd5b50610439610e87565b6040516104469190612cd8565b60405180910390f35b34801561045b57600080fd5b50610464610ead565b6040516104719190612d6e565b60405180910390f35b34801561048657600080fd5b5061048f610eb3565b005b34801561049d57600080fd5b506104b860048036038101906104b39190612d89565b610f6a565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190612f9a565b610f8a565b005b3480156104ef57600080fd5b5061050a60048036038101906105059190612c6a565b6110ab565b6040516105179190612d6e565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190612f11565b6110f9565b005b34801561055557600080fd5b50610570600480360381019061056b9190612fc7565b61110d565b005b34801561057e57600080fd5b5061059960048036038101906105949190612c6a565b6111bb565b6040516105a69190612cd8565b60405180910390f35b3480156105bb57600080fd5b506105c4611304565b6040516105d19190612c12565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190612f9a565b611396565b60405161060e9190612d6e565b60405180910390f35b34801561062357600080fd5b5061062c61144e565b6040516106399190612c12565b60405180910390f35b34801561064e57600080fd5b506106696004803603810190610664919061303f565b6114e0565b005b34801561067757600080fd5b50610692600480360381019061068d919061306c565b61157d565b005b3480156106a057600080fd5b506106a96116db565b6040516106b69190612c12565b60405180910390f35b3480156106cb57600080fd5b506106d461176d565b6040516106e19190613123565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c919061316a565b611780565b005b34801561071f57600080fd5b5061073a60048036038101906107359190612f9a565b6118ec565b005b34801561074857600080fd5b50610763600480360381019061075e919061324b565b611938565b005b34801561077157600080fd5b5061077a611994565b005b34801561078857600080fd5b506107a3600480360381019061079e9190612c6a565b6119e0565b6040516107b09190612c12565b60405180910390f35b3480156107c557600080fd5b506107ce611b06565b6040516107db9190612c12565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190612f5a565b611b3a565b6040516108189190612b5e565b60405180910390f35b34801561082d57600080fd5b5061084860048036038101906108439190612c6a565b611bce565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061091557507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061097d57507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061098d575061098c82611e11565b5b9050919050565b6060600580546109a3906132fd565b80601f01602080910402602001604051908101604052809291908181526020018280546109cf906132fd565b8015610a1c5780601f106109f157610100808354040283529160200191610a1c565b820191906000526020600020905b8154815290600101906020018083116109ff57829003601f168201915b5050505050905090565b6000610a3182611e7b565b610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061337b565b60405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610ab6826111bb565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e906133e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610be75750600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d9061337b565b60405180910390fd5b610c31838383611e89565b505050565b610c3e611f3b565b610c4781611fcd565b50565b6000600454905090565b610c5f838383611fd7565b505050565b610c6c611f3b565b610c75816123c9565b50565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190613453565b60405180910390fd5b60008060005b600454811015610e4557600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd85760008082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610dda565b815b91508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610e325784831415610e2357809350505050610e81565b8280610e2e906134a2565b9350505b8080610e3d906134a2565b915050610d30565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7890613537565b60405180910390fd5b92915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b610ebb611f3b565b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610ee190613588565b60006040518083038185875af1925050503d8060008114610f1e576040519150601f19603f3d011682016040523d82523d6000602084013e610f23565b606091505b5050905080610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e906135e9565b60405180910390fd5b50565b610f8583838360405180602001604052806000815250611938565b505050565b610f92611f3b565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fe89190612cd8565b60206040518083038186803b15801561100057600080fd5b505afa158015611014573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611038919061361e565b6040518363ffffffff1660e01b815260040161105592919061364b565b602060405180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a79190613689565b5050565b600060045482106110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e890613702565b60405180910390fd5b819050919050565b611101611f3b565b61110a816123e3565b50565b611115611f3b565b60006002811115611129576111286130ac565b5b601160009054906101000a900460ff16600281111561114b5761114a6130ac565b5b1461118b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111829061376e565b60405180910390fd5b60005b818110156111b5576111a2600085856123fd565b80806111ad906134a2565b91505061118e565b50505050565b60006004548210611201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f8906137da565b60405180910390fd5b60008290505b600081106112c357600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b05760008082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150506112ff565b80806112bb906137fa565b915050611207565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f6906133e7565b60405180910390fd5b919050565b6060600b8054611313906132fd565b80601f016020809104026020016040519081016040528092919081815260200182805461133f906132fd565b801561138c5780601f106113615761010080835404028352916020019161138c565b820191906000526020600020905b81548152906001019060200180831161136f57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613870565b60405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600a805461145d906132fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611489906132fd565b80156114d65780601f106114ab576101008083540402835291602001916114d6565b820191906000526020600020905b8154815290600101906020018083116114b957829003601f168201915b5050505050905090565b6114e8611f3b565b600060028111156114fc576114fb6130ac565b5b81600281111561150f5761150e6130ac565b5b1415611550576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115479061376e565b60405180910390fd5b80601160006101000a81548160ff02191690836002811115611575576115746130ac565b5b021790555050565b60016002811115611591576115906130ac565b5b601160009054906101000a900460ff1660028111156115b3576115b26130ac565b5b146115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea906138dc565b60405180910390fd5b600f54821115611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162f90613948565b60405180910390fd5b600c5482611644610c4a565b61164e9190613968565b111561168f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168690613a0a565b60405180910390fd5b61169a3382846123fd565b600c546116a5610c4a565b14156116d7576002601160006101000a81548160ff021916908360028111156116d1576116d06130ac565b5b02179055505b5050565b6060600680546116ea906132fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611716906132fd565b80156117635780601f1061173857610100808354040283529160200191611763565b820191906000526020600020905b81548152906001019060200180831161174657829003601f168201915b5050505050905090565b601160009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e69061337b565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118e09190612b5e565b60405180910390a35050565b6118f4611f3b565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611943848484611fd7565b61194f8484848461241d565b61198e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198590613a76565b60405180910390fd5b50505050565b61199c611f3b565b6000600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606119eb82611e7b565b611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190613a76565b60405180910390fd5b6000600b8054611a39906132fd565b90501115611a7357600b611a4c836125a8565b604051602001611a5d929190613bb2565b6040516020818303038152906040529050611b01565b600a8054611a80906132fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611aac906132fd565b8015611af95780601f10611ace57610100808354040283529160200191611af9565b820191906000526020600020905b815481529060010190602001808311611adc57829003601f168201915b505050505090505b919050565b6060611b10610994565b60076008604051602001611b2693929190613d83565b604051602081830303815290604052905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60016002811115611be257611be16130ac565b5b601160009054906101000a900460ff166002811115611c0457611c036130ac565b5b14611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b906138dc565b60405180910390fd5b600f54811115611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8090613948565b60405180910390fd5b60105481600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd79190613968565b1115611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f90613e42565b60405180910390fd5b600c5481611d24610c4a565b611d2e9190613968565b1115611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613a0a565b60405180910390fd5b611d7b600033836123fd565b80600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dca9190613968565b92505081905550600c54611ddc610c4a565b1415611e0e576002601160006101000a81548160ff02191690836002811115611e0857611e076130ac565b5b02179055505b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600060045482109050919050565b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613eae565b60405180910390fd5b565b80600c8190555050565b6000611fe2826111bb565b905060008173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061205357503373ffffffffffffffffffffffffffffffffffffffff1661203b84610a26565b73ffffffffffffffffffffffffffffffffffffffff16145b8061206457506120638233611b3a565b5b9050806120a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209d9061337b565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210b906133e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90613870565b60405180910390fd5b61219060008484611e89565b60018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121df9190613ece565b9250508190555060018060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122359190613968565b925050819055508360008085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060018461229c9190613968565b9050600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123665761230e81611e7b565b15612365578260008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b80600a90805190602001906123df929190612a07565b5050565b80600b90805190602001906123f9929190612a07565b5050565b61241883838360405180602001604052806000815250612709565b505050565b6000808473ffffffffffffffffffffffffffffffffffffffff163b111561259b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b815260040161247d9493929190613f57565b602060405180830381600087803b15801561249757600080fd5b505af19250505080156124c857506040513d601f19601f820116820180604052508101906124c59190613fb8565b60015b61254b573d80600081146124f8576040519150601f19603f3d011682016040523d82523d6000602084013e6124fd565b606091505b50600081511415612543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253a90613a76565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506125a0565b600190505b949350505050565b606060008214156125f0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612704565b600082905060005b6000821461262257808061260b906134a2565b915050600a8261261b9190614014565b91506125f8565b60008167ffffffffffffffff81111561263e5761263d612de6565b5b6040519080825280601f01601f1916602001820160405280156126705781602001600182028036833780820191505090505b5090505b600085146126fd576001826126899190613ece565b9150600a856126989190614045565b60306126a49190613968565b60f81b8183815181106126ba576126b9614076565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856126f69190614014565b9450612674565b8093505050505b919050565b612714848484612774565b61272f60008460016004546127299190613ece565b8461241d565b61276e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276590613a76565b60405180910390fd5b50505050565b60006004549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e290613870565b60405180910390fd5b6127f481611e7b565b15612834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282b9061337b565b60405180910390fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128839190613968565b925050819055508260008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600081905060005b838110156129f857600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461297c57818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b818573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a481806129e2906134a2565b92505080806129f0906134a2565b9150506128e3565b50806004819055505050505050565b828054612a13906132fd565b90600052602060002090601f016020900481019282612a355760008555612a7c565b82601f10612a4e57805160ff1916838001178555612a7c565b82800160010185558215612a7c579182015b82811115612a7b578251825591602001919060010190612a60565b5b509050612a899190612a8d565b5090565b5b80821115612aa6576000816000905550600101612a8e565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612af381612abe565b8114612afe57600080fd5b50565b600081359050612b1081612aea565b92915050565b600060208284031215612b2c57612b2b612ab4565b5b6000612b3a84828501612b01565b91505092915050565b60008115159050919050565b612b5881612b43565b82525050565b6000602082019050612b736000830184612b4f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bb3578082015181840152602081019050612b98565b83811115612bc2576000848401525b50505050565b6000601f19601f8301169050919050565b6000612be482612b79565b612bee8185612b84565b9350612bfe818560208601612b95565b612c0781612bc8565b840191505092915050565b60006020820190508181036000830152612c2c8184612bd9565b905092915050565b6000819050919050565b612c4781612c34565b8114612c5257600080fd5b50565b600081359050612c6481612c3e565b92915050565b600060208284031215612c8057612c7f612ab4565b5b6000612c8e84828501612c55565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cc282612c97565b9050919050565b612cd281612cb7565b82525050565b6000602082019050612ced6000830184612cc9565b92915050565b612cfc81612cb7565b8114612d0757600080fd5b50565b600081359050612d1981612cf3565b92915050565b60008060408385031215612d3657612d35612ab4565b5b6000612d4485828601612d0a565b9250506020612d5585828601612c55565b9150509250929050565b612d6881612c34565b82525050565b6000602082019050612d836000830184612d5f565b92915050565b600080600060608486031215612da257612da1612ab4565b5b6000612db086828701612d0a565b9350506020612dc186828701612d0a565b9250506040612dd286828701612c55565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e1e82612bc8565b810181811067ffffffffffffffff82111715612e3d57612e3c612de6565b5b80604052505050565b6000612e50612aaa565b9050612e5c8282612e15565b919050565b600067ffffffffffffffff821115612e7c57612e7b612de6565b5b612e8582612bc8565b9050602081019050919050565b82818337600083830152505050565b6000612eb4612eaf84612e61565b612e46565b905082815260208101848484011115612ed057612ecf612de1565b5b612edb848285612e92565b509392505050565b600082601f830112612ef857612ef7612ddc565b5b8135612f08848260208601612ea1565b91505092915050565b600060208284031215612f2757612f26612ab4565b5b600082013567ffffffffffffffff811115612f4557612f44612ab9565b5b612f5184828501612ee3565b91505092915050565b60008060408385031215612f7157612f70612ab4565b5b6000612f7f85828601612d0a565b9250506020612f9085828601612d0a565b9150509250929050565b600060208284031215612fb057612faf612ab4565b5b6000612fbe84828501612d0a565b91505092915050565b600080600060608486031215612fe057612fdf612ab4565b5b6000612fee86828701612d0a565b9350506020612fff86828701612c55565b925050604061301086828701612c55565b9150509250925092565b6003811061302757600080fd5b50565b6000813590506130398161301a565b92915050565b60006020828403121561305557613054612ab4565b5b60006130638482850161302a565b91505092915050565b6000806040838503121561308357613082612ab4565b5b600061309185828601612c55565b92505060206130a285828601612d0a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106130ec576130eb6130ac565b5b50565b60008190506130fd826130db565b919050565b600061310d826130ef565b9050919050565b61311d81613102565b82525050565b60006020820190506131386000830184613114565b92915050565b61314781612b43565b811461315257600080fd5b50565b6000813590506131648161313e565b92915050565b6000806040838503121561318157613180612ab4565b5b600061318f85828601612d0a565b92505060206131a085828601613155565b9150509250929050565b600067ffffffffffffffff8211156131c5576131c4612de6565b5b6131ce82612bc8565b9050602081019050919050565b60006131ee6131e9846131aa565b612e46565b90508281526020810184848401111561320a57613209612de1565b5b613215848285612e92565b509392505050565b600082601f83011261323257613231612ddc565b5b81356132428482602086016131db565b91505092915050565b6000806000806080858703121561326557613264612ab4565b5b600061327387828801612d0a565b945050602061328487828801612d0a565b935050604061329587828801612c55565b925050606085013567ffffffffffffffff8111156132b6576132b5612ab9565b5b6132c28782880161321d565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061331557607f821691505b60208210811415613329576133286132ce565b5b50919050565b7f6100000000000000000000000000000000000000000000000000000000000000600082015250565b6000613365600183612b84565b91506133708261332f565b602082019050919050565b6000602082019050818103600083015261339481613358565b9050919050565b7f6f00000000000000000000000000000000000000000000000000000000000000600082015250565b60006133d1600183612b84565b91506133dc8261339b565b602082019050919050565b60006020820190508181036000830152613400816133c4565b9050919050565b7f6200000000000000000000000000000000000000000000000000000000000000600082015250565b600061343d600183612b84565b915061344882613407565b602082019050919050565b6000602082019050818103600083015261346c81613430565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134ad82612c34565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134e0576134df613473565b5b600182019050919050565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b6000613521600183612b84565b915061352c826134eb565b602082019050919050565b6000602082019050818103600083015261355081613514565b9050919050565b600081905092915050565b50565b6000613572600083613557565b915061357d82613562565b600082019050919050565b600061359382613565565b9150819050919050565b7f4600000000000000000000000000000000000000000000000000000000000000600082015250565b60006135d3600183612b84565b91506135de8261359d565b602082019050919050565b60006020820190508181036000830152613602816135c6565b9050919050565b60008151905061361881612c3e565b92915050565b60006020828403121561363457613633612ab4565b5b600061364284828501613609565b91505092915050565b60006040820190506136606000830185612cc9565b61366d6020830184612d5f565b9392505050565b6000815190506136838161313e565b92915050565b60006020828403121561369f5761369e612ab4565b5b60006136ad84828501613674565b91505092915050565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b60006136ec600183612b84565b91506136f7826136b6565b602082019050919050565b6000602082019050818103600083015261371b816136df565b9050919050565b7f7000000000000000000000000000000000000000000000000000000000000000600082015250565b6000613758600183612b84565b915061376382613722565b602082019050919050565b600060208201905081810360008301526137878161374b565b9050919050565b7f7400000000000000000000000000000000000000000000000000000000000000600082015250565b60006137c4600183612b84565b91506137cf8261378e565b602082019050919050565b600060208201905081810360008301526137f3816137b7565b9050919050565b600061380582612c34565b9150600082141561381957613818613473565b5b600182039050919050565b7f3000000000000000000000000000000000000000000000000000000000000000600082015250565b600061385a600183612b84565b915061386582613824565b602082019050919050565b600060208201905081810360008301526138898161384d565b9050919050565b7f6d73000000000000000000000000000000000000000000000000000000000000600082015250565b60006138c6600283612b84565b91506138d182613890565b602082019050919050565b600060208201905081810360008301526138f5816138b9565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b6000613932600283612b84565b915061393d826138fc565b602082019050919050565b6000602082019050818103600083015261396181613925565b9050919050565b600061397382612c34565b915061397e83612c34565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139b3576139b2613473565b5b828201905092915050565b7f7300000000000000000000000000000000000000000000000000000000000000600082015250565b60006139f4600183612b84565b91506139ff826139be565b602082019050919050565b60006020820190508181036000830152613a23816139e7565b9050919050565b7f7a00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613a60600183612b84565b9150613a6b82613a2a565b602082019050919050565b60006020820190508181036000830152613a8f81613a53565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154613ac3816132fd565b613acd8186613a96565b94506001821660008114613ae85760018114613af957613b2c565b60ff19831686528186019350613b2c565b613b0285613aa1565b60005b83811015613b2457815481890152600182019150602081019050613b05565b838801955050505b50505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613b6b600183613a96565b9150613b7682613b35565b600182019050919050565b6000613b8c82612b79565b613b968185613a96565b9350613ba6818560208601612b95565b80840191505092915050565b6000613bbe8285613ab6565b9150613bc982613b5e565b9150613bd58284613b81565b91508190509392505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d60008201527f65223a2200000000000000000000000000000000000000000000000000000000602082015250565b6000613c3d602483613a96565b9150613c4882613be1565b602482019050919050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b6000613c89600283613a96565b9150613c9482613c53565b600282019050919050565b7f226465736372697074696f6e223a220000000000000000000000000000000000600082015250565b6000613cd5600f83613a96565b9150613ce082613c9f565b600f82019050919050565b7f22696d616765223a220000000000000000000000000000000000000000000000600082015250565b6000613d21600983613a96565b9150613d2c82613ceb565b600982019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000613d6d600283613a96565b9150613d7882613d37565b600282019050919050565b6000613d8e82613c30565b9150613d9a8286613b81565b9150613da582613c7c565b9150613db082613cc8565b9150613dbc8285613ab6565b9150613dc782613c7c565b9150613dd282613d14565b9150613dde8284613ab6565b9150613de982613d60565b9150819050949350505050565b7f7700000000000000000000000000000000000000000000000000000000000000600082015250565b6000613e2c600183612b84565b9150613e3782613df6565b602082019050919050565b60006020820190508181036000830152613e5b81613e1f565b9050919050565b7f6f6f000000000000000000000000000000000000000000000000000000000000600082015250565b6000613e98600283612b84565b9150613ea382613e62565b602082019050919050565b60006020820190508181036000830152613ec781613e8b565b9050919050565b6000613ed982612c34565b9150613ee483612c34565b925082821015613ef757613ef6613473565b5b828203905092915050565b600081519050919050565b600082825260208201905092915050565b6000613f2982613f02565b613f338185613f0d565b9350613f43818560208601612b95565b613f4c81612bc8565b840191505092915050565b6000608082019050613f6c6000830187612cc9565b613f796020830186612cc9565b613f866040830185612d5f565b8181036060830152613f988184613f1e565b905095945050505050565b600081519050613fb281612aea565b92915050565b600060208284031215613fce57613fcd612ab4565b5b6000613fdc84828501613fa3565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061401f82612c34565b915061402a83612c34565b92508261403a57614039613fe5565b5b828204905092915050565b600061405082612c34565b915061405b83612c34565b92508261406b5761406a613fe5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220463e058910596fe5b1a2ccc05a16efcd0ced59b650fc1346f0f7d34eb9f5275064736f6c63430008090033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000a563020446f6f646c65730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065630444f4f44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000405468697320697320776861742074686579206d65616e207768656e20746865792073617920736f6d657468696e6720697320612022563020446f6f646c65222e000000000000000000000000000000000000000000000000000000000000004368747470733a2f2f697066732e696f2f697066732f516d634d753869547867447136376638334b5651466865394d4b4a4a33613935354e566d664c6e3931745839475a0000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806358e80b401161010d5780639da3f8fd116100a0578063bd475fed1161006f578063bd475fed14610765578063c87b56dd1461077c578063e8a3d485146107b9578063e985e9c5146107e4578063efd0cbf91461082157610231565b80639da3f8fd146106bf578063a22cb465146106ea578063b20e628d14610713578063b88d4fde1461073c57610231565b806379b6ed36116100dc57806379b6ed36146106175780637cac2602146106425780638f566abb1461066b57806395d89b411461069457610231565b806358e80b40146105495780636352211e146105725780636c0360eb146105af57806370a08231146105da57610231565b80632d95fdb5116101905780633ccfd60b1161015f5780633ccfd60b1461047a57806342842e0e1461049157806349df728c146104ba5780634f6ccce7146104e357806355f804b31461052057610231565b80632d95fdb5146103aa5780632f745c59146103e757806334eaf23d14610424578063386b76911461044f57610231565b80630e17d598116101cc5780630e17d5981461030457806318160ddd1461032d57806323b872dd146103585780632a85db551461038157610231565b806301ffc9a71461023657806306fdde0314610273578063081812fc1461029e578063095ea7b3146102db57610231565b3661023157347f806579a8533e14b5e3a06449c7ee00e2909280929a6d04826aa744a572071e0860405160405180910390a2005b600080fd5b34801561024257600080fd5b5061025d60048036038101906102589190612b16565b61084a565b60405161026a9190612b5e565b60405180910390f35b34801561027f57600080fd5b50610288610994565b6040516102959190612c12565b60405180910390f35b3480156102aa57600080fd5b506102c560048036038101906102c09190612c6a565b610a26565b6040516102d29190612cd8565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190612d1f565b610aab565b005b34801561031057600080fd5b5061032b60048036038101906103269190612c6a565b610c36565b005b34801561033957600080fd5b50610342610c4a565b60405161034f9190612d6e565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a9190612d89565b610c54565b005b34801561038d57600080fd5b506103a860048036038101906103a39190612f11565b610c64565b005b3480156103b657600080fd5b506103d160048036038101906103cc9190612f5a565b610c78565b6040516103de9190612b5e565b60405180910390f35b3480156103f357600080fd5b5061040e60048036038101906104099190612d1f565b610ca7565b60405161041b9190612d6e565b60405180910390f35b34801561043057600080fd5b50610439610e87565b6040516104469190612cd8565b60405180910390f35b34801561045b57600080fd5b50610464610ead565b6040516104719190612d6e565b60405180910390f35b34801561048657600080fd5b5061048f610eb3565b005b34801561049d57600080fd5b506104b860048036038101906104b39190612d89565b610f6a565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190612f9a565b610f8a565b005b3480156104ef57600080fd5b5061050a60048036038101906105059190612c6a565b6110ab565b6040516105179190612d6e565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190612f11565b6110f9565b005b34801561055557600080fd5b50610570600480360381019061056b9190612fc7565b61110d565b005b34801561057e57600080fd5b5061059960048036038101906105949190612c6a565b6111bb565b6040516105a69190612cd8565b60405180910390f35b3480156105bb57600080fd5b506105c4611304565b6040516105d19190612c12565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190612f9a565b611396565b60405161060e9190612d6e565b60405180910390f35b34801561062357600080fd5b5061062c61144e565b6040516106399190612c12565b60405180910390f35b34801561064e57600080fd5b506106696004803603810190610664919061303f565b6114e0565b005b34801561067757600080fd5b50610692600480360381019061068d919061306c565b61157d565b005b3480156106a057600080fd5b506106a96116db565b6040516106b69190612c12565b60405180910390f35b3480156106cb57600080fd5b506106d461176d565b6040516106e19190613123565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c919061316a565b611780565b005b34801561071f57600080fd5b5061073a60048036038101906107359190612f9a565b6118ec565b005b34801561074857600080fd5b50610763600480360381019061075e919061324b565b611938565b005b34801561077157600080fd5b5061077a611994565b005b34801561078857600080fd5b506107a3600480360381019061079e9190612c6a565b6119e0565b6040516107b09190612c12565b60405180910390f35b3480156107c557600080fd5b506107ce611b06565b6040516107db9190612c12565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190612f5a565b611b3a565b6040516108189190612b5e565b60405180910390f35b34801561082d57600080fd5b5061084860048036038101906108439190612c6a565b611bce565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061091557507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061097d57507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061098d575061098c82611e11565b5b9050919050565b6060600580546109a3906132fd565b80601f01602080910402602001604051908101604052809291908181526020018280546109cf906132fd565b8015610a1c5780601f106109f157610100808354040283529160200191610a1c565b820191906000526020600020905b8154815290600101906020018083116109ff57829003601f168201915b5050505050905090565b6000610a3182611e7b565b610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061337b565b60405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610ab6826111bb565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e906133e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610be75750600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d9061337b565b60405180910390fd5b610c31838383611e89565b505050565b610c3e611f3b565b610c4781611fcd565b50565b6000600454905090565b610c5f838383611fd7565b505050565b610c6c611f3b565b610c75816123c9565b50565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190613453565b60405180910390fd5b60008060005b600454811015610e4557600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd85760008082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610dda565b815b91508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610e325784831415610e2357809350505050610e81565b8280610e2e906134a2565b9350505b8080610e3d906134a2565b915050610d30565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7890613537565b60405180910390fd5b92915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b610ebb611f3b565b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610ee190613588565b60006040518083038185875af1925050503d8060008114610f1e576040519150601f19603f3d011682016040523d82523d6000602084013e610f23565b606091505b5050905080610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e906135e9565b60405180910390fd5b50565b610f8583838360405180602001604052806000815250611938565b505050565b610f92611f3b565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fe89190612cd8565b60206040518083038186803b15801561100057600080fd5b505afa158015611014573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611038919061361e565b6040518363ffffffff1660e01b815260040161105592919061364b565b602060405180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a79190613689565b5050565b600060045482106110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e890613702565b60405180910390fd5b819050919050565b611101611f3b565b61110a816123e3565b50565b611115611f3b565b60006002811115611129576111286130ac565b5b601160009054906101000a900460ff16600281111561114b5761114a6130ac565b5b1461118b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111829061376e565b60405180910390fd5b60005b818110156111b5576111a2600085856123fd565b80806111ad906134a2565b91505061118e565b50505050565b60006004548210611201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f8906137da565b60405180910390fd5b60008290505b600081106112c357600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b05760008082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150506112ff565b80806112bb906137fa565b915050611207565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f6906133e7565b60405180910390fd5b919050565b6060600b8054611313906132fd565b80601f016020809104026020016040519081016040528092919081815260200182805461133f906132fd565b801561138c5780601f106113615761010080835404028352916020019161138c565b820191906000526020600020905b81548152906001019060200180831161136f57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613870565b60405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600a805461145d906132fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611489906132fd565b80156114d65780601f106114ab576101008083540402835291602001916114d6565b820191906000526020600020905b8154815290600101906020018083116114b957829003601f168201915b5050505050905090565b6114e8611f3b565b600060028111156114fc576114fb6130ac565b5b81600281111561150f5761150e6130ac565b5b1415611550576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115479061376e565b60405180910390fd5b80601160006101000a81548160ff02191690836002811115611575576115746130ac565b5b021790555050565b60016002811115611591576115906130ac565b5b601160009054906101000a900460ff1660028111156115b3576115b26130ac565b5b146115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea906138dc565b60405180910390fd5b600f54821115611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162f90613948565b60405180910390fd5b600c5482611644610c4a565b61164e9190613968565b111561168f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168690613a0a565b60405180910390fd5b61169a3382846123fd565b600c546116a5610c4a565b14156116d7576002601160006101000a81548160ff021916908360028111156116d1576116d06130ac565b5b02179055505b5050565b6060600680546116ea906132fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611716906132fd565b80156117635780601f1061173857610100808354040283529160200191611763565b820191906000526020600020905b81548152906001019060200180831161174657829003601f168201915b5050505050905090565b601160009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e69061337b565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118e09190612b5e565b60405180910390a35050565b6118f4611f3b565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611943848484611fd7565b61194f8484848461241d565b61198e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198590613a76565b60405180910390fd5b50505050565b61199c611f3b565b6000600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606119eb82611e7b565b611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190613a76565b60405180910390fd5b6000600b8054611a39906132fd565b90501115611a7357600b611a4c836125a8565b604051602001611a5d929190613bb2565b6040516020818303038152906040529050611b01565b600a8054611a80906132fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611aac906132fd565b8015611af95780601f10611ace57610100808354040283529160200191611af9565b820191906000526020600020905b815481529060010190602001808311611adc57829003601f168201915b505050505090505b919050565b6060611b10610994565b60076008604051602001611b2693929190613d83565b604051602081830303815290604052905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60016002811115611be257611be16130ac565b5b601160009054906101000a900460ff166002811115611c0457611c036130ac565b5b14611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b906138dc565b60405180910390fd5b600f54811115611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8090613948565b60405180910390fd5b60105481600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd79190613968565b1115611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f90613e42565b60405180910390fd5b600c5481611d24610c4a565b611d2e9190613968565b1115611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613a0a565b60405180910390fd5b611d7b600033836123fd565b80600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dca9190613968565b92505081905550600c54611ddc610c4a565b1415611e0e576002601160006101000a81548160ff02191690836002811115611e0857611e076130ac565b5b02179055505b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600060045482109050919050565b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613eae565b60405180910390fd5b565b80600c8190555050565b6000611fe2826111bb565b905060008173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061205357503373ffffffffffffffffffffffffffffffffffffffff1661203b84610a26565b73ffffffffffffffffffffffffffffffffffffffff16145b8061206457506120638233611b3a565b5b9050806120a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209d9061337b565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210b906133e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90613870565b60405180910390fd5b61219060008484611e89565b60018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121df9190613ece565b9250508190555060018060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122359190613968565b925050819055508360008085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060018461229c9190613968565b9050600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123665761230e81611e7b565b15612365578260008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b80600a90805190602001906123df929190612a07565b5050565b80600b90805190602001906123f9929190612a07565b5050565b61241883838360405180602001604052806000815250612709565b505050565b6000808473ffffffffffffffffffffffffffffffffffffffff163b111561259b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b815260040161247d9493929190613f57565b602060405180830381600087803b15801561249757600080fd5b505af19250505080156124c857506040513d601f19601f820116820180604052508101906124c59190613fb8565b60015b61254b573d80600081146124f8576040519150601f19603f3d011682016040523d82523d6000602084013e6124fd565b606091505b50600081511415612543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253a90613a76565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506125a0565b600190505b949350505050565b606060008214156125f0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612704565b600082905060005b6000821461262257808061260b906134a2565b915050600a8261261b9190614014565b91506125f8565b60008167ffffffffffffffff81111561263e5761263d612de6565b5b6040519080825280601f01601f1916602001820160405280156126705781602001600182028036833780820191505090505b5090505b600085146126fd576001826126899190613ece565b9150600a856126989190614045565b60306126a49190613968565b60f81b8183815181106126ba576126b9614076565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856126f69190614014565b9450612674565b8093505050505b919050565b612714848484612774565b61272f60008460016004546127299190613ece565b8461241d565b61276e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276590613a76565b60405180910390fd5b50505050565b60006004549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e290613870565b60405180910390fd5b6127f481611e7b565b15612834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282b9061337b565b60405180910390fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128839190613968565b925050819055508260008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600081905060005b838110156129f857600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461297c57818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b818573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a481806129e2906134a2565b92505080806129f0906134a2565b9150506128e3565b50806004819055505050505050565b828054612a13906132fd565b90600052602060002090601f016020900481019282612a355760008555612a7c565b82601f10612a4e57805160ff1916838001178555612a7c565b82800160010185558215612a7c579182015b82811115612a7b578251825591602001919060010190612a60565b5b509050612a899190612a8d565b5090565b5b80821115612aa6576000816000905550600101612a8e565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612af381612abe565b8114612afe57600080fd5b50565b600081359050612b1081612aea565b92915050565b600060208284031215612b2c57612b2b612ab4565b5b6000612b3a84828501612b01565b91505092915050565b60008115159050919050565b612b5881612b43565b82525050565b6000602082019050612b736000830184612b4f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bb3578082015181840152602081019050612b98565b83811115612bc2576000848401525b50505050565b6000601f19601f8301169050919050565b6000612be482612b79565b612bee8185612b84565b9350612bfe818560208601612b95565b612c0781612bc8565b840191505092915050565b60006020820190508181036000830152612c2c8184612bd9565b905092915050565b6000819050919050565b612c4781612c34565b8114612c5257600080fd5b50565b600081359050612c6481612c3e565b92915050565b600060208284031215612c8057612c7f612ab4565b5b6000612c8e84828501612c55565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cc282612c97565b9050919050565b612cd281612cb7565b82525050565b6000602082019050612ced6000830184612cc9565b92915050565b612cfc81612cb7565b8114612d0757600080fd5b50565b600081359050612d1981612cf3565b92915050565b60008060408385031215612d3657612d35612ab4565b5b6000612d4485828601612d0a565b9250506020612d5585828601612c55565b9150509250929050565b612d6881612c34565b82525050565b6000602082019050612d836000830184612d5f565b92915050565b600080600060608486031215612da257612da1612ab4565b5b6000612db086828701612d0a565b9350506020612dc186828701612d0a565b9250506040612dd286828701612c55565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e1e82612bc8565b810181811067ffffffffffffffff82111715612e3d57612e3c612de6565b5b80604052505050565b6000612e50612aaa565b9050612e5c8282612e15565b919050565b600067ffffffffffffffff821115612e7c57612e7b612de6565b5b612e8582612bc8565b9050602081019050919050565b82818337600083830152505050565b6000612eb4612eaf84612e61565b612e46565b905082815260208101848484011115612ed057612ecf612de1565b5b612edb848285612e92565b509392505050565b600082601f830112612ef857612ef7612ddc565b5b8135612f08848260208601612ea1565b91505092915050565b600060208284031215612f2757612f26612ab4565b5b600082013567ffffffffffffffff811115612f4557612f44612ab9565b5b612f5184828501612ee3565b91505092915050565b60008060408385031215612f7157612f70612ab4565b5b6000612f7f85828601612d0a565b9250506020612f9085828601612d0a565b9150509250929050565b600060208284031215612fb057612faf612ab4565b5b6000612fbe84828501612d0a565b91505092915050565b600080600060608486031215612fe057612fdf612ab4565b5b6000612fee86828701612d0a565b9350506020612fff86828701612c55565b925050604061301086828701612c55565b9150509250925092565b6003811061302757600080fd5b50565b6000813590506130398161301a565b92915050565b60006020828403121561305557613054612ab4565b5b60006130638482850161302a565b91505092915050565b6000806040838503121561308357613082612ab4565b5b600061309185828601612c55565b92505060206130a285828601612d0a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106130ec576130eb6130ac565b5b50565b60008190506130fd826130db565b919050565b600061310d826130ef565b9050919050565b61311d81613102565b82525050565b60006020820190506131386000830184613114565b92915050565b61314781612b43565b811461315257600080fd5b50565b6000813590506131648161313e565b92915050565b6000806040838503121561318157613180612ab4565b5b600061318f85828601612d0a565b92505060206131a085828601613155565b9150509250929050565b600067ffffffffffffffff8211156131c5576131c4612de6565b5b6131ce82612bc8565b9050602081019050919050565b60006131ee6131e9846131aa565b612e46565b90508281526020810184848401111561320a57613209612de1565b5b613215848285612e92565b509392505050565b600082601f83011261323257613231612ddc565b5b81356132428482602086016131db565b91505092915050565b6000806000806080858703121561326557613264612ab4565b5b600061327387828801612d0a565b945050602061328487828801612d0a565b935050604061329587828801612c55565b925050606085013567ffffffffffffffff8111156132b6576132b5612ab9565b5b6132c28782880161321d565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061331557607f821691505b60208210811415613329576133286132ce565b5b50919050565b7f6100000000000000000000000000000000000000000000000000000000000000600082015250565b6000613365600183612b84565b91506133708261332f565b602082019050919050565b6000602082019050818103600083015261339481613358565b9050919050565b7f6f00000000000000000000000000000000000000000000000000000000000000600082015250565b60006133d1600183612b84565b91506133dc8261339b565b602082019050919050565b60006020820190508181036000830152613400816133c4565b9050919050565b7f6200000000000000000000000000000000000000000000000000000000000000600082015250565b600061343d600183612b84565b915061344882613407565b602082019050919050565b6000602082019050818103600083015261346c81613430565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134ad82612c34565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134e0576134df613473565b5b600182019050919050565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b6000613521600183612b84565b915061352c826134eb565b602082019050919050565b6000602082019050818103600083015261355081613514565b9050919050565b600081905092915050565b50565b6000613572600083613557565b915061357d82613562565b600082019050919050565b600061359382613565565b9150819050919050565b7f4600000000000000000000000000000000000000000000000000000000000000600082015250565b60006135d3600183612b84565b91506135de8261359d565b602082019050919050565b60006020820190508181036000830152613602816135c6565b9050919050565b60008151905061361881612c3e565b92915050565b60006020828403121561363457613633612ab4565b5b600061364284828501613609565b91505092915050565b60006040820190506136606000830185612cc9565b61366d6020830184612d5f565b9392505050565b6000815190506136838161313e565b92915050565b60006020828403121561369f5761369e612ab4565b5b60006136ad84828501613674565b91505092915050565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b60006136ec600183612b84565b91506136f7826136b6565b602082019050919050565b6000602082019050818103600083015261371b816136df565b9050919050565b7f7000000000000000000000000000000000000000000000000000000000000000600082015250565b6000613758600183612b84565b915061376382613722565b602082019050919050565b600060208201905081810360008301526137878161374b565b9050919050565b7f7400000000000000000000000000000000000000000000000000000000000000600082015250565b60006137c4600183612b84565b91506137cf8261378e565b602082019050919050565b600060208201905081810360008301526137f3816137b7565b9050919050565b600061380582612c34565b9150600082141561381957613818613473565b5b600182039050919050565b7f3000000000000000000000000000000000000000000000000000000000000000600082015250565b600061385a600183612b84565b915061386582613824565b602082019050919050565b600060208201905081810360008301526138898161384d565b9050919050565b7f6d73000000000000000000000000000000000000000000000000000000000000600082015250565b60006138c6600283612b84565b91506138d182613890565b602082019050919050565b600060208201905081810360008301526138f5816138b9565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b6000613932600283612b84565b915061393d826138fc565b602082019050919050565b6000602082019050818103600083015261396181613925565b9050919050565b600061397382612c34565b915061397e83612c34565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139b3576139b2613473565b5b828201905092915050565b7f7300000000000000000000000000000000000000000000000000000000000000600082015250565b60006139f4600183612b84565b91506139ff826139be565b602082019050919050565b60006020820190508181036000830152613a23816139e7565b9050919050565b7f7a00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613a60600183612b84565b9150613a6b82613a2a565b602082019050919050565b60006020820190508181036000830152613a8f81613a53565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154613ac3816132fd565b613acd8186613a96565b94506001821660008114613ae85760018114613af957613b2c565b60ff19831686528186019350613b2c565b613b0285613aa1565b60005b83811015613b2457815481890152600182019150602081019050613b05565b838801955050505b50505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613b6b600183613a96565b9150613b7682613b35565b600182019050919050565b6000613b8c82612b79565b613b968185613a96565b9350613ba6818560208601612b95565b80840191505092915050565b6000613bbe8285613ab6565b9150613bc982613b5e565b9150613bd58284613b81565b91508190509392505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d60008201527f65223a2200000000000000000000000000000000000000000000000000000000602082015250565b6000613c3d602483613a96565b9150613c4882613be1565b602482019050919050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b6000613c89600283613a96565b9150613c9482613c53565b600282019050919050565b7f226465736372697074696f6e223a220000000000000000000000000000000000600082015250565b6000613cd5600f83613a96565b9150613ce082613c9f565b600f82019050919050565b7f22696d616765223a220000000000000000000000000000000000000000000000600082015250565b6000613d21600983613a96565b9150613d2c82613ceb565b600982019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000613d6d600283613a96565b9150613d7882613d37565b600282019050919050565b6000613d8e82613c30565b9150613d9a8286613b81565b9150613da582613c7c565b9150613db082613cc8565b9150613dbc8285613ab6565b9150613dc782613c7c565b9150613dd282613d14565b9150613dde8284613ab6565b9150613de982613d60565b9150819050949350505050565b7f7700000000000000000000000000000000000000000000000000000000000000600082015250565b6000613e2c600183612b84565b9150613e3782613df6565b602082019050919050565b60006020820190508181036000830152613e5b81613e1f565b9050919050565b7f6f6f000000000000000000000000000000000000000000000000000000000000600082015250565b6000613e98600283612b84565b9150613ea382613e62565b602082019050919050565b60006020820190508181036000830152613ec781613e8b565b9050919050565b6000613ed982612c34565b9150613ee483612c34565b925082821015613ef757613ef6613473565b5b828203905092915050565b600081519050919050565b600082825260208201905092915050565b6000613f2982613f02565b613f338185613f0d565b9350613f43818560208601612b95565b613f4c81612bc8565b840191505092915050565b6000608082019050613f6c6000830187612cc9565b613f796020830186612cc9565b613f866040830185612d5f565b8181036060830152613f988184613f1e565b905095945050505050565b600081519050613fb281612aea565b92915050565b600060208284031215613fce57613fcd612ab4565b5b6000613fdc84828501613fa3565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061401f82612c34565b915061402a83612c34565b92508261403a57614039613fe5565b5b828204905092915050565b600061405082612c34565b915061405b83612c34565b92508261406b5761406a613fe5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220463e058910596fe5b1a2ccc05a16efcd0ced59b650fc1346f0f7d34eb9f5275064736f6c63430008090033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000a563020446f6f646c65730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065630444f4f44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000405468697320697320776861742074686579206d65616e207768656e20746865792073617920736f6d657468696e6720697320612022563020446f6f646c65222e000000000000000000000000000000000000000000000000000000000000004368747470733a2f2f697066732e696f2f697066732f516d634d753869547867447136376638334b5651466865394d4b4a4a33613935354e566d664c6e3931745839475a0000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): V0 Doodles
Arg [1] : symbol_ (string): V0DOOD
Arg [2] : description_ (string): This is what they mean when they say something is a "V0 Doodle".
Arg [3] : coverImage_ (string): https://ipfs.io/ipfs/QmcMu8iTxgDq67f83KVQFhe9MKJJ3a955NVmfLn91tX9GZ

-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [5] : 563020446f6f646c657300000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [7] : 5630444f4f440000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [9] : 5468697320697320776861742074686579206d65616e207768656e2074686579
Arg [10] : 2073617920736f6d657468696e6720697320612022563020446f6f646c65222e
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000043
Arg [12] : 68747470733a2f2f697066732e696f2f697066732f516d634d75386954786744
Arg [13] : 7136376638334b5651466865394d4b4a4a33613935354e566d664c6e39317458
Arg [14] : 39475a0000000000000000000000000000000000000000000000000000000000


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.