Contract 0x9EB78aB244DE5286b259b50090e5B1D6223b02AB 1

 

Contract Overview

Balance:
228 MATIC

MATIC Value:
$154.90 (@ $0.68/MATIC)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xcb14f14cec6bd1efbdf259ccdffb2d632abb2bd15d49ce1e1cc8875e0013e05aMint284926292022-05-19 3:13:194 days 10 hrs ago0x5d93275592cb2fd23fba0e2e57ffc4b01d827c9b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab40 MATIC0.095348342292 40.515850872
0x7e295643a017c0599f15c88dc25262655fd1f2cbabb237087d0ab6723eca9e2fSafe Transfer Fr...284421242022-05-17 20:31:025 days 17 hrs ago0xfaf1b53f4f51e76acdd1a6d4a345f74ee3eb65fd IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.003413590441 37.647680007
0xd8eebb06bc4d912fee311a6f2496f554a7740948af8787e2272ee74adbc805b8Safe Transfer Fr...284421112022-05-17 20:30:065 days 17 hrs ago0xfaf1b53f4f51e76acdd1a6d4a345f74ee3eb65fd IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.003072182399 39.199999999
0xdd1850c1ebc7b8582d9d69e06cde0105ea7910d2f78014d85f8f4a325659b4f4Safe Transfer Fr...284421012022-05-17 20:29:465 days 17 hrs ago0xfaf1b53f4f51e76acdd1a6d4a345f74ee3eb65fd IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.002962422399 39.199999998
0xca50ac2ac2ff3737fe879b8a17d999ad8b88a52f38a783b9d96557dfc6fe1c2bSafe Transfer Fr...284420902022-05-17 20:29:245 days 17 hrs ago0xfaf1b53f4f51e76acdd1a6d4a345f74ee3eb65fd IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.002688159599 34.299999999
0x66505b57b5fae44ea1fc99b304605bb268149f8c6f139123dd4d39877f482865Safe Transfer Fr...284420792022-05-17 20:29:025 days 17 hrs ago0xfaf1b53f4f51e76acdd1a6d4a345f74ee3eb65fd IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.003047848609 33.614000014
0x1a027bc6fec531640e2e991e0cbbb9746f63be766281a6e2059d018bc2b1746cSet Approval For...283234172022-05-14 21:49:118 days 16 hrs ago0xad1d0a652f230efdc4b64d5c13d2155d2a9f2889 IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.001497312019 32.000000419
0xba332c86571f5cb3cb3919ba5b54cee985ac4a505d7b935f098e82fab47a5465Mint283231422022-05-14 21:39:458 days 16 hrs ago0xad1d0a652f230efdc4b64d5c13d2155d2a9f2889 IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab10 MATIC0.019761056009 32.000000015
0x9b8ccb5f6675cda9b76cdbe9a5e4a0160a2c5d32777e53aa1b57a5404e65cf7cMint283229032022-05-14 21:31:278 days 16 hrs ago0x5d93275592cb2fd23fba0e2e57ffc4b01d827c9b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab4 MATIC0.008723859487 31.870541148
0x1f07e59ae68d37cd1df6386d370407e3e711f985c1442d14d4943e605c73dac0Mint283228862022-05-14 21:30:538 days 16 hrs ago0x5d93275592cb2fd23fba0e2e57ffc4b01d827c9b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab40 MATIC0.071297685382 30.296136451
0x484689a98d209d94c0b77251ba6df756d3af66fc6b8ef6d4a348132bdd4a6994Safe Transfer Fr...283108712022-05-14 14:26:598 days 23 hrs ago0x0a4fdf108163e49b4d9cbed9eed8acc7f2c90029 IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.004412942351 56.30763987
0xf2105bad24a110900b30a5b1c393160b1da43d40f77b2504817f5a33423e6939Safe Transfer Fr...283108492022-05-14 14:26:158 days 23 hrs ago0x0a4fdf108163e49b4d9cbed9eed8acc7f2c90029 IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.005291661468 61.520217035
0xb9393df0f16b65c76379d5bc0f3b1816c77f9d65f5981e0e02e8d1a44b9706b2Safe Transfer Fr...283108262022-05-14 14:25:258 days 23 hrs ago0x0a4fdf108163e49b4d9cbed9eed8acc7f2c90029 IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.006778958642 67.034111981
0x6156376e4260059be6b82103218220fcdc005547101327d95b86ec0419d1d3fdMint281848062022-05-11 9:00:2712 days 5 hrs ago0x52dcb517bc0208757c8bd7193d79e29183a41967 IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab4 MATIC0.040003482624 147.653556016
0xcedd876e7d2af761d44fee4b498ab90283fac11db6d35e46977d39dcd6c9bbb1Mint281847812022-05-11 8:59:3712 days 5 hrs ago0xbd4ae0dc3c0fa45e0119d3c108acde1dad5e7825 IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab6 MATIC0.053847517103 139.334210787
0xa29770241d612a4a83994b11beca0a2bb8d105363d2ebe5bc72fae46e05903daSet Approval For...281841262022-05-11 8:37:0312 days 5 hrs ago0x1883b72f36544f1b3d11e10020f384959314c58b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.022648452681 484.034380151
0x2b9138ac965d5f65b9de28c533347aa2ea5d119e999ffe6784ef581b4f54dfb2Set Approval For...281694302022-05-10 23:09:1812 days 15 hrs ago0x5d93275592cb2fd23fba0e2e57ffc4b01d827c9b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.008903897044 190.290804748
0xca2249f641696295705037cf6de1a115b55d8281f0eadb9e2742cfe0b97e11bfMint281686452022-05-10 22:40:1212 days 15 hrs ago0x9e83af29ac55bee937fbec87da0030f4fd4bc166 IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab4 MATIC0.054405373482 200.811187778
0x6b11837fafc639009fe54c586497c183976095b8d6bc426aa5a724cd17582747Mint281682372022-05-10 22:23:2412 days 15 hrs ago0x5d93275592cb2fd23fba0e2e57ffc4b01d827c9b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab40 MATIC0.781970120751 332.278297001
0x8f96fdcaa2849b5a4c8159b28504bee074bc0c7ce914e4d1f24542d095382b6eMint281675612022-05-10 21:58:4012 days 16 hrs ago0x5d93275592cb2fd23fba0e2e57ffc4b01d827c9b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab40 MATIC0.517979874696 220.102362069
0xfa32b98588b8b51229d0354658676e9fe449aa88f36264e5c5e7a0a0383224afMint281674572022-05-10 21:53:5712 days 16 hrs ago0x5d93275592cb2fd23fba0e2e57ffc4b01d827c9b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab40 MATIC0.796328383134 338.379475097
0x80f17f96ff8b863a1df377053f0aaa7b4aa97abed40cbfc7a96c2e591f712be7Withdraw281618442022-05-10 18:21:5212 days 19 hrs ago0x51efbfc634a6c3d2a2b9114daba1b0138f852299 IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab0 MATIC0.002192008406 71.171414857
0x2284f60a82a582cf2b023872c94aa33ac47aad1473730f0e4b652388ebb60b78Mint281573742022-05-10 15:43:5412 days 22 hrs ago0x1883b72f36544f1b3d11e10020f384959314c58b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab10 MATIC0.097703720784 158.216193765
0x88248538fde620de17b3797d567b548ad0a6cc87c062e4b899ff865fd944b7bfMint281573172022-05-10 15:42:0012 days 22 hrs ago0x5d93275592cb2fd23fba0e2e57ffc4b01d827c9b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab40 MATIC0.495368723907 210.49432913
0x3f80e26b67ccd9256e5332ef076beb865de91c2e00fe3772659f3af7a2c199a3Mint281572952022-05-10 15:41:1012 days 22 hrs ago0x5d93275592cb2fd23fba0e2e57ffc4b01d827c9b IN  0x9eb78ab244de5286b259b50090e5b1d6223b02ab40 MATIC0.555444854634 236.022151586
[ Download CSV Export 
Latest 5 internal transactions
Parent Txn Hash Block From To Value
0x80f17f96ff8b863a1df377053f0aaa7b4aa97abed40cbfc7a96c2e591f712be7281618442022-05-10 18:21:5212 days 19 hrs ago 0x9eb78ab244de5286b259b50090e5b1d6223b02ab0x51efbfc634a6c3d2a2b9114daba1b0138f85229992 MATIC
0x9626b0ecba13673370e7280eff9501e60faf3beb7c872a6e77b4abcd088fb5a3279863612022-05-06 9:15:4217 days 4 hrs ago 0x9eb78ab244de5286b259b50090e5b1d6223b02ab0x51efbfc634a6c3d2a2b9114daba1b0138f85229936 MATIC
0xa28ed09ce439de4ac920c7bdd236a7cb54b72e3e8b4d21e9b7f3f88342bd2e78278916472022-05-03 23:03:1219 days 15 hrs ago 0x9eb78ab244de5286b259b50090e5b1d6223b02ab0x51efbfc634a6c3d2a2b9114daba1b0138f85229916 MATIC
0xbc69b32e2d64620e7cad850d368f69b00b780c4d45918690d81f7f040e11b354270637762022-04-12 22:05:4840 days 16 hrs ago 0x9eb78ab244de5286b259b50090e5b1d6223b02ab0x51efbfc634a6c3d2a2b9114daba1b0138f852299482.06 MATIC
0x1286193d1ec9d1fee02804dd3811a88e183d25d52ab8be6ebbcfb1e6e598c357244654352022-02-02 15:11:25109 days 23 hrs ago 0x9eb78ab244de5286b259b50090e5b1d6223b02ab0x51efbfc634a6c3d2a2b9114daba1b0138f8522992,065 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WeirdVitalik

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-11-24
*/

/**
 *Submitted for verification at Etherscan.io on 2021-11-16
*/

// SPDX-License-Identifier: MIT

// File: @openzeppelin/contracts/utils/introspection/IERC165.sol
pragma solidity ^0.8.0;

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

// File: @openzeppelin/contracts/token/ERC721/IERC721.sol
pragma solidity ^0.8.0;

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

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

    function approve(address to, uint256 tokenId) external;
    function getApproved(uint256 tokenId) external view returns (address operator);
    function setApprovalForAll(address operator, bool _approved) external;
    function isApprovedForAll(address owner, address operator) external view returns (bool);

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

// File: @openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol
pragma solidity ^0.8.0;

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

// File: @openzeppelin/contracts/utils/introspection/ERC165.sol
pragma solidity ^0.8.0;

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

// File: @openzeppelin/contracts/utils/Strings.sol
pragma solidity ^0.8.0;

library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    function toString(uint256 value) internal pure returns (string memory) {
        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);
    }

    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

// File: @openzeppelin/contracts/utils/Address.sol
pragma solidity ^0.8.0;

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

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

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

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

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

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

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

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

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

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

// File: @openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol
pragma solidity ^0.8.0;

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: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol
pragma solidity ^0.8.0;

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

// File: @openzeppelin/contracts/utils/Context.sol
pragma solidity ^0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin/contracts/token/ERC721/ERC721.sol
pragma solidity ^0.8.0;

contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;

    // Token name
    string private _name;

    // Token symbol
    string private _symbol;

    // Mapping from token ID to owner address
    mapping(uint256 => address) private _owners;

    // Mapping owner address to token count
    mapping(address => uint256) private _balances;

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

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

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

    function balanceOf(address owner) public view virtual override returns (uint256) {
        require(owner != address(0), "ERC721: balance query for the zero address");
        return _balances[owner];
    }

    function ownerOf(uint256 tokenId) public view virtual override returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "ERC721: owner query for nonexistent token");
        return owner;
    }

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

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

    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");

        string memory baseURI = _baseURI();
        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : "";
    }

    function _baseURI() internal view virtual returns (string memory) {
        return "";
    }

    function approve(address to, uint256 tokenId) public virtual override {
        address owner = ERC721.ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");

        require(
            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),
            "ERC721: approve caller is not owner nor approved for all"
        );

        _approve(to, tokenId);
    }

    function getApproved(uint256 tokenId) public view virtual override returns (address) {
        require(_exists(tokenId), "ERC721: approved query for nonexistent token");

        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved) public virtual override {
        require(operator != _msgSender(), "ERC721: approve to caller");

        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }

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

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        //solhint-disable-next-line max-line-length
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");

        _transfer(from, to, tokenId);
    }

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

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }

    function _safeTransfer(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }

    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return _owners[tokenId] != address(0);
    }

    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = ERC721.ownerOf(tokenId);
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }
   
    function _safeMint(address to, uint256 tokenId) internal virtual {
        _safeMint(to, tokenId, "");
    }

    function _safeMint(
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _mint(to, tokenId);
        require(
            _checkOnERC721Received(address(0), to, tokenId, _data),
            "ERC721: transfer to non ERC721Receiver implementer"
        );
    }

    function _mint(address to, uint256 tokenId) internal virtual {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");

        _beforeTokenTransfer(address(0), to, tokenId);

        _balances[to] += 1;
        _owners[tokenId] = to;

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

    function _burn(uint256 tokenId) internal virtual {
        address owner = ERC721.ownerOf(tokenId);

        _beforeTokenTransfer(owner, address(0), tokenId);

        // Clear approvals
        _approve(address(0), tokenId);

        _balances[owner] -= 1;
        delete _owners[tokenId];

        emit Transfer(owner, address(0), tokenId);
    }

    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {
        require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own");
        require(to != address(0), "ERC721: transfer to the zero address");

        _beforeTokenTransfer(from, to, tokenId);
        _approve(address(0), tokenId);

        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(from, to, tokenId);
    }

    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }

    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.isContract()) {
            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {
                return retval == IERC721Receiver.onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {}
}

// File: @openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol
pragma solidity ^0.8.0;

abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {
    // Mapping from owner to list of owned token IDs
    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;

    // Mapping from token ID to index of the owner tokens list
    mapping(uint256 => uint256) private _ownedTokensIndex;

    // Array with all token ids, used for enumeration
    uint256[] private _allTokens;

    // Mapping from token id to position in the allTokens array
    mapping(uint256 => uint256) private _allTokensIndex;

    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {
        return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);
    }

    function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {
        require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds");
        return _ownedTokens[owner][index];
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _allTokens.length;
    }

    function tokenByIndex(uint256 index) public view virtual override returns (uint256) {
        require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds");
        return _allTokens[index];
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual override {
        super._beforeTokenTransfer(from, to, tokenId);

        if (from == address(0)) {
            _addTokenToAllTokensEnumeration(tokenId);
        } else if (from != to) {
            _removeTokenFromOwnerEnumeration(from, tokenId);
        }
        if (to == address(0)) {
            _removeTokenFromAllTokensEnumeration(tokenId);
        } else if (to != from) {
            _addTokenToOwnerEnumeration(to, tokenId);
        }
    }

    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
        uint256 length = ERC721.balanceOf(to);
        _ownedTokens[to][length] = tokenId;
        _ownedTokensIndex[tokenId] = length;
    }

    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {
        _allTokensIndex[tokenId] = _allTokens.length;
        _allTokens.push(tokenId);
    }

    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {
        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;
        uint256 tokenIndex = _ownedTokensIndex[tokenId];

        if (tokenIndex != lastTokenIndex) {
            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];

            _ownedTokens[from][tokenIndex] = lastTokenId;
            _ownedTokensIndex[lastTokenId] = tokenIndex;
        }

        delete _ownedTokensIndex[tokenId];
        delete _ownedTokens[from][lastTokenIndex];
    }

    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
        uint256 lastTokenIndex = _allTokens.length - 1;
        uint256 tokenIndex = _allTokensIndex[tokenId];
        uint256 lastTokenId = _allTokens[lastTokenIndex];

        _allTokens[tokenIndex] = lastTokenId;
        _allTokensIndex[lastTokenId] = tokenIndex;

        delete _allTokensIndex[tokenId];
        _allTokens.pop();
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol
pragma solidity ^0.8.0;

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

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

pragma solidity >=0.7.0 <0.9.0;

contract WeirdVitalik is ERC721Enumerable, Ownable {
  using Strings for uint256;

  string baseURI;
  string public baseExtension = ".json";
  uint256 public cost = 50 ether;
  uint256 public maxSupply = 3744;
  uint256 public maxMintAmount = 20;
  bool public paused = false;
  bool public revealed = false;
  string public notRevealedUri;

  constructor(
    string memory _name,
    string memory _symbol,
    string memory _initBaseURI,
    string memory _initNotRevealedUri
  ) ERC721(_name, _symbol) {
    setBaseURI(_initBaseURI);
    setNotRevealedURI(_initNotRevealedUri);
  }

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

  function mint(uint256 _mintAmount) public payable {
    uint256 supply = totalSupply();
    require(!paused);
    require(_mintAmount > 0);
    require(_mintAmount <= maxMintAmount);
    require(supply + _mintAmount <= maxSupply);

    if (msg.sender != owner()) {
      require(msg.value >= cost * _mintAmount);
    }

    for (uint256 i = 1; i <= _mintAmount; i++) {
      _safeMint(msg.sender, supply + i);
    }
  }

  function walletOfOwner(address _owner)
    public
    view
    returns (uint256[] memory)
  {
    uint256 ownerTokenCount = balanceOf(_owner);
    uint256[] memory tokenIds = new uint256[](ownerTokenCount);
    for (uint256 i; i < ownerTokenCount; i++) {
      tokenIds[i] = tokenOfOwnerByIndex(_owner, i);
    }
    return tokenIds;
  }

  function tokenURI(uint256 tokenId)
    public
    view
    virtual
    override
    returns (string memory)
  {
    require(
      _exists(tokenId),
      "ERC721Metadata: URI query for nonexistent token"
    );
    
    if(revealed == false) {
        return notRevealedUri;
    }

    string memory currentBaseURI = _baseURI();
    return bytes(currentBaseURI).length > 0
        ? string(abi.encodePacked(currentBaseURI, tokenId.toString(), baseExtension))
        : "";
  }

  function reveal() public onlyOwner {
      revealed = true;
  }
  
  function setCost(uint256 _newCost) public onlyOwner {
    cost = _newCost;
  }

  function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyOwner {
    maxMintAmount = _newmaxMintAmount;
  }
  
  function setNotRevealedURI(string memory _notRevealedURI) public onlyOwner {
    notRevealedUri = _notRevealedURI;
  }

  function setBaseURI(string memory _newBaseURI) public onlyOwner {
    baseURI = _newBaseURI;
  }

  function setBaseExtension(string memory _newBaseExtension) public onlyOwner {
    baseExtension = _newBaseExtension;
  }

  function pause(bool _state) public onlyOwner {
    paused = _state;
  }
 
  function withdraw() public payable onlyOwner {
    (bool os, ) = payable(owner()).call{value: address(this).balance}("");
    require(os);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_initBaseURI","type":"string"},{"internalType":"string","name":"_initNotRevealedUri","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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":"maxMintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notRevealedUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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":"_newBaseExtension","type":"string"}],"name":"setBaseExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_notRevealedURI","type":"string"}],"name":"setNotRevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxMintAmount","type":"uint256"}],"name":"setmaxMintAmount","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]

60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600c908051906020019062000051929190620003a3565b506802b5e3af16b1880000600d55610ea0600e556014600f556000601060006101000a81548160ff0219169083151502179055506000601060016101000a81548160ff021916908315150217905550348015620000ad57600080fd5b5060405162004bb238038062004bb28339818101604052810190620000d39190620005f0565b83838160009080519060200190620000ed929190620003a3565b50806001908051906020019062000106929190620003a3565b505050620001296200011d6200015560201b60201c565b6200015d60201b60201c565b6200013a826200022360201b60201c565b6200014b81620002ce60201b60201c565b50505050620007c6565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002336200015560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002596200037960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a9906200073f565b60405180910390fd5b80600b9080519060200190620002ca929190620003a3565b5050565b620002de6200015560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003046200037960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200035d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000354906200073f565b60405180910390fd5b806011908051906020019062000375929190620003a3565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620003b19062000790565b90600052602060002090601f016020900481019282620003d5576000855562000421565b82601f10620003f057805160ff191683800117855562000421565b8280016001018555821562000421579182015b828111156200042057825182559160200191906001019062000403565b5b50905062000430919062000434565b5090565b5b808211156200044f57600081600090555060010162000435565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004bc8262000471565b810181811067ffffffffffffffff82111715620004de57620004dd62000482565b5b80604052505050565b6000620004f362000453565b9050620005018282620004b1565b919050565b600067ffffffffffffffff82111562000524576200052362000482565b5b6200052f8262000471565b9050602081019050919050565b60005b838110156200055c5780820151818401526020810190506200053f565b838111156200056c576000848401525b50505050565b600062000589620005838462000506565b620004e7565b905082815260208101848484011115620005a857620005a76200046c565b5b620005b58482856200053c565b509392505050565b600082601f830112620005d557620005d462000467565b5b8151620005e784826020860162000572565b91505092915050565b600080600080608085870312156200060d576200060c6200045d565b5b600085015167ffffffffffffffff8111156200062e576200062d62000462565b5b6200063c87828801620005bd565b945050602085015167ffffffffffffffff81111562000660576200065f62000462565b5b6200066e87828801620005bd565b935050604085015167ffffffffffffffff81111562000692576200069162000462565b5b620006a087828801620005bd565b925050606085015167ffffffffffffffff811115620006c457620006c362000462565b5b620006d287828801620005bd565b91505092959194509250565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000727602083620006de565b91506200073482620006ef565b602082019050919050565b600060208201905081810360008301526200075a8162000718565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007a957607f821691505b60208210811415620007c057620007bf62000761565b5b50919050565b6143dc80620007d66000396000f3fe60806040526004361061020f5760003560e01c80635c975abb11610118578063a475b5dd116100a0578063d5abeb011161006f578063d5abeb011461076f578063da3ef23f1461079a578063e985e9c5146107c3578063f2c4ce1e14610800578063f2fde38b146108295761020f565b8063a475b5dd146106c7578063b88d4fde146106de578063c668286214610707578063c87b56dd146107325761020f565b80637f00c7a6116100e75780637f00c7a6146106035780638da5cb5b1461062c57806395d89b4114610657578063a0712d6814610682578063a22cb4651461069e5761020f565b80635c975abb146105475780636352211e1461057257806370a08231146105af578063715018a6146105ec5761020f565b806323b872dd1161019b578063438b63001161016a578063438b63001461045057806344a0d68a1461048d5780634f6ccce7146104b657806351830227146104f357806355f804b31461051e5761020f565b806323b872dd146103b75780632f745c59146103e05780633ccfd60b1461041d57806342842e0e146104275761020f565b8063081c8c44116101e2578063081c8c44146102e2578063095ea7b31461030d57806313faede61461033657806318160ddd14610361578063239c70ae1461038c5761020f565b806301ffc9a71461021457806302329a291461025157806306fdde031461027a578063081812fc146102a5575b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612dd6565b610852565b6040516102489190612e1e565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190612e65565b6108cc565b005b34801561028657600080fd5b5061028f610965565b60405161029c9190612f2b565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c79190612f83565b6109f7565b6040516102d99190612ff1565b60405180910390f35b3480156102ee57600080fd5b506102f7610a7c565b6040516103049190612f2b565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190613038565b610b0a565b005b34801561034257600080fd5b5061034b610c22565b6040516103589190613087565b60405180910390f35b34801561036d57600080fd5b50610376610c28565b6040516103839190613087565b60405180910390f35b34801561039857600080fd5b506103a1610c35565b6040516103ae9190613087565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d991906130a2565b610c3b565b005b3480156103ec57600080fd5b5061040760048036038101906104029190613038565b610c9b565b6040516104149190613087565b60405180910390f35b610425610d40565b005b34801561043357600080fd5b5061044e600480360381019061044991906130a2565b610e3c565b005b34801561045c57600080fd5b50610477600480360381019061047291906130f5565b610e5c565b60405161048491906131e0565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612f83565b610f0a565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612f83565b610f90565b6040516104ea9190613087565b60405180910390f35b3480156104ff57600080fd5b50610508611001565b6040516105159190612e1e565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190613337565b611014565b005b34801561055357600080fd5b5061055c6110aa565b6040516105699190612e1e565b60405180910390f35b34801561057e57600080fd5b5061059960048036038101906105949190612f83565b6110bd565b6040516105a69190612ff1565b60405180910390f35b3480156105bb57600080fd5b506105d660048036038101906105d191906130f5565b61116f565b6040516105e39190613087565b60405180910390f35b3480156105f857600080fd5b50610601611227565b005b34801561060f57600080fd5b5061062a60048036038101906106259190612f83565b6112af565b005b34801561063857600080fd5b50610641611335565b60405161064e9190612ff1565b60405180910390f35b34801561066357600080fd5b5061066c61135f565b6040516106799190612f2b565b60405180910390f35b61069c60048036038101906106979190612f83565b6113f1565b005b3480156106aa57600080fd5b506106c560048036038101906106c09190613380565b6114dd565b005b3480156106d357600080fd5b506106dc61165e565b005b3480156106ea57600080fd5b5061070560048036038101906107009190613461565b6116f7565b005b34801561071357600080fd5b5061071c611759565b6040516107299190612f2b565b60405180910390f35b34801561073e57600080fd5b5061075960048036038101906107549190612f83565b6117e7565b6040516107669190612f2b565b60405180910390f35b34801561077b57600080fd5b50610784611940565b6040516107919190613087565b60405180910390f35b3480156107a657600080fd5b506107c160048036038101906107bc9190613337565b611946565b005b3480156107cf57600080fd5b506107ea60048036038101906107e591906134e4565b6119dc565b6040516107f79190612e1e565b60405180910390f35b34801561080c57600080fd5b5061082760048036038101906108229190613337565b611a70565b005b34801561083557600080fd5b50610850600480360381019061084b91906130f5565b611b06565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c557506108c482611bfe565b5b9050919050565b6108d4611ce0565b73ffffffffffffffffffffffffffffffffffffffff166108f2611335565b73ffffffffffffffffffffffffffffffffffffffff1614610948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093f90613570565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b606060008054610974906135bf565b80601f01602080910402602001604051908101604052809291908181526020018280546109a0906135bf565b80156109ed5780601f106109c2576101008083540402835291602001916109ed565b820191906000526020600020905b8154815290600101906020018083116109d057829003601f168201915b5050505050905090565b6000610a0282611ce8565b610a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3890613663565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60118054610a89906135bf565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab5906135bf565b8015610b025780601f10610ad757610100808354040283529160200191610b02565b820191906000526020600020905b815481529060010190602001808311610ae557829003601f168201915b505050505081565b6000610b15826110bd565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d906136f5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ba5611ce0565b73ffffffffffffffffffffffffffffffffffffffff161480610bd45750610bd381610bce611ce0565b6119dc565b5b610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a90613787565b60405180910390fd5b610c1d8383611d54565b505050565b600d5481565b6000600880549050905090565b600f5481565b610c4c610c46611ce0565b82611e0d565b610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290613819565b60405180910390fd5b610c96838383611eeb565b505050565b6000610ca68361116f565b8210610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde906138ab565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d48611ce0565b73ffffffffffffffffffffffffffffffffffffffff16610d66611335565b73ffffffffffffffffffffffffffffffffffffffff1614610dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db390613570565b60405180910390fd5b6000610dc6611335565b73ffffffffffffffffffffffffffffffffffffffff1647604051610de9906138fc565b60006040518083038185875af1925050503d8060008114610e26576040519150601f19603f3d011682016040523d82523d6000602084013e610e2b565b606091505b5050905080610e3957600080fd5b50565b610e57838383604051806020016040528060008152506116f7565b505050565b60606000610e698361116f565b905060008167ffffffffffffffff811115610e8757610e8661320c565b5b604051908082528060200260200182016040528015610eb55781602001602082028036833780820191505090505b50905060005b82811015610eff57610ecd8582610c9b565b828281518110610ee057610edf613911565b5b6020026020010181815250508080610ef79061396f565b915050610ebb565b508092505050919050565b610f12611ce0565b73ffffffffffffffffffffffffffffffffffffffff16610f30611335565b73ffffffffffffffffffffffffffffffffffffffff1614610f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7d90613570565b60405180910390fd5b80600d8190555050565b6000610f9a610c28565b8210610fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd290613a2a565b60405180910390fd5b60088281548110610fef57610fee613911565b5b90600052602060002001549050919050565b601060019054906101000a900460ff1681565b61101c611ce0565b73ffffffffffffffffffffffffffffffffffffffff1661103a611335565b73ffffffffffffffffffffffffffffffffffffffff1614611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790613570565b60405180910390fd5b80600b90805190602001906110a6929190612cc7565b5050565b601060009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90613abc565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d790613b4e565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61122f611ce0565b73ffffffffffffffffffffffffffffffffffffffff1661124d611335565b73ffffffffffffffffffffffffffffffffffffffff16146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a90613570565b60405180910390fd5b6112ad6000612147565b565b6112b7611ce0565b73ffffffffffffffffffffffffffffffffffffffff166112d5611335565b73ffffffffffffffffffffffffffffffffffffffff161461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132290613570565b60405180910390fd5b80600f8190555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461136e906135bf565b80601f016020809104026020016040519081016040528092919081815260200182805461139a906135bf565b80156113e75780601f106113bc576101008083540402835291602001916113e7565b820191906000526020600020905b8154815290600101906020018083116113ca57829003601f168201915b5050505050905090565b60006113fb610c28565b9050601060009054906101000a900460ff161561141757600080fd5b6000821161142457600080fd5b600f5482111561143357600080fd5b600e5482826114429190613b6e565b111561144d57600080fd5b611455611335565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114a25781600d546114959190613bc4565b3410156114a157600080fd5b5b6000600190505b8281116114d8576114c53382846114c09190613b6e565b61220d565b80806114d09061396f565b9150506114a9565b505050565b6114e5611ce0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90613c6a565b60405180910390fd5b8060056000611560611ce0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661160d611ce0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116529190612e1e565b60405180910390a35050565b611666611ce0565b73ffffffffffffffffffffffffffffffffffffffff16611684611335565b73ffffffffffffffffffffffffffffffffffffffff16146116da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d190613570565b60405180910390fd5b6001601060016101000a81548160ff021916908315150217905550565b611708611702611ce0565b83611e0d565b611747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173e90613819565b60405180910390fd5b6117538484848461222b565b50505050565b600c8054611766906135bf565b80601f0160208091040260200160405190810160405280929190818152602001828054611792906135bf565b80156117df5780601f106117b4576101008083540402835291602001916117df565b820191906000526020600020905b8154815290600101906020018083116117c257829003601f168201915b505050505081565b60606117f282611ce8565b611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890613cfc565b60405180910390fd5b60001515601060019054906101000a900460ff16151514156118df576011805461185a906135bf565b80601f0160208091040260200160405190810160405280929190818152602001828054611886906135bf565b80156118d35780601f106118a8576101008083540402835291602001916118d3565b820191906000526020600020905b8154815290600101906020018083116118b657829003601f168201915b5050505050905061193b565b60006118e9612287565b905060008151116119095760405180602001604052806000815250611937565b8061191384612319565b600c60405160200161192793929190613dec565b6040516020818303038152906040525b9150505b919050565b600e5481565b61194e611ce0565b73ffffffffffffffffffffffffffffffffffffffff1661196c611335565b73ffffffffffffffffffffffffffffffffffffffff16146119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990613570565b60405180910390fd5b80600c90805190602001906119d8929190612cc7565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611a78611ce0565b73ffffffffffffffffffffffffffffffffffffffff16611a96611335565b73ffffffffffffffffffffffffffffffffffffffff1614611aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae390613570565b60405180910390fd5b8060119080519060200190611b02929190612cc7565b5050565b611b0e611ce0565b73ffffffffffffffffffffffffffffffffffffffff16611b2c611335565b73ffffffffffffffffffffffffffffffffffffffff1614611b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7990613570565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990613e8f565b60405180910390fd5b611bfb81612147565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611cc957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611cd95750611cd88261247a565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611dc7836110bd565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611e1882611ce8565b611e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4e90613f21565b60405180910390fd5b6000611e62836110bd565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ed157508373ffffffffffffffffffffffffffffffffffffffff16611eb9846109f7565b73ffffffffffffffffffffffffffffffffffffffff16145b80611ee25750611ee181856119dc565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611f0b826110bd565b73ffffffffffffffffffffffffffffffffffffffff1614611f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5890613fb3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890614045565b60405180910390fd5b611fdc8383836124e4565b611fe7600082611d54565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120379190614065565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461208e9190613b6e565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6122278282604051806020016040528060008152506125f8565b5050565b612236848484611eeb565b61224284848484612653565b612281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122789061410b565b60405180910390fd5b50505050565b6060600b8054612296906135bf565b80601f01602080910402602001604051908101604052809291908181526020018280546122c2906135bf565b801561230f5780601f106122e45761010080835404028352916020019161230f565b820191906000526020600020905b8154815290600101906020018083116122f257829003601f168201915b5050505050905090565b60606000821415612361576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612475565b600082905060005b6000821461239357808061237c9061396f565b915050600a8261238c919061415a565b9150612369565b60008167ffffffffffffffff8111156123af576123ae61320c565b5b6040519080825280601f01601f1916602001820160405280156123e15781602001600182028036833780820191505090505b5090505b6000851461246e576001826123fa9190614065565b9150600a85612409919061418b565b60306124159190613b6e565b60f81b81838151811061242b5761242a613911565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612467919061415a565b94506123e5565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6124ef8383836127db565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125325761252d816127e0565b612571565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146125705761256f8382612829565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125b4576125af81612996565b6125f3565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125f2576125f18282612a67565b5b5b505050565b6126028383612ae6565b61260f6000848484612653565b61264e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126459061410b565b60405180910390fd5b505050565b60006126748473ffffffffffffffffffffffffffffffffffffffff16612cb4565b156127ce578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261269d611ce0565b8786866040518563ffffffff1660e01b81526004016126bf9493929190614211565b6020604051808303816000875af19250505080156126fb57506040513d601f19601f820116820180604052508101906126f89190614272565b60015b61277e573d806000811461272b576040519150601f19603f3d011682016040523d82523d6000602084013e612730565b606091505b50600081511415612776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276d9061410b565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506127d3565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016128368461116f565b6128409190614065565b9050600060076000848152602001908152602001600020549050818114612925576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506129aa9190614065565b90506000600960008481526020019081526020016000205490506000600883815481106129da576129d9613911565b5b9060005260206000200154905080600883815481106129fc576129fb613911565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612a4b57612a4a61429f565b5b6001900381819060005260206000200160009055905550505050565b6000612a728361116f565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4d9061431a565b60405180910390fd5b612b5f81611ce8565b15612b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9690614386565b60405180910390fd5b612bab600083836124e4565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bfb9190613b6e565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b828054612cd3906135bf565b90600052602060002090601f016020900481019282612cf55760008555612d3c565b82601f10612d0e57805160ff1916838001178555612d3c565b82800160010185558215612d3c579182015b82811115612d3b578251825591602001919060010190612d20565b5b509050612d499190612d4d565b5090565b5b80821115612d66576000816000905550600101612d4e565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612db381612d7e565b8114612dbe57600080fd5b50565b600081359050612dd081612daa565b92915050565b600060208284031215612dec57612deb612d74565b5b6000612dfa84828501612dc1565b91505092915050565b60008115159050919050565b612e1881612e03565b82525050565b6000602082019050612e336000830184612e0f565b92915050565b612e4281612e03565b8114612e4d57600080fd5b50565b600081359050612e5f81612e39565b92915050565b600060208284031215612e7b57612e7a612d74565b5b6000612e8984828501612e50565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ecc578082015181840152602081019050612eb1565b83811115612edb576000848401525b50505050565b6000601f19601f8301169050919050565b6000612efd82612e92565b612f078185612e9d565b9350612f17818560208601612eae565b612f2081612ee1565b840191505092915050565b60006020820190508181036000830152612f458184612ef2565b905092915050565b6000819050919050565b612f6081612f4d565b8114612f6b57600080fd5b50565b600081359050612f7d81612f57565b92915050565b600060208284031215612f9957612f98612d74565b5b6000612fa784828501612f6e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fdb82612fb0565b9050919050565b612feb81612fd0565b82525050565b60006020820190506130066000830184612fe2565b92915050565b61301581612fd0565b811461302057600080fd5b50565b6000813590506130328161300c565b92915050565b6000806040838503121561304f5761304e612d74565b5b600061305d85828601613023565b925050602061306e85828601612f6e565b9150509250929050565b61308181612f4d565b82525050565b600060208201905061309c6000830184613078565b92915050565b6000806000606084860312156130bb576130ba612d74565b5b60006130c986828701613023565b93505060206130da86828701613023565b92505060406130eb86828701612f6e565b9150509250925092565b60006020828403121561310b5761310a612d74565b5b600061311984828501613023565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61315781612f4d565b82525050565b6000613169838361314e565b60208301905092915050565b6000602082019050919050565b600061318d82613122565b613197818561312d565b93506131a28361313e565b8060005b838110156131d35781516131ba888261315d565b97506131c583613175565b9250506001810190506131a6565b5085935050505092915050565b600060208201905081810360008301526131fa8184613182565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61324482612ee1565b810181811067ffffffffffffffff821117156132635761326261320c565b5b80604052505050565b6000613276612d6a565b9050613282828261323b565b919050565b600067ffffffffffffffff8211156132a2576132a161320c565b5b6132ab82612ee1565b9050602081019050919050565b82818337600083830152505050565b60006132da6132d584613287565b61326c565b9050828152602081018484840111156132f6576132f5613207565b5b6133018482856132b8565b509392505050565b600082601f83011261331e5761331d613202565b5b813561332e8482602086016132c7565b91505092915050565b60006020828403121561334d5761334c612d74565b5b600082013567ffffffffffffffff81111561336b5761336a612d79565b5b61337784828501613309565b91505092915050565b6000806040838503121561339757613396612d74565b5b60006133a585828601613023565b92505060206133b685828601612e50565b9150509250929050565b600067ffffffffffffffff8211156133db576133da61320c565b5b6133e482612ee1565b9050602081019050919050565b60006134046133ff846133c0565b61326c565b9050828152602081018484840111156134205761341f613207565b5b61342b8482856132b8565b509392505050565b600082601f83011261344857613447613202565b5b81356134588482602086016133f1565b91505092915050565b6000806000806080858703121561347b5761347a612d74565b5b600061348987828801613023565b945050602061349a87828801613023565b93505060406134ab87828801612f6e565b925050606085013567ffffffffffffffff8111156134cc576134cb612d79565b5b6134d887828801613433565b91505092959194509250565b600080604083850312156134fb576134fa612d74565b5b600061350985828601613023565b925050602061351a85828601613023565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061355a602083612e9d565b915061356582613524565b602082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135d757607f821691505b602082108114156135eb576135ea613590565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061364d602c83612e9d565b9150613658826135f1565b604082019050919050565b6000602082019050818103600083015261367c81613640565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006136df602183612e9d565b91506136ea82613683565b604082019050919050565b6000602082019050818103600083015261370e816136d2565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613771603883612e9d565b915061377c82613715565b604082019050919050565b600060208201905081810360008301526137a081613764565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613803603183612e9d565b915061380e826137a7565b604082019050919050565b60006020820190508181036000830152613832816137f6565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613895602b83612e9d565b91506138a082613839565b604082019050919050565b600060208201905081810360008301526138c481613888565b9050919050565b600081905092915050565b50565b60006138e66000836138cb565b91506138f1826138d6565b600082019050919050565b6000613907826138d9565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061397a82612f4d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156139ad576139ac613940565b5b600182019050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613a14602c83612e9d565b9150613a1f826139b8565b604082019050919050565b60006020820190508181036000830152613a4381613a07565b9050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000613aa6602983612e9d565b9150613ab182613a4a565b604082019050919050565b60006020820190508181036000830152613ad581613a99565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613b38602a83612e9d565b9150613b4382613adc565b604082019050919050565b60006020820190508181036000830152613b6781613b2b565b9050919050565b6000613b7982612f4d565b9150613b8483612f4d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bb957613bb8613940565b5b828201905092915050565b6000613bcf82612f4d565b9150613bda83612f4d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c1357613c12613940565b5b828202905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613c54601983612e9d565b9150613c5f82613c1e565b602082019050919050565b60006020820190508181036000830152613c8381613c47565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613ce6602f83612e9d565b9150613cf182613c8a565b604082019050919050565b60006020820190508181036000830152613d1581613cd9565b9050919050565b600081905092915050565b6000613d3282612e92565b613d3c8185613d1c565b9350613d4c818560208601612eae565b80840191505092915050565b60008190508160005260206000209050919050565b60008154613d7a816135bf565b613d848186613d1c565b94506001821660008114613d9f5760018114613db057613de3565b60ff19831686528186019350613de3565b613db985613d58565b60005b83811015613ddb57815481890152600182019150602081019050613dbc565b838801955050505b50505092915050565b6000613df88286613d27565b9150613e048285613d27565b9150613e108284613d6d565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e79602683612e9d565b9150613e8482613e1d565b604082019050919050565b60006020820190508181036000830152613ea881613e6c565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613f0b602c83612e9d565b9150613f1682613eaf565b604082019050919050565b60006020820190508181036000830152613f3a81613efe565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b6000613f9d602983612e9d565b9150613fa882613f41565b604082019050919050565b60006020820190508181036000830152613fcc81613f90565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061402f602483612e9d565b915061403a82613fd3565b604082019050919050565b6000602082019050818103600083015261405e81614022565b9050919050565b600061407082612f4d565b915061407b83612f4d565b92508282101561408e5761408d613940565b5b828203905092915050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006140f5603283612e9d565b915061410082614099565b604082019050919050565b60006020820190508181036000830152614124816140e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061416582612f4d565b915061417083612f4d565b9250826141805761417f61412b565b5b828204905092915050565b600061419682612f4d565b91506141a183612f4d565b9250826141b1576141b061412b565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b60006141e3826141bc565b6141ed81856141c7565b93506141fd818560208601612eae565b61420681612ee1565b840191505092915050565b60006080820190506142266000830187612fe2565b6142336020830186612fe2565b6142406040830185613078565b818103606083015261425281846141d8565b905095945050505050565b60008151905061426c81612daa565b92915050565b60006020828403121561428857614287612d74565b5b60006142968482850161425d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614304602083612e9d565b915061430f826142ce565b602082019050919050565b60006020820190508181036000830152614333816142f7565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614370601c83612e9d565b915061437b8261433a565b602082019050919050565b6000602082019050818103600083015261439f81614363565b905091905056fea26469706673582212201e8b0a8b5a03cfb67cbbc0515f2bc7046401a3c5e50ade523b358f296fca986464736f6c634300080a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000c5765697264566974616c696b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000257560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d554c693775734765786e527535377a4d7341675a5a6943425367545858336e79476a526979727669634672452f000000000000000000000000000000000000000000000000000000000000000000000000000000000041697066733a2f2f516d635a52686b71584144767665545452366b5a4d515952544d47506f385166354e4b3771357268545a634e44482f68696464656e2e6a736f6e00000000000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000c5765697264566974616c696b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000257560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d554c693775734765786e527535377a4d7341675a5a6943425367545858336e79476a526979727669634672452f000000000000000000000000000000000000000000000000000000000000000000000000000000000041697066733a2f2f516d635a52686b71584144767665545452366b5a4d515952544d47506f385166354e4b3771357268545a634e44482f68696464656e2e6a736f6e00000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): WeirdVitalik
Arg [1] : _symbol (string): WV
Arg [2] : _initBaseURI (string): ipfs://QmULi7usGexnRu57zMsAgZZiCBSgTXX3nyGjRiyrvicFrE/
Arg [3] : _initNotRevealedUri (string): ipfs://QmcZRhkqXADvveTTR6kZMQYRTMGPo8Qf5NK7q5rhTZcNDH/hidden.json

-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [5] : 5765697264566974616c696b0000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [7] : 5756000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000036
Arg [9] : 697066733a2f2f516d554c693775734765786e527535377a4d7341675a5a6943
Arg [10] : 425367545858336e79476a526979727669634672452f00000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000041
Arg [12] : 697066733a2f2f516d635a52686b71584144767665545452366b5a4d51595254
Arg [13] : 4d47506f385166354e4b3771357268545a634e44482f68696464656e2e6a736f
Arg [14] : 6e00000000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

21077:2885:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17177:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23734:73;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10187:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11270:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21399:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10851:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21226:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17673:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21297:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11974:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17409:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23814:145;;;:::i;:::-;;12321:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22236:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23166:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17794:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21366:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23502:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21335:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9940:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9724:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20560:94;;;;;;;;;;;;;:::i;:::-;;23252:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20337:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10295:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21797:433;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11499:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23093:65;;;;;;;;;;;;;:::i;:::-;;12514:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21184:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22590:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21261:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23606:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11802:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23376:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20662:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17177:224;17279:4;17318:35;17303:50;;;:11;:50;;;;:90;;;;17357:36;17381:11;17357:23;:36::i;:::-;17303:90;17296:97;;17177:224;;;:::o;23734:73::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23795:6:::1;23786;;:15;;;;;;;;;;;;;;;;;;23734:73:::0;:::o;10187:100::-;10241:13;10274:5;10267:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10187:100;:::o;11270:221::-;11346:7;11374:16;11382:7;11374;:16::i;:::-;11366:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11459:15;:24;11475:7;11459:24;;;;;;;;;;;;;;;;;;;;;11452:31;;11270:221;;;:::o;21399:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10851:411::-;10932:13;10948:23;10963:7;10948:14;:23::i;:::-;10932:39;;10996:5;10990:11;;:2;:11;;;;10982:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11090:5;11074:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;11099:37;11116:5;11123:12;:10;:12::i;:::-;11099:16;:37::i;:::-;11074:62;11052:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;11233:21;11242:2;11246:7;11233:8;:21::i;:::-;10921:341;10851:411;;:::o;21226:30::-;;;;:::o;17673:113::-;17734:7;17761:10;:17;;;;17754:24;;17673:113;:::o;21297:33::-;;;;:::o;11974:339::-;12169:41;12188:12;:10;:12::i;:::-;12202:7;12169:18;:41::i;:::-;12161:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;12277:28;12287:4;12293:2;12297:7;12277:9;:28::i;:::-;11974:339;;;:::o;17409:256::-;17506:7;17542:23;17559:5;17542:16;:23::i;:::-;17534:5;:31;17526:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17631:12;:19;17644:5;17631:19;;;;;;;;;;;;;;;:26;17651:5;17631:26;;;;;;;;;;;;17624:33;;17409:256;;;;:::o;23814:145::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23867:7:::1;23888;:5;:7::i;:::-;23880:21;;23909;23880:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23866:69;;;23950:2;23942:11;;;::::0;::::1;;23859:100;23814:145::o:0;12321:185::-;12459:39;12476:4;12482:2;12486:7;12459:39;;;;;;;;;;;;:16;:39::i;:::-;12321:185;;;:::o;22236:348::-;22311:16;22339:23;22365:17;22375:6;22365:9;:17::i;:::-;22339:43;;22389:25;22431:15;22417:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22389:58;;22459:9;22454:103;22474:15;22470:1;:19;22454:103;;;22519:30;22539:6;22547:1;22519:19;:30::i;:::-;22505:8;22514:1;22505:11;;;;;;;;:::i;:::-;;;;;;;:44;;;;;22491:3;;;;;:::i;:::-;;;;22454:103;;;;22570:8;22563:15;;;;22236:348;;;:::o;23166:80::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23232:8:::1;23225:4;:15;;;;23166:80:::0;:::o;17794:233::-;17869:7;17905:30;:28;:30::i;:::-;17897:5;:38;17889:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;18002:10;18013:5;18002:17;;;;;;;;:::i;:::-;;;;;;;;;;17995:24;;17794:233;;;:::o;21366:28::-;;;;;;;;;;;;;:::o;23502:98::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23583:11:::1;23573:7;:21;;;;;;;;;;;;:::i;:::-;;23502:98:::0;:::o;21335:26::-;;;;;;;;;;;;;:::o;9940:239::-;10012:7;10032:13;10048:7;:16;10056:7;10048:16;;;;;;;;;;;;;;;;;;;;;10032:32;;10100:1;10083:19;;:5;:19;;;;10075:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10166:5;10159:12;;;9940:239;;;:::o;9724:208::-;9796:7;9841:1;9824:19;;:5;:19;;;;9816:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9908:9;:16;9918:5;9908:16;;;;;;;;;;;;;;;;9901:23;;9724:208;;;:::o;20560:94::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20625:21:::1;20643:1;20625:9;:21::i;:::-;20560:94::o:0;23252:116::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23345:17:::1;23329:13;:33;;;;23252:116:::0;:::o;20337:87::-;20383:7;20410:6;;;;;;;;;;;20403:13;;20337:87;:::o;10295:104::-;10351:13;10384:7;10377:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10295:104;:::o;21797:433::-;21854:14;21871:13;:11;:13::i;:::-;21854:30;;21900:6;;;;;;;;;;;21899:7;21891:16;;;;;;21936:1;21922:11;:15;21914:24;;;;;;21968:13;;21953:11;:28;;21945:37;;;;;;22021:9;;22006:11;21997:6;:20;;;;:::i;:::-;:33;;21989:42;;;;;;22058:7;:5;:7::i;:::-;22044:21;;:10;:21;;;22040:84;;22104:11;22097:4;;:18;;;;:::i;:::-;22084:9;:31;;22076:40;;;;;;22040:84;22137:9;22149:1;22137:13;;22132:93;22157:11;22152:1;:16;22132:93;;22184:33;22194:10;22215:1;22206:6;:10;;;;:::i;:::-;22184:9;:33::i;:::-;22170:3;;;;;:::i;:::-;;;;22132:93;;;;21847:383;21797:433;:::o;11499:295::-;11614:12;:10;:12::i;:::-;11602:24;;:8;:24;;;;11594:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;11714:8;11669:18;:32;11688:12;:10;:12::i;:::-;11669:32;;;;;;;;;;;;;;;:42;11702:8;11669:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;11767:8;11738:48;;11753:12;:10;:12::i;:::-;11738:48;;;11777:8;11738:48;;;;;;:::i;:::-;;;;;;;;11499:295;;:::o;23093:65::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23148:4:::1;23137:8;;:15;;;;;;;;;;;;;;;;;;23093:65::o:0;12514:328::-;12689:41;12708:12;:10;:12::i;:::-;12722:7;12689:18;:41::i;:::-;12681:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;12795:39;12809:4;12815:2;12819:7;12828:5;12795:13;:39::i;:::-;12514:328;;;;:::o;21184:37::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22590:497::-;22688:13;22729:16;22737:7;22729;:16::i;:::-;22713:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;22838:5;22826:17;;:8;;;;;;;;;;;:17;;;22823:62;;;22863:14;22856:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22823:62;22893:28;22924:10;:8;:10::i;:::-;22893:41;;22979:1;22954:14;22948:28;:32;:133;;;;;;;;;;;;;;;;;23016:14;23032:18;:7;:16;:18::i;:::-;23052:13;22999:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22948:133;22941:140;;;22590:497;;;;:::o;21261:31::-;;;;:::o;23606:122::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23705:17:::1;23689:13;:33;;;;;;;;;;;;:::i;:::-;;23606:122:::0;:::o;11802:164::-;11899:4;11923:18;:25;11942:5;11923:25;;;;;;;;;;;;;;;:35;11949:8;11923:35;;;;;;;;;;;;;;;;;;;;;;;;;11916:42;;11802:164;;;;:::o;23376:120::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23475:15:::1;23458:14;:32;;;;;;;;;;;;:::i;:::-;;23376:120:::0;:::o;20662:192::-;20483:12;:10;:12::i;:::-;20472:23;;:7;:5;:7::i;:::-;:23;;;20464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20771:1:::1;20751:22;;:8;:22;;;;20743:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20827:19;20837:8;20827:9;:19::i;:::-;20662:192:::0;:::o;9411:305::-;9513:4;9565:25;9550:40;;;:11;:40;;;;:105;;;;9622:33;9607:48;;;:11;:48;;;;9550:105;:158;;;;9672:36;9696:11;9672:23;:36::i;:::-;9550:158;9530:178;;9411:305;;;:::o;8317:98::-;8370:7;8397:10;8390:17;;8317:98;:::o;13173:127::-;13238:4;13290:1;13262:30;;:7;:16;13270:7;13262:16;;;;;;;;;;;;;;;;;;;;;:30;;;;13255:37;;13173:127;;;:::o;15404:174::-;15506:2;15479:15;:24;15495:7;15479:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15562:7;15558:2;15524:46;;15533:23;15548:7;15533:14;:23::i;:::-;15524:46;;;;;;;;;;;;15404:174;;:::o;13308:348::-;13401:4;13426:16;13434:7;13426;:16::i;:::-;13418:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13502:13;13518:23;13533:7;13518:14;:23::i;:::-;13502:39;;13571:5;13560:16;;:7;:16;;;:51;;;;13604:7;13580:31;;:20;13592:7;13580:11;:20::i;:::-;:31;;;13560:51;:87;;;;13615:32;13632:5;13639:7;13615:16;:32::i;:::-;13560:87;13552:96;;;13308:348;;;;:::o;14872:524::-;15031:4;15004:31;;:23;15019:7;15004:14;:23::i;:::-;:31;;;14996:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15114:1;15100:16;;:2;:16;;;;15092:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15170:39;15191:4;15197:2;15201:7;15170:20;:39::i;:::-;15220:29;15237:1;15241:7;15220:8;:29::i;:::-;15281:1;15262:9;:15;15272:4;15262:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;15310:1;15293:9;:13;15303:2;15293:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;15341:2;15322:7;:16;15330:7;15322:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15380:7;15376:2;15361:27;;15370:4;15361:27;;;;;;;;;;;;14872:524;;;:::o;20862:173::-;20918:16;20937:6;;;;;;;;;;;20918:25;;20963:8;20954:6;;:17;;;;;;;;;;;;;;;;;;21018:8;20987:40;;21008:8;20987:40;;;;;;;;;;;;20907:128;20862:173;:::o;13667:110::-;13743:26;13753:2;13757:7;13743:26;;;;;;;;;;;;:9;:26::i;:::-;13667:110;;:::o;12850:315::-;13007:28;13017:4;13023:2;13027:7;13007:9;:28::i;:::-;13054:48;13077:4;13083:2;13087:7;13096:5;13054:22;:48::i;:::-;13046:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;12850:315;;;;:::o;21689:102::-;21749:13;21778:7;21771:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21689:102;:::o;2431:532::-;2487:13;2526:1;2517:5;:10;2513:53;;;2544:10;;;;;;;;;;;;;;;;;;;;;2513:53;2576:12;2591:5;2576:20;;2607:14;2632:78;2647:1;2639:4;:9;2632:78;;2665:8;;;;;:::i;:::-;;;;2696:2;2688:10;;;;;:::i;:::-;;;2632:78;;;2720:19;2752:6;2742:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2720:39;;2770:154;2786:1;2777:5;:10;2770:154;;2814:1;2804:11;;;;;:::i;:::-;;;2881:2;2873:5;:10;;;;:::i;:::-;2860:2;:24;;;;:::i;:::-;2847:39;;2830:6;2837;2830:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;2910:2;2901:11;;;;;:::i;:::-;;;2770:154;;;2948:6;2934:21;;;;;2431:532;;;;:::o;2098:157::-;2183:4;2222:25;2207:40;;;:11;:40;;;;2200:47;;2098:157;;;:::o;18035:589::-;18179:45;18206:4;18212:2;18216:7;18179:26;:45::i;:::-;18257:1;18241:18;;:4;:18;;;18237:187;;;18276:40;18308:7;18276:31;:40::i;:::-;18237:187;;;18346:2;18338:10;;:4;:10;;;18334:90;;18365:47;18398:4;18404:7;18365:32;:47::i;:::-;18334:90;18237:187;18452:1;18438:16;;:2;:16;;;18434:183;;;18471:45;18508:7;18471:36;:45::i;:::-;18434:183;;;18544:4;18538:10;;:2;:10;;;18534:83;;18565:40;18593:2;18597:7;18565:27;:40::i;:::-;18534:83;18434:183;18035:589;;;:::o;13785:321::-;13915:18;13921:2;13925:7;13915:5;:18::i;:::-;13966:54;13997:1;14001:2;14005:7;14014:5;13966:22;:54::i;:::-;13944:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;13785:321;;;:::o;15586:799::-;15741:4;15762:15;:2;:13;;;:15::i;:::-;15758:620;;;15814:2;15798:36;;;15835:12;:10;:12::i;:::-;15849:4;15855:7;15864:5;15798:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15794:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16057:1;16040:6;:13;:18;16036:272;;;16083:60;;;;;;;;;;:::i;:::-;;;;;;;;16036:272;16258:6;16252:13;16243:6;16239:2;16235:15;16228:38;15794:529;15931:41;;;15921:51;;;:6;:51;;;;15914:58;;;;;15758:620;16362:4;16355:11;;15586:799;;;;;;;:::o;16393:126::-;;;;:::o;18861:164::-;18965:10;:17;;;;18938:15;:24;18954:7;18938:24;;;;;;;;;;;:44;;;;18993:10;19009:7;18993:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18861:164;:::o;19033:555::-;19125:22;19175:1;19150:22;19167:4;19150:16;:22::i;:::-;:26;;;;:::i;:::-;19125:51;;19187:18;19208:17;:26;19226:7;19208:26;;;;;;;;;;;;19187:47;;19265:14;19251:10;:28;19247:236;;19296:19;19318:12;:18;19331:4;19318:18;;;;;;;;;;;;;;;:34;19337:14;19318:34;;;;;;;;;;;;19296:56;;19402:11;19369:12;:18;19382:4;19369:18;;;;;;;;;;;;;;;:30;19388:10;19369:30;;;;;;;;;;;:44;;;;19461:10;19428:17;:30;19446:11;19428:30;;;;;;;;;;;:43;;;;19281:202;19247:236;19502:17;:26;19520:7;19502:26;;;;;;;;;;;19495:33;;;19546:12;:18;19559:4;19546:18;;;;;;;;;;;;;;;:34;19565:14;19546:34;;;;;;;;;;;19539:41;;;19114:474;;19033:555;;:::o;19596:423::-;19678:22;19723:1;19703:10;:17;;;;:21;;;;:::i;:::-;19678:46;;19735:18;19756:15;:24;19772:7;19756:24;;;;;;;;;;;;19735:45;;19791:19;19813:10;19824:14;19813:26;;;;;;;;:::i;:::-;;;;;;;;;;19791:48;;19877:11;19852:10;19863;19852:22;;;;;;;;:::i;:::-;;;;;;;;;:36;;;;19930:10;19899:15;:28;19915:11;19899:28;;;;;;;;;;;:41;;;;19960:15;:24;19976:7;19960:24;;;;;;;;;;;19953:31;;;19995:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19667:352;;;19596:423;:::o;18632:221::-;18717:14;18734:20;18751:2;18734:16;:20::i;:::-;18717:37;;18792:7;18765:12;:16;18778:2;18765:16;;;;;;;;;;;;;;;:24;18782:6;18765:24;;;;;;;;;;;:34;;;;18839:6;18810:17;:26;18828:7;18810:26;;;;;;;;;;;:35;;;;18706:147;18632:221;;:::o;14114:382::-;14208:1;14194:16;;:2;:16;;;;14186:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;14267:16;14275:7;14267;:16::i;:::-;14266:17;14258:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14329:45;14358:1;14362:2;14366:7;14329:20;:45::i;:::-;14404:1;14387:9;:13;14397:2;14387:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;14435:2;14416:7;:16;14424:7;14416:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14480:7;14476:2;14455:33;;14472:1;14455:33;;;;;;;;;;;;14114:382;;:::o;3879:196::-;3939:4;3956:12;4023:7;4011:20;4003:28;;4066:1;4059:4;:8;4052:15;;;3879:196;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:116::-;1588:21;1603:5;1588:21;:::i;:::-;1581:5;1578:32;1568:60;;1624:1;1621;1614:12;1568:60;1518:116;:::o;1640:133::-;1683:5;1721:6;1708:20;1699:29;;1737:30;1761:5;1737:30;:::i;:::-;1640:133;;;;:::o;1779:323::-;1835:6;1884:2;1872:9;1863:7;1859:23;1855:32;1852:119;;;1890:79;;:::i;:::-;1852:119;2010:1;2035:50;2077:7;2068:6;2057:9;2053:22;2035:50;:::i;:::-;2025:60;;1981:114;1779:323;;;;:::o;2108:99::-;2160:6;2194:5;2188:12;2178:22;;2108:99;;;:::o;2213:169::-;2297:11;2331:6;2326:3;2319:19;2371:4;2366:3;2362:14;2347:29;;2213:169;;;;:::o;2388:307::-;2456:1;2466:113;2480:6;2477:1;2474:13;2466:113;;;2565:1;2560:3;2556:11;2550:18;2546:1;2541:3;2537:11;2530:39;2502:2;2499:1;2495:10;2490:15;;2466:113;;;2597:6;2594:1;2591:13;2588:101;;;2677:1;2668:6;2663:3;2659:16;2652:27;2588:101;2437:258;2388:307;;;:::o;2701:102::-;2742:6;2793:2;2789:7;2784:2;2777:5;2773:14;2769:28;2759:38;;2701:102;;;:::o;2809:364::-;2897:3;2925:39;2958:5;2925:39;:::i;:::-;2980:71;3044:6;3039:3;2980:71;:::i;:::-;2973:78;;3060:52;3105:6;3100:3;3093:4;3086:5;3082:16;3060:52;:::i;:::-;3137:29;3159:6;3137:29;:::i;:::-;3132:3;3128:39;3121:46;;2901:272;2809:364;;;;:::o;3179:313::-;3292:4;3330:2;3319:9;3315:18;3307:26;;3379:9;3373:4;3369:20;3365:1;3354:9;3350:17;3343:47;3407:78;3480:4;3471:6;3407:78;:::i;:::-;3399:86;;3179:313;;;;:::o;3498:77::-;3535:7;3564:5;3553:16;;3498:77;;;:::o;3581:122::-;3654:24;3672:5;3654:24;:::i;:::-;3647:5;3644:35;3634:63;;3693:1;3690;3683:12;3634:63;3581:122;:::o;3709:139::-;3755:5;3793:6;3780:20;3771:29;;3809:33;3836:5;3809:33;:::i;:::-;3709:139;;;;:::o;3854:329::-;3913:6;3962:2;3950:9;3941:7;3937:23;3933:32;3930:119;;;3968:79;;:::i;:::-;3930:119;4088:1;4113:53;4158:7;4149:6;4138:9;4134:22;4113:53;:::i;:::-;4103:63;;4059:117;3854:329;;;;:::o;4189:126::-;4226:7;4266:42;4259:5;4255:54;4244:65;;4189:126;;;:::o;4321:96::-;4358:7;4387:24;4405:5;4387:24;:::i;:::-;4376:35;;4321:96;;;:::o;4423:118::-;4510:24;4528:5;4510:24;:::i;:::-;4505:3;4498:37;4423:118;;:::o;4547:222::-;4640:4;4678:2;4667:9;4663:18;4655:26;;4691:71;4759:1;4748:9;4744:17;4735:6;4691:71;:::i;:::-;4547:222;;;;:::o;4775:122::-;4848:24;4866:5;4848:24;:::i;:::-;4841:5;4838:35;4828:63;;4887:1;4884;4877:12;4828:63;4775:122;:::o;4903:139::-;4949:5;4987:6;4974:20;4965:29;;5003:33;5030:5;5003:33;:::i;:::-;4903:139;;;;:::o;5048:474::-;5116:6;5124;5173:2;5161:9;5152:7;5148:23;5144:32;5141:119;;;5179:79;;:::i;:::-;5141:119;5299:1;5324:53;5369:7;5360:6;5349:9;5345:22;5324:53;:::i;:::-;5314:63;;5270:117;5426:2;5452:53;5497:7;5488:6;5477:9;5473:22;5452:53;:::i;:::-;5442:63;;5397:118;5048:474;;;;;:::o;5528:118::-;5615:24;5633:5;5615:24;:::i;:::-;5610:3;5603:37;5528:118;;:::o;5652:222::-;5745:4;5783:2;5772:9;5768:18;5760:26;;5796:71;5864:1;5853:9;5849:17;5840:6;5796:71;:::i;:::-;5652:222;;;;:::o;5880:619::-;5957:6;5965;5973;6022:2;6010:9;6001:7;5997:23;5993:32;5990:119;;;6028:79;;:::i;:::-;5990:119;6148:1;6173:53;6218:7;6209:6;6198:9;6194:22;6173:53;:::i;:::-;6163:63;;6119:117;6275:2;6301:53;6346:7;6337:6;6326:9;6322:22;6301:53;:::i;:::-;6291:63;;6246:118;6403:2;6429:53;6474:7;6465:6;6454:9;6450:22;6429:53;:::i;:::-;6419:63;;6374:118;5880:619;;;;;:::o;6505:329::-;6564:6;6613:2;6601:9;6592:7;6588:23;6584:32;6581:119;;;6619:79;;:::i;:::-;6581:119;6739:1;6764:53;6809:7;6800:6;6789:9;6785:22;6764:53;:::i;:::-;6754:63;;6710:117;6505:329;;;;:::o;6840:114::-;6907:6;6941:5;6935:12;6925:22;;6840:114;;;:::o;6960:184::-;7059:11;7093:6;7088:3;7081:19;7133:4;7128:3;7124:14;7109:29;;6960:184;;;;:::o;7150:132::-;7217:4;7240:3;7232:11;;7270:4;7265:3;7261:14;7253:22;;7150:132;;;:::o;7288:108::-;7365:24;7383:5;7365:24;:::i;:::-;7360:3;7353:37;7288:108;;:::o;7402:179::-;7471:10;7492:46;7534:3;7526:6;7492:46;:::i;:::-;7570:4;7565:3;7561:14;7547:28;;7402:179;;;;:::o;7587:113::-;7657:4;7689;7684:3;7680:14;7672:22;;7587:113;;;:::o;7736:732::-;7855:3;7884:54;7932:5;7884:54;:::i;:::-;7954:86;8033:6;8028:3;7954:86;:::i;:::-;7947:93;;8064:56;8114:5;8064:56;:::i;:::-;8143:7;8174:1;8159:284;8184:6;8181:1;8178:13;8159:284;;;8260:6;8254:13;8287:63;8346:3;8331:13;8287:63;:::i;:::-;8280:70;;8373:60;8426:6;8373:60;:::i;:::-;8363:70;;8219:224;8206:1;8203;8199:9;8194:14;;8159:284;;;8163:14;8459:3;8452:10;;7860:608;;;7736:732;;;;:::o;8474:373::-;8617:4;8655:2;8644:9;8640:18;8632:26;;8704:9;8698:4;8694:20;8690:1;8679:9;8675:17;8668:47;8732:108;8835:4;8826:6;8732:108;:::i;:::-;8724:116;;8474:373;;;;:::o;8853:117::-;8962:1;8959;8952:12;8976:117;9085:1;9082;9075:12;9099:180;9147:77;9144:1;9137:88;9244:4;9241:1;9234:15;9268:4;9265:1;9258:15;9285:281;9368:27;9390:4;9368:27;:::i;:::-;9360:6;9356:40;9498:6;9486:10;9483:22;9462:18;9450:10;9447:34;9444:62;9441:88;;;9509:18;;:::i;:::-;9441:88;9549:10;9545:2;9538:22;9328:238;9285:281;;:::o;9572:129::-;9606:6;9633:20;;:::i;:::-;9623:30;;9662:33;9690:4;9682:6;9662:33;:::i;:::-;9572:129;;;:::o;9707:308::-;9769:4;9859:18;9851:6;9848:30;9845:56;;;9881:18;;:::i;:::-;9845:56;9919:29;9941:6;9919:29;:::i;:::-;9911:37;;10003:4;9997;9993:15;9985:23;;9707:308;;;:::o;10021:154::-;10105:6;10100:3;10095;10082:30;10167:1;10158:6;10153:3;10149:16;10142:27;10021:154;;;:::o;10181:412::-;10259:5;10284:66;10300:49;10342:6;10300:49;:::i;:::-;10284:66;:::i;:::-;10275:75;;10373:6;10366:5;10359:21;10411:4;10404:5;10400:16;10449:3;10440:6;10435:3;10431:16;10428:25;10425:112;;;10456:79;;:::i;:::-;10425:112;10546:41;10580:6;10575:3;10570;10546:41;:::i;:::-;10265:328;10181:412;;;;;:::o;10613:340::-;10669:5;10718:3;10711:4;10703:6;10699:17;10695:27;10685:122;;10726:79;;:::i;:::-;10685:122;10843:6;10830:20;10868:79;10943:3;10935:6;10928:4;10920:6;10916:17;10868:79;:::i;:::-;10859:88;;10675:278;10613:340;;;;:::o;10959:509::-;11028:6;11077:2;11065:9;11056:7;11052:23;11048:32;11045:119;;;11083:79;;:::i;:::-;11045:119;11231:1;11220:9;11216:17;11203:31;11261:18;11253:6;11250:30;11247:117;;;11283:79;;:::i;:::-;11247:117;11388:63;11443:7;11434:6;11423:9;11419:22;11388:63;:::i;:::-;11378:73;;11174:287;10959:509;;;;:::o;11474:468::-;11539:6;11547;11596:2;11584:9;11575:7;11571:23;11567:32;11564:119;;;11602:79;;:::i;:::-;11564:119;11722:1;11747:53;11792:7;11783:6;11772:9;11768:22;11747:53;:::i;:::-;11737:63;;11693:117;11849:2;11875:50;11917:7;11908:6;11897:9;11893:22;11875:50;:::i;:::-;11865:60;;11820:115;11474:468;;;;;:::o;11948:307::-;12009:4;12099:18;12091:6;12088:30;12085:56;;;12121:18;;:::i;:::-;12085:56;12159:29;12181:6;12159:29;:::i;:::-;12151:37;;12243:4;12237;12233:15;12225:23;;11948:307;;;:::o;12261:410::-;12338:5;12363:65;12379:48;12420:6;12379:48;:::i;:::-;12363:65;:::i;:::-;12354:74;;12451:6;12444:5;12437:21;12489:4;12482:5;12478:16;12527:3;12518:6;12513:3;12509:16;12506:25;12503:112;;;12534:79;;:::i;:::-;12503:112;12624:41;12658:6;12653:3;12648;12624:41;:::i;:::-;12344:327;12261:410;;;;;:::o;12690:338::-;12745:5;12794:3;12787:4;12779:6;12775:17;12771:27;12761:122;;12802:79;;:::i;:::-;12761:122;12919:6;12906:20;12944:78;13018:3;13010:6;13003:4;12995:6;12991:17;12944:78;:::i;:::-;12935:87;;12751:277;12690:338;;;;:::o;13034:943::-;13129:6;13137;13145;13153;13202:3;13190:9;13181:7;13177:23;13173:33;13170:120;;;13209:79;;:::i;:::-;13170:120;13329:1;13354:53;13399:7;13390:6;13379:9;13375:22;13354:53;:::i;:::-;13344:63;;13300:117;13456:2;13482:53;13527:7;13518:6;13507:9;13503:22;13482:53;:::i;:::-;13472:63;;13427:118;13584:2;13610:53;13655:7;13646:6;13635:9;13631:22;13610:53;:::i;:::-;13600:63;;13555:118;13740:2;13729:9;13725:18;13712:32;13771:18;13763:6;13760:30;13757:117;;;13793:79;;:::i;:::-;13757:117;13898:62;13952:7;13943:6;13932:9;13928:22;13898:62;:::i;:::-;13888:72;;13683:287;13034:943;;;;;;;:::o;13983:474::-;14051:6;14059;14108:2;14096:9;14087:7;14083:23;14079:32;14076:119;;;14114:79;;:::i;:::-;14076:119;14234:1;14259:53;14304:7;14295:6;14284:9;14280:22;14259:53;:::i;:::-;14249:63;;14205:117;14361:2;14387:53;14432:7;14423:6;14412:9;14408:22;14387:53;:::i;:::-;14377:63;;14332:118;13983:474;;;;;:::o;14463:182::-;14603:34;14599:1;14591:6;14587:14;14580:58;14463:182;:::o;14651:366::-;14793:3;14814:67;14878:2;14873:3;14814:67;:::i;:::-;14807:74;;14890:93;14979:3;14890:93;:::i;:::-;15008:2;15003:3;14999:12;14992:19;;14651:366;;;:::o;15023:419::-;15189:4;15227:2;15216:9;15212:18;15204:26;;15276:9;15270:4;15266:20;15262:1;15251:9;15247:17;15240:47;15304:131;15430:4;15304:131;:::i;:::-;15296:139;;15023:419;;;:::o;15448:180::-;15496:77;15493:1;15486:88;15593:4;15590:1;15583:15;15617:4;15614:1;15607:15;15634:320;15678:6;15715:1;15709:4;15705:12;15695:22;;15762:1;15756:4;15752:12;15783:18;15773:81;;15839:4;15831:6;15827:17;15817:27;;15773:81;15901:2;15893:6;15890:14;15870:18;15867:38;15864:84;;;15920:18;;:::i;:::-;15864:84;15685:269;15634:320;;;:::o;15960:231::-;16100:34;16096:1;16088:6;16084:14;16077:58;16169:14;16164:2;16156:6;16152:15;16145:39;15960:231;:::o;16197:366::-;16339:3;16360:67;16424:2;16419:3;16360:67;:::i;:::-;16353:74;;16436:93;16525:3;16436:93;:::i;:::-;16554:2;16549:3;16545:12;16538:19;;16197:366;;;:::o;16569:419::-;16735:4;16773:2;16762:9;16758:18;16750:26;;16822:9;16816:4;16812:20;16808:1;16797:9;16793:17;16786:47;16850:131;16976:4;16850:131;:::i;:::-;16842:139;;16569:419;;;:::o;16994:220::-;17134:34;17130:1;17122:6;17118:14;17111:58;17203:3;17198:2;17190:6;17186:15;17179:28;16994:220;:::o;17220:366::-;17362:3;17383:67;17447:2;17442:3;17383:67;:::i;:::-;17376:74;;17459:93;17548:3;17459:93;:::i;:::-;17577:2;17572:3;17568:12;17561:19;;17220:366;;;:::o;17592:419::-;17758:4;17796:2;17785:9;17781:18;17773:26;;17845:9;17839:4;17835:20;17831:1;17820:9;17816:17;17809:47;17873:131;17999:4;17873:131;:::i;:::-;17865:139;;17592:419;;;:::o;18017:243::-;18157:34;18153:1;18145:6;18141:14;18134:58;18226:26;18221:2;18213:6;18209:15;18202:51;18017:243;:::o;18266:366::-;18408:3;18429:67;18493:2;18488:3;18429:67;:::i;:::-;18422:74;;18505:93;18594:3;18505:93;:::i;:::-;18623:2;18618:3;18614:12;18607:19;;18266:366;;;:::o;18638:419::-;18804:4;18842:2;18831:9;18827:18;18819:26;;18891:9;18885:4;18881:20;18877:1;18866:9;18862:17;18855:47;18919:131;19045:4;18919:131;:::i;:::-;18911:139;;18638:419;;;:::o;19063:236::-;19203:34;19199:1;19191:6;19187:14;19180:58;19272:19;19267:2;19259:6;19255:15;19248:44;19063:236;:::o;19305:366::-;19447:3;19468:67;19532:2;19527:3;19468:67;:::i;:::-;19461:74;;19544:93;19633:3;19544:93;:::i;:::-;19662:2;19657:3;19653:12;19646:19;;19305:366;;;:::o;19677:419::-;19843:4;19881:2;19870:9;19866:18;19858:26;;19930:9;19924:4;19920:20;19916:1;19905:9;19901:17;19894:47;19958:131;20084:4;19958:131;:::i;:::-;19950:139;;19677:419;;;:::o;20102:230::-;20242:34;20238:1;20230:6;20226:14;20219:58;20311:13;20306:2;20298:6;20294:15;20287:38;20102:230;:::o;20338:366::-;20480:3;20501:67;20565:2;20560:3;20501:67;:::i;:::-;20494:74;;20577:93;20666:3;20577:93;:::i;:::-;20695:2;20690:3;20686:12;20679:19;;20338:366;;;:::o;20710:419::-;20876:4;20914:2;20903:9;20899:18;20891:26;;20963:9;20957:4;20953:20;20949:1;20938:9;20934:17;20927:47;20991:131;21117:4;20991:131;:::i;:::-;20983:139;;20710:419;;;:::o;21135:147::-;21236:11;21273:3;21258:18;;21135:147;;;;:::o;21288:114::-;;:::o;21408:398::-;21567:3;21588:83;21669:1;21664:3;21588:83;:::i;:::-;21581:90;;21680:93;21769:3;21680:93;:::i;:::-;21798:1;21793:3;21789:11;21782:18;;21408:398;;;:::o;21812:379::-;21996:3;22018:147;22161:3;22018:147;:::i;:::-;22011:154;;22182:3;22175:10;;21812:379;;;:::o;22197:180::-;22245:77;22242:1;22235:88;22342:4;22339:1;22332:15;22366:4;22363:1;22356:15;22383:180;22431:77;22428:1;22421:88;22528:4;22525:1;22518:15;22552:4;22549:1;22542:15;22569:233;22608:3;22631:24;22649:5;22631:24;:::i;:::-;22622:33;;22677:66;22670:5;22667:77;22664:103;;;22747:18;;:::i;:::-;22664:103;22794:1;22787:5;22783:13;22776:20;;22569:233;;;:::o;22808:231::-;22948:34;22944:1;22936:6;22932:14;22925:58;23017:14;23012:2;23004:6;23000:15;22993:39;22808:231;:::o;23045:366::-;23187:3;23208:67;23272:2;23267:3;23208:67;:::i;:::-;23201:74;;23284:93;23373:3;23284:93;:::i;:::-;23402:2;23397:3;23393:12;23386:19;;23045:366;;;:::o;23417:419::-;23583:4;23621:2;23610:9;23606:18;23598:26;;23670:9;23664:4;23660:20;23656:1;23645:9;23641:17;23634:47;23698:131;23824:4;23698:131;:::i;:::-;23690:139;;23417:419;;;:::o;23842:228::-;23982:34;23978:1;23970:6;23966:14;23959:58;24051:11;24046:2;24038:6;24034:15;24027:36;23842:228;:::o;24076:366::-;24218:3;24239:67;24303:2;24298:3;24239:67;:::i;:::-;24232:74;;24315:93;24404:3;24315:93;:::i;:::-;24433:2;24428:3;24424:12;24417:19;;24076:366;;;:::o;24448:419::-;24614:4;24652:2;24641:9;24637:18;24629:26;;24701:9;24695:4;24691:20;24687:1;24676:9;24672:17;24665:47;24729:131;24855:4;24729:131;:::i;:::-;24721:139;;24448:419;;;:::o;24873:229::-;25013:34;25009:1;25001:6;24997:14;24990:58;25082:12;25077:2;25069:6;25065:15;25058:37;24873:229;:::o;25108:366::-;25250:3;25271:67;25335:2;25330:3;25271:67;:::i;:::-;25264:74;;25347:93;25436:3;25347:93;:::i;:::-;25465:2;25460:3;25456:12;25449:19;;25108:366;;;:::o;25480:419::-;25646:4;25684:2;25673:9;25669:18;25661:26;;25733:9;25727:4;25723:20;25719:1;25708:9;25704:17;25697:47;25761:131;25887:4;25761:131;:::i;:::-;25753:139;;25480:419;;;:::o;25905:305::-;25945:3;25964:20;25982:1;25964:20;:::i;:::-;25959:25;;25998:20;26016:1;25998:20;:::i;:::-;25993:25;;26152:1;26084:66;26080:74;26077:1;26074:81;26071:107;;;26158:18;;:::i;:::-;26071:107;26202:1;26199;26195:9;26188:16;;25905:305;;;;:::o;26216:348::-;26256:7;26279:20;26297:1;26279:20;:::i;:::-;26274:25;;26313:20;26331:1;26313:20;:::i;:::-;26308:25;;26501:1;26433:66;26429:74;26426:1;26423:81;26418:1;26411:9;26404:17;26400:105;26397:131;;;26508:18;;:::i;:::-;26397:131;26556:1;26553;26549:9;26538:20;;26216:348;;;;:::o;26570:175::-;26710:27;26706:1;26698:6;26694:14;26687:51;26570:175;:::o;26751:366::-;26893:3;26914:67;26978:2;26973:3;26914:67;:::i;:::-;26907:74;;26990:93;27079:3;26990:93;:::i;:::-;27108:2;27103:3;27099:12;27092:19;;26751:366;;;:::o;27123:419::-;27289:4;27327:2;27316:9;27312:18;27304:26;;27376:9;27370:4;27366:20;27362:1;27351:9;27347:17;27340:47;27404:131;27530:4;27404:131;:::i;:::-;27396:139;;27123:419;;;:::o;27548:234::-;27688:34;27684:1;27676:6;27672:14;27665:58;27757:17;27752:2;27744:6;27740:15;27733:42;27548:234;:::o;27788:366::-;27930:3;27951:67;28015:2;28010:3;27951:67;:::i;:::-;27944:74;;28027:93;28116:3;28027:93;:::i;:::-;28145:2;28140:3;28136:12;28129:19;;27788:366;;;:::o;28160:419::-;28326:4;28364:2;28353:9;28349:18;28341:26;;28413:9;28407:4;28403:20;28399:1;28388:9;28384:17;28377:47;28441:131;28567:4;28441:131;:::i;:::-;28433:139;;28160:419;;;:::o;28585:148::-;28687:11;28724:3;28709:18;;28585:148;;;;:::o;28739:377::-;28845:3;28873:39;28906:5;28873:39;:::i;:::-;28928:89;29010:6;29005:3;28928:89;:::i;:::-;28921:96;;29026:52;29071:6;29066:3;29059:4;29052:5;29048:16;29026:52;:::i;:::-;29103:6;29098:3;29094:16;29087:23;;28849:267;28739:377;;;;:::o;29122:141::-;29171:4;29194:3;29186:11;;29217:3;29214:1;29207:14;29251:4;29248:1;29238:18;29230:26;;29122:141;;;:::o;29293:845::-;29396:3;29433:5;29427:12;29462:36;29488:9;29462:36;:::i;:::-;29514:89;29596:6;29591:3;29514:89;:::i;:::-;29507:96;;29634:1;29623:9;29619:17;29650:1;29645:137;;;;29796:1;29791:341;;;;29612:520;;29645:137;29729:4;29725:9;29714;29710:25;29705:3;29698:38;29765:6;29760:3;29756:16;29749:23;;29645:137;;29791:341;29858:38;29890:5;29858:38;:::i;:::-;29918:1;29932:154;29946:6;29943:1;29940:13;29932:154;;;30020:7;30014:14;30010:1;30005:3;30001:11;29994:35;30070:1;30061:7;30057:15;30046:26;;29968:4;29965:1;29961:12;29956:17;;29932:154;;;30115:6;30110:3;30106:16;30099:23;;29798:334;;29612:520;;29400:738;;29293:845;;;;:::o;30144:589::-;30369:3;30391:95;30482:3;30473:6;30391:95;:::i;:::-;30384:102;;30503:95;30594:3;30585:6;30503:95;:::i;:::-;30496:102;;30615:92;30703:3;30694:6;30615:92;:::i;:::-;30608:99;;30724:3;30717:10;;30144:589;;;;;;:::o;30739:225::-;30879:34;30875:1;30867:6;30863:14;30856:58;30948:8;30943:2;30935:6;30931:15;30924:33;30739:225;:::o;30970:366::-;31112:3;31133:67;31197:2;31192:3;31133:67;:::i;:::-;31126:74;;31209:93;31298:3;31209:93;:::i;:::-;31327:2;31322:3;31318:12;31311:19;;30970:366;;;:::o;31342:419::-;31508:4;31546:2;31535:9;31531:18;31523:26;;31595:9;31589:4;31585:20;31581:1;31570:9;31566:17;31559:47;31623:131;31749:4;31623:131;:::i;:::-;31615:139;;31342:419;;;:::o;31767:231::-;31907:34;31903:1;31895:6;31891:14;31884:58;31976:14;31971:2;31963:6;31959:15;31952:39;31767:231;:::o;32004:366::-;32146:3;32167:67;32231:2;32226:3;32167:67;:::i;:::-;32160:74;;32243:93;32332:3;32243:93;:::i;:::-;32361:2;32356:3;32352:12;32345:19;;32004:366;;;:::o;32376:419::-;32542:4;32580:2;32569:9;32565:18;32557:26;;32629:9;32623:4;32619:20;32615:1;32604:9;32600:17;32593:47;32657:131;32783:4;32657:131;:::i;:::-;32649:139;;32376:419;;;:::o;32801:228::-;32941:34;32937:1;32929:6;32925:14;32918:58;33010:11;33005:2;32997:6;32993:15;32986:36;32801:228;:::o;33035:366::-;33177:3;33198:67;33262:2;33257:3;33198:67;:::i;:::-;33191:74;;33274:93;33363:3;33274:93;:::i;:::-;33392:2;33387:3;33383:12;33376:19;;33035:366;;;:::o;33407:419::-;33573:4;33611:2;33600:9;33596:18;33588:26;;33660:9;33654:4;33650:20;33646:1;33635:9;33631:17;33624:47;33688:131;33814:4;33688:131;:::i;:::-;33680:139;;33407:419;;;:::o;33832:223::-;33972:34;33968:1;33960:6;33956:14;33949:58;34041:6;34036:2;34028:6;34024:15;34017:31;33832:223;:::o;34061:366::-;34203:3;34224:67;34288:2;34283:3;34224:67;:::i;:::-;34217:74;;34300:93;34389:3;34300:93;:::i;:::-;34418:2;34413:3;34409:12;34402:19;;34061:366;;;:::o;34433:419::-;34599:4;34637:2;34626:9;34622:18;34614:26;;34686:9;34680:4;34676:20;34672:1;34661:9;34657:17;34650:47;34714:131;34840:4;34714:131;:::i;:::-;34706:139;;34433:419;;;:::o;34858:191::-;34898:4;34918:20;34936:1;34918:20;:::i;:::-;34913:25;;34952:20;34970:1;34952:20;:::i;:::-;34947:25;;34991:1;34988;34985:8;34982:34;;;34996:18;;:::i;:::-;34982:34;35041:1;35038;35034:9;35026:17;;34858:191;;;;:::o;35055:237::-;35195:34;35191:1;35183:6;35179:14;35172:58;35264:20;35259:2;35251:6;35247:15;35240:45;35055:237;:::o;35298:366::-;35440:3;35461:67;35525:2;35520:3;35461:67;:::i;:::-;35454:74;;35537:93;35626:3;35537:93;:::i;:::-;35655:2;35650:3;35646:12;35639:19;;35298:366;;;:::o;35670:419::-;35836:4;35874:2;35863:9;35859:18;35851:26;;35923:9;35917:4;35913:20;35909:1;35898:9;35894:17;35887:47;35951:131;36077:4;35951:131;:::i;:::-;35943:139;;35670:419;;;:::o;36095:180::-;36143:77;36140:1;36133:88;36240:4;36237:1;36230:15;36264:4;36261:1;36254:15;36281:185;36321:1;36338:20;36356:1;36338:20;:::i;:::-;36333:25;;36372:20;36390:1;36372:20;:::i;:::-;36367:25;;36411:1;36401:35;;36416:18;;:::i;:::-;36401:35;36458:1;36455;36451:9;36446:14;;36281:185;;;;:::o;36472:176::-;36504:1;36521:20;36539:1;36521:20;:::i;:::-;36516:25;;36555:20;36573:1;36555:20;:::i;:::-;36550:25;;36594:1;36584:35;;36599:18;;:::i;:::-;36584:35;36640:1;36637;36633:9;36628:14;;36472:176;;;;:::o;36654:98::-;36705:6;36739:5;36733:12;36723:22;;36654:98;;;:::o;36758:168::-;36841:11;36875:6;36870:3;36863:19;36915:4;36910:3;36906:14;36891:29;;36758:168;;;;:::o;36932:360::-;37018:3;37046:38;37078:5;37046:38;:::i;:::-;37100:70;37163:6;37158:3;37100:70;:::i;:::-;37093:77;;37179:52;37224:6;37219:3;37212:4;37205:5;37201:16;37179:52;:::i;:::-;37256:29;37278:6;37256:29;:::i;:::-;37251:3;37247:39;37240:46;;37022:270;36932:360;;;;:::o;37298:640::-;37493:4;37531:3;37520:9;37516:19;37508:27;;37545:71;37613:1;37602:9;37598:17;37589:6;37545:71;:::i;:::-;37626:72;37694:2;37683:9;37679:18;37670:6;37626:72;:::i;:::-;37708;37776:2;37765:9;37761:18;37752:6;37708:72;:::i;:::-;37827:9;37821:4;37817:20;37812:2;37801:9;37797:18;37790:48;37855:76;37926:4;37917:6;37855:76;:::i;:::-;37847:84;;37298:640;;;;;;;:::o;37944:141::-;38000:5;38031:6;38025:13;38016:22;;38047:32;38073:5;38047:32;:::i;:::-;37944:141;;;;:::o;38091:349::-;38160:6;38209:2;38197:9;38188:7;38184:23;38180:32;38177:119;;;38215:79;;:::i;:::-;38177:119;38335:1;38360:63;38415:7;38406:6;38395:9;38391:22;38360:63;:::i;:::-;38350:73;;38306:127;38091:349;;;;:::o;38446:180::-;38494:77;38491:1;38484:88;38591:4;38588:1;38581:15;38615:4;38612:1;38605:15;38632:182;38772:34;38768:1;38760:6;38756:14;38749:58;38632:182;:::o;38820:366::-;38962:3;38983:67;39047:2;39042:3;38983:67;:::i;:::-;38976:74;;39059:93;39148:3;39059:93;:::i;:::-;39177:2;39172:3;39168:12;39161:19;;38820:366;;;:::o;39192:419::-;39358:4;39396:2;39385:9;39381:18;39373:26;;39445:9;39439:4;39435:20;39431:1;39420:9;39416:17;39409:47;39473:131;39599:4;39473:131;:::i;:::-;39465:139;;39192:419;;;:::o;39617:178::-;39757:30;39753:1;39745:6;39741:14;39734:54;39617:178;:::o;39801:366::-;39943:3;39964:67;40028:2;40023:3;39964:67;:::i;:::-;39957:74;;40040:93;40129:3;40040:93;:::i;:::-;40158:2;40153:3;40149:12;40142:19;;39801:366;;;:::o;40173:419::-;40339:4;40377:2;40366:9;40362:18;40354:26;;40426:9;40420:4;40416:20;40412:1;40401:9;40397:17;40390:47;40454:131;40580:4;40454:131;:::i;:::-;40446:139;;40173:419;;;:::o

Swarm Source

ipfs://1e8b0a8b5a03cfb67cbbc0515f2bc7046401a3c5e50ade523b358f296fca9864
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.