Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
30 FP2PHN
Holders
30
Total Transfers
-
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FP2PHNToken
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.9;import "./Access.sol";import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";import "@openzeppelin/contracts/utils/Counters.sol";import "operator-filter-registry/src/DefaultOperatorFilterer.sol";import "@openzeppelin/contracts/utils/Strings.sol";import "@openzeppelin/contracts/utils/math/SafeMath.sol";import "@openzeppelin/contracts/utils/Strings.sol";/*** @notice Contract module with 30 NFTs.*/contract FP2PHNToken is Access, ERC721Enumerable, DefaultOperatorFilterer {using Counters for Counters.Counter;using SafeMath for uint256;/*** @notice Base URI for tokens.*/string public baseURI;/*** @notice Shows if changing base URI is locked. See {lockCollection}.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (access/AccessControl.sol)pragma solidity ^0.8.0;import "./IAccessControl.sol";import "../utils/Context.sol";import "../utils/Strings.sol";import "../utils/introspection/ERC165.sol";/*** @dev Contract module that allows children to implement role-based access* control mechanisms. This is a lightweight version that doesn't allow enumerating role* members except through off-chain means by accessing the contract event logs. Some* applications may benefit from on-chain enumerability, for those cases see* {AccessControlEnumerable}.** Roles are referred to by their `bytes32` identifier. These should be exposed* in the external API and be unique. The best way to achieve this is by* using `public constant` hash digests:** ```* bytes32 public constant MY_ROLE = keccak256("MY_ROLE");* ```** Roles can be used to represent a set of permissions. To restrict access to a
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)pragma solidity ^0.8.0;/*** @dev External interface of AccessControl declared to support ERC165 detection.*/interface IAccessControl {/*** @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`** `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite* {RoleAdminChanged} not being emitted signaling this.** _Available since v3.1._*/event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);/*** @dev Emitted when `account` is granted `role`.** `sender` is the account that originated the contract call, an admin role* bearer except when using {AccessControl-_setupRole}.*/event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/ERC721.sol)pragma solidity ^0.8.0;import "./IERC721.sol";import "./IERC721Receiver.sol";import "./extensions/IERC721Metadata.sol";import "../../utils/Address.sol";import "../../utils/Context.sol";import "../../utils/Strings.sol";import "../../utils/introspection/ERC165.sol";/*** @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including* the Metadata extension, but not including the Enumerable extension, which is available separately as* {ERC721Enumerable}.*/contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {using Address for address;using Strings for uint256;// Token namestring private _name;// Token symbol
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Enumerable.sol)pragma solidity ^0.8.0;import "../ERC721.sol";import "./IERC721Enumerable.sol";/*** @dev This implements an optional extension of {ERC721} defined in the EIP that adds* enumerability of all the token ids in the contract as well as all token ids owned by each* account.*/abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {// Mapping from owner to list of owned token IDsmapping(address => mapping(uint256 => uint256)) private _ownedTokens;// Mapping from token ID to index of the owner tokens listmapping(uint256 => uint256) private _ownedTokensIndex;// Array with all token ids, used for enumerationuint256[] private _allTokens;// Mapping from token id to position in the allTokens arraymapping(uint256 => uint256) private _allTokensIndex;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)pragma solidity ^0.8.0;import "../IERC721.sol";/*** @title ERC-721 Non-Fungible Token Standard, optional enumeration extension* @dev See https://eips.ethereum.org/EIPS/eip-721*/interface IERC721Enumerable is IERC721 {/*** @dev Returns the total amount of tokens stored by the contract.*/function totalSupply() external view returns (uint256);/*** @dev Returns a token ID owned by `owner` at a given `index` of its token list.* Use along with {balanceOf} to enumerate all of ``owner``'s tokens.*/function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);/*** @dev Returns a token ID at a given `index` of all the tokens stored by the contract.* Use along with {totalSupply} to enumerate all tokens.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)pragma solidity ^0.8.0;import "../IERC721.sol";/*** @title ERC-721 Non-Fungible Token Standard, optional metadata extension* @dev See https://eips.ethereum.org/EIPS/eip-721*/interface IERC721Metadata is IERC721 {/*** @dev Returns the token collection name.*/function name() external view returns (string memory);/*** @dev Returns the token collection symbol.*/function symbol() external view returns (string memory);/*** @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.*/function tokenURI(uint256 tokenId) external view returns (string memory);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol)pragma solidity ^0.8.0;import "../../utils/introspection/IERC165.sol";/*** @dev Required interface of an ERC721 compliant contract.*/interface IERC721 is IERC165 {/*** @dev Emitted when `tokenId` token is transferred from `from` to `to`.*/event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);/*** @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.*/event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);/*** @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.*/event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)pragma solidity ^0.8.0;/*** @title ERC721 token receiver interface* @dev Interface for any contract that wants to support safeTransfers* from ERC721 asset contracts.*/interface IERC721Receiver {/*** @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}* by `operator` from `from`, this function is called.** It must return its Solidity selector to confirm the token transfer.* If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.** The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.*/function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data) external returns (bytes4);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)pragma solidity ^0.8.1;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)pragma solidity ^0.8.0;/*** @title Counters* @author Matt Condon (@shrugs)* @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number* of elements in a mapping, issuing ERC721 ids, or counting request ids.** Include with `using Counters for Counters.Counter;`*/library Counters {struct Counter {// This variable should never be directly accessed by users of the library: interactions must be restricted to// the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add// this feature: see https://github.com/ethereum/solidity/issues/4637uint256 _value; // default: 0}function current(Counter storage counter) internal view returns (uint256) {return counter._value;}function increment(Counter storage counter) internal {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)pragma solidity ^0.8.0;import "./IERC165.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check* for the additional interface id that will be supported. For example:** ```solidity* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);* }* ```** Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.*/abstract contract ERC165 is IERC165 {/*** @dev See {IERC165-supportsInterface}.*/function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/interface IERC165 {/*** @dev Returns true if this contract implements the interface defined by* `interfaceId`. See the corresponding* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]* to learn more about how these ids are created.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)pragma solidity ^0.8.0;/*** @dev Standard math utilities missing in the Solidity language.*/library Math {enum Rounding {Down, // Toward negative infinityUp, // Toward infinityZero // Toward zero}/*** @dev Returns the largest of two numbers.*/function max(uint256 a, uint256 b) internal pure returns (uint256) {return a > b ? a : b;}/*** @dev Returns the smallest of two numbers.*/function min(uint256 a, uint256 b) internal pure returns (uint256) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)pragma solidity ^0.8.0;// CAUTION// This version of SafeMath should only be used with Solidity 0.8 or later,// because it relies on the compiler's built in overflow checks./*** @dev Wrappers over Solidity's arithmetic operations.** NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler* now has built in overflow checking.*/library SafeMath {/*** @dev Returns the addition of two unsigned integers, with an overflow flag.** _Available since v3.4._*/function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {unchecked {uint256 c = a + b;if (c < a) return (false, 0);return (true, c);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)pragma solidity ^0.8.0;import "./math/Math.sol";/*** @dev String operations.*/library Strings {bytes16 private constant _SYMBOLS = "0123456789abcdef";uint8 private constant _ADDRESS_LENGTH = 20;/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {unchecked {uint256 length = Math.log10(value) + 1;string memory buffer = new string(length);uint256 ptr;/// @solidity memory-safe-assemblyassembly {ptr := add(buffer, add(32, length))}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.9;import "@openzeppelin/contracts/access/AccessControl.sol";import "@openzeppelin/contracts/access/Ownable.sol";/*** @dev Contract module that provides an access control mechanism using* modules {AccessControl} and {Ownable}.* There are 4 roles: owner, default admin, admin and minter. For owner* and default admin rights see {AccessControl} and {Ownable}* documentation.*/abstract contract Access is AccessControl, Ownable {/*** @dev See {AccessControl}.*/bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE");/*** @dev Modifier that checks if caller has minter role. Reverts with* `Access: caller is not a minter`*/modifier onlyMinter(){require(hasMinterRole(msg.sender), "Access: caller is not a minter");
1234567891011121314// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {OperatorFilterer} from "./OperatorFilterer.sol";/*** @title DefaultOperatorFilterer* @notice Inherits from OperatorFilterer and automatically subscribes to the default OpenSea subscription.*/abstract contract DefaultOperatorFilterer is OperatorFilterer {address constant DEFAULT_SUBSCRIPTION = address(0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6);constructor() OperatorFilterer(DEFAULT_SUBSCRIPTION, true) {}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;interface IOperatorFilterRegistry {function isOperatorAllowed(address registrant, address operator) external view returns (bool);function register(address registrant) external;function registerAndSubscribe(address registrant, address subscription) external;function registerAndCopyEntries(address registrant, address registrantToCopy) external;function unregister(address addr) external;function updateOperator(address registrant, address operator, bool filtered) external;function updateOperators(address registrant, address[] calldata operators, bool filtered) external;function updateCodeHash(address registrant, bytes32 codehash, bool filtered) external;function updateCodeHashes(address registrant, bytes32[] calldata codeHashes, bool filtered) external;function subscribe(address registrant, address registrantToSubscribe) external;function unsubscribe(address registrant, bool copyExistingEntries) external;function subscriptionOf(address addr) external returns (address registrant);function subscribers(address registrant) external returns (address[] memory);function subscriberAt(address registrant, uint256 index) external returns (address);function copyEntriesOf(address registrant, address registrantToCopy) external;function isOperatorFiltered(address registrant, address operator) external returns (bool);function isCodeHashOfFiltered(address registrant, address operatorWithCode) external returns (bool);function isCodeHashFiltered(address registrant, bytes32 codeHash) external returns (bool);function filteredOperators(address addr) external returns (address[] memory);function filteredCodeHashes(address addr) external returns (bytes32[] memory);function filteredOperatorAt(address registrant, uint256 index) external returns (address);function filteredCodeHashAt(address registrant, uint256 index) external returns (bytes32);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {IOperatorFilterRegistry} from "./IOperatorFilterRegistry.sol";/*** @title OperatorFilterer* @notice Abstract contract whose constructor automatically registers and optionally subscribes to or copies another* registrant's entries in the OperatorFilterRegistry.* @dev This smart contract is meant to be inherited by token contracts so they can use the following:* - `onlyAllowedOperator` modifier for `transferFrom` and `safeTransferFrom` methods.* - `onlyAllowedOperatorApproval` modifier for `approve` and `setApprovalForAll` methods.*/abstract contract OperatorFilterer {error OperatorNotAllowed(address operator);IOperatorFilterRegistry public constant OPERATOR_FILTER_REGISTRY =IOperatorFilterRegistry(0x000000000000AAeB6D7670E522A718067333cd4E);constructor(address subscriptionOrRegistrantToCopy, bool subscribe) {// If an inheriting token contract is deployed to a network without the registry deployed, the modifier// will not revert, but the contract will need to be registered with the registry once it is deployed in// order for the modifier to filter addresses.if (address(OPERATOR_FILTER_REGISTRY).code.length > 0) {if (subscribe) {OPERATOR_FILTER_REGISTRY.registerAndSubscribe(address(this), subscriptionOrRegistrantToCopy);
12345678910111213141516171819{"optimizer": {"enabled": false,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_baseURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"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":false,"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"BaseURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_isLocked","type":"bool"}],"name":"CollectionLocked","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":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_tokenID","type":"uint256"}],"name":"TokenMinted","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":[],"name":"ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_FILTER_REGISTRY","outputs":[{"internalType":"contract IOperatorFilterRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"grantAdminRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"grantMinterRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"hasAdminRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"hasMinterRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isCollectionLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"revokeAdminRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"revokeMinterRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","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":"uint256","name":"_tokenID","type":"uint256"}],"name":"tokenExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"tokensAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620059b2380380620059b28339818101604052810190620000379190620006b1565b733cc6cdda760b79bafa08df41ecfa224f810dceb6600184846200007062000064620002f560201b60201c565b620002fd60201b60201c565b620000a27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620003c360201b60201c565b8160029081620000b39190620009b5565b508060039081620000c59190620009b5565b50505060006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115620002bd57801562000183576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b81526004016200014992919062000ae1565b600060405180830381600087803b1580156200016457600080fd5b505af115801562000179573d6000803e3d6000fd5b50505050620002bc565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200023d576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b81526004016200020392919062000ae1565b600060405180830381600087803b1580156200021e57600080fd5b505af115801562000233573d6000803e3d6000fd5b50505050620002bb565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b815260040162000286919062000b0e565b600060405180830381600087803b158015620002a157600080fd5b505af1158015620002b6573d6000803e3d6000fd5b505050505b5b5b50506000600d60006101000a81548160ff02191690831515021790555080600c9081620002eb9190620009b5565b5050505062000b2b565b600033905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003d58282620004b460201b60201c565b620004b057600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000455620002f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000587826200053c565b810181811067ffffffffffffffff82111715620005a957620005a86200054d565b5b80604052505050565b6000620005be6200051e565b9050620005cc82826200057c565b919050565b600067ffffffffffffffff821115620005ef57620005ee6200054d565b5b620005fa826200053c565b9050602081019050919050565b60005b83811015620006275780820151818401526020810190506200060a565b60008484015250505050565b60006200064a6200064484620005d1565b620005b2565b90508281526020810184848401111562000669576200066862000537565b5b6200067684828562000607565b509392505050565b600082601f83011262000696576200069562000532565b5b8151620006a884826020860162000633565b91505092915050565b600080600060608486031215620006cd57620006cc62000528565b5b600084015167ffffffffffffffff811115620006ee57620006ed6200052d565b5b620006fc868287016200067e565b935050602084015167ffffffffffffffff81111562000720576200071f6200052d565b5b6200072e868287016200067e565b925050604084015167ffffffffffffffff8111156200075257620007516200052d565b5b62000760868287016200067e565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007bd57607f821691505b602082108103620007d357620007d262000775565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200083d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007fe565b620008498683620007fe565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000896620008906200088a8462000861565b6200086b565b62000861565b9050919050565b6000819050919050565b620008b28362000875565b620008ca620008c1826200089d565b8484546200080b565b825550505050565b600090565b620008e1620008d2565b620008ee818484620008a7565b505050565b5b8181101562000916576200090a600082620008d7565b600181019050620008f4565b5050565b601f82111562000965576200092f81620007d9565b6200093a84620007ee565b810160208510156200094a578190505b620009626200095985620007ee565b830182620008f3565b50505b505050565b600082821c905092915050565b60006200098a600019846008026200096a565b1980831691505092915050565b6000620009a5838362000977565b9150826002028217905092915050565b620009c0826200076a565b67ffffffffffffffff811115620009dc57620009db6200054d565b5b620009e88254620007a4565b620009f58282856200091a565b600060209050601f83116001811462000a2d576000841562000a18578287015190505b62000a24858262000997565b86555062000a94565b601f19841662000a3d86620007d9565b60005b8281101562000a675784890151825560018201915060208501945060208101905062000a40565b8683101562000a87578489015162000a83601f89168262000977565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ac98262000a9c565b9050919050565b62000adb8162000abc565b82525050565b600060408201905062000af8600083018562000ad0565b62000b07602083018462000ad0565b9392505050565b600060208201905062000b25600083018462000ad0565b92915050565b614e778062000b3b6000396000f3fe608060405234801561001057600080fd5b506004361061025d5760003560e01c806369e2f0fb11610146578063a217fddf116100c3578063c634b78e11610087578063c634b78e14610720578063c87b56dd1461073c578063d53913931461076c578063d547741f1461078a578063e985e9c5146107a6578063f2fde38b146107d65761025d565b8063a217fddf1461067c578063a22cb4651461069a578063aeeaf252146106b6578063b88d4fde146106d4578063c395fcb3146106f05761025d565b806375b238fc1161010a57806375b238fc146105d65780638da5cb5b146105f457806391d148541461061257806395d89b41146106425780639a19c7b0146106605761025d565b806369e2f0fb146105465780636a627842146105625780636c0360eb1461057e57806370a082311461059c578063715018a6146105cc5761025d565b80632f2ff15d116101df57806341f43434116101a357806341f434341461047257806342842e0e146104905780634f6ccce7146104ac57806355f804b3146104dc57806360659a92146104f85780636352211e146105165761025d565b80632f2ff15d146103d05780632f745c59146103ec57806332cb6b0c1461041c57806336568abe1461043a5780633dd1eb61146104565761025d565b8063099db01711610226578063099db0171461032c5780630ee83a711461035c57806318160ddd1461036657806323b872dd14610384578063248a9ca3146103a05761025d565b8062923f9e1461026257806301ffc9a71461029257806306fdde03146102c2578063081812fc146102e0578063095ea7b314610310575b600080fd5b61027c600480360381019061027791906133aa565b6107f2565b60405161028991906133f2565b60405180910390f35b6102ac60048036038101906102a79190613465565b610804565b6040516102b991906133f2565b60405180910390f35b6102ca610816565b6040516102d79190613522565b60405180910390f35b6102fa60048036038101906102f591906133aa565b6108a8565b6040516103079190613585565b60405180910390f35b61032a600480360381019061032591906135cc565b6108ee565b005b6103466004803603810190610341919061360c565b610907565b60405161035391906133f2565b60405180910390f35b61036461093a565b005b61036e6109a5565b60405161037b9190613648565b60405180910390f35b61039e60048036038101906103999190613663565b6109b2565b005b6103ba60048036038101906103b591906136ec565b610a01565b6040516103c79190613728565b60405180910390f35b6103ea60048036038101906103e59190613743565b610a20565b005b610406600480360381019061040191906135cc565b610a41565b6040516104139190613648565b60405180910390f35b610424610ae6565b6040516104319190613648565b60405180910390f35b610454600480360381019061044f9190613743565b610aeb565b005b610470600480360381019061046b919061360c565b610b6e565b005b61047a610be3565b60405161048791906137e2565b60405180910390f35b6104aa60048036038101906104a59190613663565b610bf5565b005b6104c660048036038101906104c191906133aa565b610c44565b6040516104d39190613648565b60405180910390f35b6104f660048036038101906104f19190613932565b610cb5565b005b610500610d97565b60405161050d9190613648565b60405180910390f35b610530600480360381019061052b91906133aa565b610db4565b60405161053d9190613585565b60405180910390f35b610560600480360381019061055b919061360c565b610e3a565b005b61057c6004803603810190610577919061360c565b610eaf565b005b610586610fa0565b6040516105939190613522565b60405180910390f35b6105b660048036038101906105b1919061360c565b61102e565b6040516105c39190613648565b60405180910390f35b6105d46110e5565b005b6105de6110f9565b6040516105eb9190613728565b60405180910390f35b6105fc61111d565b6040516106099190613585565b60405180910390f35b61062c60048036038101906106279190613743565b611147565b60405161063991906133f2565b60405180910390f35b61064a6111b1565b6040516106579190613522565b60405180910390f35b61067a6004803603810190610675919061360c565b611243565b005b610684611278565b6040516106919190613728565b60405180910390f35b6106b460048036038101906106af91906139a7565b61127f565b005b6106be611298565b6040516106cb91906133f2565b60405180910390f35b6106ee60048036038101906106e99190613a88565b6112ab565b005b61070a6004803603810190610705919061360c565b6112fc565b60405161071791906133f2565b60405180910390f35b61073a6004803603810190610735919061360c565b61132f565b005b610756600480360381019061075191906133aa565b611364565b6040516107639190613522565b60405180910390f35b6107746113aa565b6040516107819190613728565b60405180910390f35b6107a4600480360381019061079f9190613743565b6113ce565b005b6107c060048036038101906107bb9190613b0b565b6113ef565b6040516107cd91906133f2565b60405180910390f35b6107f060048036038101906107eb919061360c565b611483565b005b60006107fd82611506565b9050919050565b600061080f82611547565b9050919050565b60606002805461082590613b7a565b80601f016020809104026020016040519081016040528092919081815260200182805461085190613b7a565b801561089e5780601f106108735761010080835404028352916020019161089e565b820191906000526020600020905b81548152906001019060200180831161088157829003601f168201915b5050505050905090565b60006108b3826115c1565b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b816108f88161160c565b6109028383611709565b505050565b60006109337f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683611147565b9050919050565b610942611820565b6001600d60006101000a81548160ff0219169083151502179055507f0c2d25e14986ca095e4c70f4306a9f689dbbd0ea54941253daf10180317fb2e5600d60009054906101000a900460ff1660405161099b91906133f2565b60405180910390a1565b6000600a80549050905090565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109f0576109ef3361160c565b5b6109fb84848461189e565b50505050565b6000806000838152602001908152602001600020600101549050919050565b610a2982610a01565b610a32816118fe565b610a3c8383611912565b505050565b6000610a4c8361102e565b8210610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8490613c1d565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b601e81565b610af36119f2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613caf565b60405180910390fd5b610b6a82826119fa565b5050565b610b77336112fc565b610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad90613d1b565b60405180910390fd5b610be07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682611912565b50565b6daaeb6d7670e522a718067333cd4e81565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c3357610c323361160c565b5b610c3e848484611adb565b50505050565b6000610c4e6109a5565b8210610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613dad565b60405180910390fd5b600a8281548110610ca357610ca2613dcd565b5b90600052602060002001549050919050565b610cbe336112fc565b610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490613d1b565b60405180910390fd5b600d60009054906101000a900460ff1615610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4490613e48565b60405180910390fd5b80600c9081610d5c919061400a565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad81604051610d8c9190613522565b60405180910390a150565b6000610da3600e611afb565b601e610daf919061410b565b905090565b600080610dc083611b09565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e289061418b565b60405180910390fd5b80915050919050565b610e43336112fc565b610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613d1b565b60405180910390fd5b610eac7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826119fa565b50565b610eb833610907565b610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee906141f7565b60405180910390fd5b6000610f01610d97565b11610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890614263565b60405180910390fd5b610f4b600e611b46565b6000610f57600e611afb565b9050610f638282611b5c565b7fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a88282604051610f94929190614283565b60405180910390a15050565b600c8054610fad90613b7a565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd990613b7a565b80156110265780601f10610ffb57610100808354040283529160200191611026565b820191906000526020600020905b81548152906001019060200180831161100957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110959061431e565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110ed611820565b6110f76000611b7a565b565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600380546111c090613b7a565b80601f01602080910402602001604051908101604052809291908181526020018280546111ec90613b7a565b80156112395780601f1061120e57610100808354040283529160200191611239565b820191906000526020600020905b81548152906001019060200180831161121c57829003601f168201915b5050505050905090565b61124b611820565b6112757fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775826119fa565b50565b6000801b81565b816112898161160c565b6112938383611c40565b505050565b600d60009054906101000a900460ff1681565b833373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146112e9576112e83361160c565b5b6112f585858585611c56565b5050505050565b60006113287fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583611147565b9050919050565b611337611820565b6113617fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177582611912565b50565b606061136f826107f2565b61137857600080fd5b600c61138383611cb8565b604051602001611394929190614449565b6040516020818303038152906040529050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6113d782610a01565b6113e0816118fe565b6113ea83836119fa565b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61148b611820565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f1906144ea565b60405180910390fd5b61150381611b7a565b50565b60008073ffffffffffffffffffffffffffffffffffffffff1661152883611b09565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806115ba57506115b982611d86565b5b9050919050565b6115ca81611506565b611609576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116009061418b565b60405180910390fd5b50565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611706576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b815260040161168392919061450a565b602060405180830381865afa1580156116a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c49190614548565b61170557806040517fede71dcc0000000000000000000000000000000000000000000000000000000081526004016116fc9190613585565b60405180910390fd5b5b50565b600061171482610db4565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b906145e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166117a36119f2565b73ffffffffffffffffffffffffffffffffffffffff1614806117d257506117d1816117cc6119f2565b6113ef565b5b611811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180890614679565b60405180910390fd5b61181b8383611e68565b505050565b6118286119f2565b73ffffffffffffffffffffffffffffffffffffffff1661184661111d565b73ffffffffffffffffffffffffffffffffffffffff161461189c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611893906146e5565b60405180910390fd5b565b6118af6118a96119f2565b82611f21565b6118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e590614777565b60405180910390fd5b6118f9838383611fb6565b505050565b61190f8161190a6119f2565b6122af565b50565b61191c8282611147565b6119ee57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506119936119f2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600033905090565b611a048282611147565b15611ad757600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611a7c6119f2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b611af6838383604051806020016040528060008152506112ab565b505050565b600081600001549050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6001816000016000828254019250508190555050565b611b76828260405180602001604052806000815250612334565b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611c52611c4b6119f2565b838361238f565b5050565b611c67611c616119f2565b83611f21565b611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d90614777565b60405180910390fd5b611cb2848484846124fb565b50505050565b606060006001611cc784612557565b01905060008167ffffffffffffffff811115611ce657611ce5613807565b5b6040519080825280601f01601f191660200182016040528015611d185781602001600182028036833780820191505090505b509050600082602001820190505b600115611d7b578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611d6f57611d6e614797565b5b04945060008503611d26575b819350505050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611e5157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611e615750611e60826126aa565b5b9050919050565b816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611edb83610db4565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611f2d83610db4565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f6f5750611f6e81856113ef565b5b80611fad57508373ffffffffffffffffffffffffffffffffffffffff16611f95846108a8565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611fd682610db4565b73ffffffffffffffffffffffffffffffffffffffff161461202c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202390614838565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361209b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612092906148ca565b60405180910390fd5b6120a883838360016126bc565b8273ffffffffffffffffffffffffffffffffffffffff166120c882610db4565b73ffffffffffffffffffffffffffffffffffffffff161461211e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211590614838565b60405180910390fd5b6006600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46122aa838383600161281a565b505050565b6122b98282611147565b612330576122c681612820565b6122d48360001c602061284d565b6040516020016122e5929190614982565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123279190613522565b60405180910390fd5b5050565b61233e8383612a89565b61234b6000848484612ca6565b61238a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238190614a2e565b60405180910390fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f490614a9a565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516124ee91906133f2565b60405180910390a3505050565b612506848484611fb6565b61251284848484612ca6565b612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254890614a2e565b60405180910390fd5b50505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106125b5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816125ab576125aa614797565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106125f2576d04ee2d6d415b85acef810000000083816125e8576125e7614797565b5b0492506020810190505b662386f26fc10000831061262157662386f26fc10000838161261757612616614797565b5b0492506010810190505b6305f5e100831061264a576305f5e10083816126405761263f614797565b5b0492506008810190505b612710831061266f57612710838161266557612664614797565b5b0492506004810190505b60648310612692576064838161268857612687614797565b5b0492506002810190505b600a83106126a1576001810190505b80915050919050565b60006126b582612e2d565b9050919050565b6126c884848484612ea7565b600181111561270c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270390614b2c565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036127535761274e81612fcd565b612792565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612791576127908582613016565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036127d4576127cf81613183565b612813565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612812576128118482613254565b5b5b5050505050565b50505050565b60606128468273ffffffffffffffffffffffffffffffffffffffff16601460ff1661284d565b9050919050565b6060600060028360026128609190614b4c565b61286a9190614b8e565b67ffffffffffffffff81111561288357612882613807565b5b6040519080825280601f01601f1916602001820160405280156128b55781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106128ed576128ec613dcd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061295157612950613dcd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026129919190614b4c565b61299b9190614b8e565b90505b6001811115612a3b577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106129dd576129dc613dcd565b5b1a60f81b8282815181106129f4576129f3613dcd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612a3490614bc2565b905061299e565b5060008414612a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7690614c37565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef90614ca3565b60405180910390fd5b612b0181611506565b15612b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3890614d0f565b60405180910390fd5b612b4f6000838360016126bc565b612b5881611506565b15612b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8f90614d0f565b60405180910390fd5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612ca260008383600161281a565b5050565b6000612cc78473ffffffffffffffffffffffffffffffffffffffff166132d3565b15612e20578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612cf06119f2565b8786866040518563ffffffff1660e01b8152600401612d129493929190614d84565b6020604051808303816000875af1925050508015612d4e57506040513d601f19601f82011682018060405250810190612d4b9190614de5565b60015b612dd0573d8060008114612d7e576040519150601f19603f3d011682016040523d82523d6000602084013e612d83565b606091505b506000815103612dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbf90614a2e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612e25565b600190505b949350505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612ea05750612e9f826132f6565b5b9050919050565b6001811115612fc757600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612f3b5780600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f33919061410b565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612fc65780600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fbe9190614b8e565b925050819055505b5b50505050565b600a80549050600b600083815260200190815260200160002081905550600a81908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016130238461102e565b61302d919061410b565b9050600060096000848152602001908152602001600020549050818114613112576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816009600083815260200190815260200160002081905550505b6009600084815260200190815260200160002060009055600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600a80549050613197919061410b565b90506000600b60008481526020019081526020016000205490506000600a83815481106131c7576131c6613dcd565b5b9060005260206000200154905080600a83815481106131e9576131e8613dcd565b5b906000526020600020018190555081600b600083815260200190815260200160002081905550600b600085815260200190815260200160002060009055600a80548061323857613237614e12565b5b6001900381819060005260206000200160009055905550505050565b600061325f8361102e565b905081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806009600084815260200190815260200160002081905550505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61338781613374565b811461339257600080fd5b50565b6000813590506133a48161337e565b92915050565b6000602082840312156133c0576133bf61336a565b5b60006133ce84828501613395565b91505092915050565b60008115159050919050565b6133ec816133d7565b82525050565b600060208201905061340760008301846133e3565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6134428161340d565b811461344d57600080fd5b50565b60008135905061345f81613439565b92915050565b60006020828403121561347b5761347a61336a565b5b600061348984828501613450565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134cc5780820151818401526020810190506134b1565b60008484015250505050565b6000601f19601f8301169050919050565b60006134f482613492565b6134fe818561349d565b935061350e8185602086016134ae565b613517816134d8565b840191505092915050565b6000602082019050818103600083015261353c81846134e9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061356f82613544565b9050919050565b61357f81613564565b82525050565b600060208201905061359a6000830184613576565b92915050565b6135a981613564565b81146135b457600080fd5b50565b6000813590506135c6816135a0565b92915050565b600080604083850312156135e3576135e261336a565b5b60006135f1858286016135b7565b925050602061360285828601613395565b9150509250929050565b6000602082840312156136225761362161336a565b5b6000613630848285016135b7565b91505092915050565b61364281613374565b82525050565b600060208201905061365d6000830184613639565b92915050565b60008060006060848603121561367c5761367b61336a565b5b600061368a868287016135b7565b935050602061369b868287016135b7565b92505060406136ac86828701613395565b9150509250925092565b6000819050919050565b6136c9816136b6565b81146136d457600080fd5b50565b6000813590506136e6816136c0565b92915050565b6000602082840312156137025761370161336a565b5b6000613710848285016136d7565b91505092915050565b613722816136b6565b82525050565b600060208201905061373d6000830184613719565b92915050565b6000806040838503121561375a5761375961336a565b5b6000613768858286016136d7565b9250506020613779858286016135b7565b9150509250929050565b6000819050919050565b60006137a86137a361379e84613544565b613783565b613544565b9050919050565b60006137ba8261378d565b9050919050565b60006137cc826137af565b9050919050565b6137dc816137c1565b82525050565b60006020820190506137f760008301846137d3565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61383f826134d8565b810181811067ffffffffffffffff8211171561385e5761385d613807565b5b80604052505050565b6000613871613360565b905061387d8282613836565b919050565b600067ffffffffffffffff82111561389d5761389c613807565b5b6138a6826134d8565b9050602081019050919050565b82818337600083830152505050565b60006138d56138d084613882565b613867565b9050828152602081018484840111156138f1576138f0613802565b5b6138fc8482856138b3565b509392505050565b600082601f830112613919576139186137fd565b5b81356139298482602086016138c2565b91505092915050565b6000602082840312156139485761394761336a565b5b600082013567ffffffffffffffff8111156139665761396561336f565b5b61397284828501613904565b91505092915050565b613984816133d7565b811461398f57600080fd5b50565b6000813590506139a18161397b565b92915050565b600080604083850312156139be576139bd61336a565b5b60006139cc858286016135b7565b92505060206139dd85828601613992565b9150509250929050565b600067ffffffffffffffff821115613a0257613a01613807565b5b613a0b826134d8565b9050602081019050919050565b6000613a2b613a26846139e7565b613867565b905082815260208101848484011115613a4757613a46613802565b5b613a528482856138b3565b509392505050565b600082601f830112613a6f57613a6e6137fd565b5b8135613a7f848260208601613a18565b91505092915050565b60008060008060808587031215613aa257613aa161336a565b5b6000613ab0878288016135b7565b9450506020613ac1878288016135b7565b9350506040613ad287828801613395565b925050606085013567ffffffffffffffff811115613af357613af261336f565b5b613aff87828801613a5a565b91505092959194509250565b60008060408385031215613b2257613b2161336a565b5b6000613b30858286016135b7565b9250506020613b41858286016135b7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b9257607f821691505b602082108103613ba557613ba4613b4b565b5b50919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613c07602b8361349d565b9150613c1282613bab565b604082019050919050565b60006020820190508181036000830152613c3681613bfa565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613c99602f8361349d565b9150613ca482613c3d565b604082019050919050565b60006020820190508181036000830152613cc881613c8c565b9050919050565b7f4163636573733a2063616c6c6572206973206e6f7420616e2061646d696e0000600082015250565b6000613d05601e8361349d565b9150613d1082613ccf565b602082019050919050565b60006020820190508181036000830152613d3481613cf8565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613d97602c8361349d565b9150613da282613d3b565b604082019050919050565b60006020820190508181036000830152613dc681613d8a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f436f6c6c656374696f6e206973206c6f636b6564000000000000000000000000600082015250565b6000613e3260148361349d565b9150613e3d82613dfc565b602082019050919050565b60006020820190508181036000830152613e6181613e25565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613eca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613e8d565b613ed48683613e8d565b95508019841693508086168417925050509392505050565b6000613f07613f02613efd84613374565b613783565b613374565b9050919050565b6000819050919050565b613f2183613eec565b613f35613f2d82613f0e565b848454613e9a565b825550505050565b600090565b613f4a613f3d565b613f55818484613f18565b505050565b5b81811015613f7957613f6e600082613f42565b600181019050613f5b565b5050565b601f821115613fbe57613f8f81613e68565b613f9884613e7d565b81016020851015613fa7578190505b613fbb613fb385613e7d565b830182613f5a565b50505b505050565b600082821c905092915050565b6000613fe160001984600802613fc3565b1980831691505092915050565b6000613ffa8383613fd0565b9150826002028217905092915050565b61401382613492565b67ffffffffffffffff81111561402c5761402b613807565b5b6140368254613b7a565b614041828285613f7d565b600060209050601f8311600181146140745760008415614062578287015190505b61406c8582613fee565b8655506140d4565b601f19841661408286613e68565b60005b828110156140aa57848901518255600182019150602085019450602081019050614085565b868310156140c757848901516140c3601f891682613fd0565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061411682613374565b915061412183613374565b9250828203905081811115614139576141386140dc565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061417560188361349d565b91506141808261413f565b602082019050919050565b600060208201905081810360008301526141a481614168565b9050919050565b7f4163636573733a2063616c6c6572206973206e6f742061206d696e7465720000600082015250565b60006141e1601e8361349d565b91506141ec826141ab565b602082019050919050565b60006020820190508181036000830152614210816141d4565b9050919050565b7f546f74616c20737570706c792072656163686564000000000000000000000000600082015250565b600061424d60148361349d565b915061425882614217565b602082019050919050565b6000602082019050818103600083015261427c81614240565b9050919050565b60006040820190506142986000830185613576565b6142a56020830184613639565b9392505050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061430860298361349d565b9150614313826142ac565b604082019050919050565b60006020820190508181036000830152614337816142fb565b9050919050565b600081905092915050565b6000815461435681613b7a565b614360818661433e565b9450600182166000811461437b5760018114614390576143c3565b60ff19831686528115158202860193506143c3565b61439985613e68565b60005b838110156143bb5781548189015260018201915060208101905061439c565b838801955050505b50505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061440260018361433e565b915061440d826143cc565b600182019050919050565b600061442382613492565b61442d818561433e565b935061443d8185602086016134ae565b80840191505092915050565b60006144558285614349565b9150614460826143f5565b915061446c8284614418565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d460268361349d565b91506144df82614478565b604082019050919050565b60006020820190508181036000830152614503816144c7565b9050919050565b600060408201905061451f6000830185613576565b61452c6020830184613576565b9392505050565b6000815190506145428161397b565b92915050565b60006020828403121561455e5761455d61336a565b5b600061456c84828501614533565b91505092915050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006145d160218361349d565b91506145dc82614575565b604082019050919050565b60006020820190508181036000830152614600816145c4565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614663603d8361349d565b915061466e82614607565b604082019050919050565b6000602082019050818103600083015261469281614656565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006146cf60208361349d565b91506146da82614699565b602082019050919050565b600060208201905081810360008301526146fe816146c2565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000614761602d8361349d565b915061476c82614705565b604082019050919050565b6000602082019050818103600083015261479081614754565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061482260258361349d565b915061482d826147c6565b604082019050919050565b6000602082019050818103600083015261485181614815565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148b460248361349d565b91506148bf82614858565b604082019050919050565b600060208201905081810360008301526148e3816148a7565b9050919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061492060178361433e565b915061492b826148ea565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061496c60118361433e565b915061497782614936565b601182019050919050565b600061498d82614913565b91506149998285614418565b91506149a48261495f565b91506149b08284614418565b91508190509392505050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000614a1860328361349d565b9150614a23826149bc565b604082019050919050565b60006020820190508181036000830152614a4781614a0b565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000614a8460198361349d565b9150614a8f82614a4e565b602082019050919050565b60006020820190508181036000830152614ab381614a77565b9050919050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000614b1660358361349d565b9150614b2182614aba565b604082019050919050565b60006020820190508181036000830152614b4581614b09565b9050919050565b6000614b5782613374565b9150614b6283613374565b9250828202614b7081613374565b91508282048414831517614b8757614b866140dc565b5b5092915050565b6000614b9982613374565b9150614ba483613374565b9250828201905080821115614bbc57614bbb6140dc565b5b92915050565b6000614bcd82613374565b915060008203614be057614bdf6140dc565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000614c2160208361349d565b9150614c2c82614beb565b602082019050919050565b60006020820190508181036000830152614c5081614c14565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614c8d60208361349d565b9150614c9882614c57565b602082019050919050565b60006020820190508181036000830152614cbc81614c80565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614cf9601c8361349d565b9150614d0482614cc3565b602082019050919050565b60006020820190508181036000830152614d2881614cec565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614d5682614d2f565b614d608185614d3a565b9350614d708185602086016134ae565b614d79816134d8565b840191505092915050565b6000608082019050614d996000830187613576565b614da66020830186613576565b614db36040830185613639565b8181036060830152614dc58184614d4b565b905095945050505050565b600081519050614ddf81613439565b92915050565b600060208284031215614dfb57614dfa61336a565b5b6000614e0984828501614dd0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212200e55958ef63b9dfb94556f19fd2f5cc26373edd24018eeee079401a604ad56b764736f6c63430008110033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000002346726f6d20506978656c20746f20506c6174653a20486f6e657920616e64204e7574730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000646503250484e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005668747470733a2f2f65746865722d63617264732e6d7970696e6174612e636c6f75642f697066732f516d574476666e634e476962646832416f6e706d396653586a4d3158526f726b6d4a324a75415a3338647442576800000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061025d5760003560e01c806369e2f0fb11610146578063a217fddf116100c3578063c634b78e11610087578063c634b78e14610720578063c87b56dd1461073c578063d53913931461076c578063d547741f1461078a578063e985e9c5146107a6578063f2fde38b146107d65761025d565b8063a217fddf1461067c578063a22cb4651461069a578063aeeaf252146106b6578063b88d4fde146106d4578063c395fcb3146106f05761025d565b806375b238fc1161010a57806375b238fc146105d65780638da5cb5b146105f457806391d148541461061257806395d89b41146106425780639a19c7b0146106605761025d565b806369e2f0fb146105465780636a627842146105625780636c0360eb1461057e57806370a082311461059c578063715018a6146105cc5761025d565b80632f2ff15d116101df57806341f43434116101a357806341f434341461047257806342842e0e146104905780634f6ccce7146104ac57806355f804b3146104dc57806360659a92146104f85780636352211e146105165761025d565b80632f2ff15d146103d05780632f745c59146103ec57806332cb6b0c1461041c57806336568abe1461043a5780633dd1eb61146104565761025d565b8063099db01711610226578063099db0171461032c5780630ee83a711461035c57806318160ddd1461036657806323b872dd14610384578063248a9ca3146103a05761025d565b8062923f9e1461026257806301ffc9a71461029257806306fdde03146102c2578063081812fc146102e0578063095ea7b314610310575b600080fd5b61027c600480360381019061027791906133aa565b6107f2565b60405161028991906133f2565b60405180910390f35b6102ac60048036038101906102a79190613465565b610804565b6040516102b991906133f2565b60405180910390f35b6102ca610816565b6040516102d79190613522565b60405180910390f35b6102fa60048036038101906102f591906133aa565b6108a8565b6040516103079190613585565b60405180910390f35b61032a600480360381019061032591906135cc565b6108ee565b005b6103466004803603810190610341919061360c565b610907565b60405161035391906133f2565b60405180910390f35b61036461093a565b005b61036e6109a5565b60405161037b9190613648565b60405180910390f35b61039e60048036038101906103999190613663565b6109b2565b005b6103ba60048036038101906103b591906136ec565b610a01565b6040516103c79190613728565b60405180910390f35b6103ea60048036038101906103e59190613743565b610a20565b005b610406600480360381019061040191906135cc565b610a41565b6040516104139190613648565b60405180910390f35b610424610ae6565b6040516104319190613648565b60405180910390f35b610454600480360381019061044f9190613743565b610aeb565b005b610470600480360381019061046b919061360c565b610b6e565b005b61047a610be3565b60405161048791906137e2565b60405180910390f35b6104aa60048036038101906104a59190613663565b610bf5565b005b6104c660048036038101906104c191906133aa565b610c44565b6040516104d39190613648565b60405180910390f35b6104f660048036038101906104f19190613932565b610cb5565b005b610500610d97565b60405161050d9190613648565b60405180910390f35b610530600480360381019061052b91906133aa565b610db4565b60405161053d9190613585565b60405180910390f35b610560600480360381019061055b919061360c565b610e3a565b005b61057c6004803603810190610577919061360c565b610eaf565b005b610586610fa0565b6040516105939190613522565b60405180910390f35b6105b660048036038101906105b1919061360c565b61102e565b6040516105c39190613648565b60405180910390f35b6105d46110e5565b005b6105de6110f9565b6040516105eb9190613728565b60405180910390f35b6105fc61111d565b6040516106099190613585565b60405180910390f35b61062c60048036038101906106279190613743565b611147565b60405161063991906133f2565b60405180910390f35b61064a6111b1565b6040516106579190613522565b60405180910390f35b61067a6004803603810190610675919061360c565b611243565b005b610684611278565b6040516106919190613728565b60405180910390f35b6106b460048036038101906106af91906139a7565b61127f565b005b6106be611298565b6040516106cb91906133f2565b60405180910390f35b6106ee60048036038101906106e99190613a88565b6112ab565b005b61070a6004803603810190610705919061360c565b6112fc565b60405161071791906133f2565b60405180910390f35b61073a6004803603810190610735919061360c565b61132f565b005b610756600480360381019061075191906133aa565b611364565b6040516107639190613522565b60405180910390f35b6107746113aa565b6040516107819190613728565b60405180910390f35b6107a4600480360381019061079f9190613743565b6113ce565b005b6107c060048036038101906107bb9190613b0b565b6113ef565b6040516107cd91906133f2565b60405180910390f35b6107f060048036038101906107eb919061360c565b611483565b005b60006107fd82611506565b9050919050565b600061080f82611547565b9050919050565b60606002805461082590613b7a565b80601f016020809104026020016040519081016040528092919081815260200182805461085190613b7a565b801561089e5780601f106108735761010080835404028352916020019161089e565b820191906000526020600020905b81548152906001019060200180831161088157829003601f168201915b5050505050905090565b60006108b3826115c1565b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b816108f88161160c565b6109028383611709565b505050565b60006109337f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683611147565b9050919050565b610942611820565b6001600d60006101000a81548160ff0219169083151502179055507f0c2d25e14986ca095e4c70f4306a9f689dbbd0ea54941253daf10180317fb2e5600d60009054906101000a900460ff1660405161099b91906133f2565b60405180910390a1565b6000600a80549050905090565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109f0576109ef3361160c565b5b6109fb84848461189e565b50505050565b6000806000838152602001908152602001600020600101549050919050565b610a2982610a01565b610a32816118fe565b610a3c8383611912565b505050565b6000610a4c8361102e565b8210610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8490613c1d565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b601e81565b610af36119f2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613caf565b60405180910390fd5b610b6a82826119fa565b5050565b610b77336112fc565b610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad90613d1b565b60405180910390fd5b610be07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682611912565b50565b6daaeb6d7670e522a718067333cd4e81565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c3357610c323361160c565b5b610c3e848484611adb565b50505050565b6000610c4e6109a5565b8210610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613dad565b60405180910390fd5b600a8281548110610ca357610ca2613dcd565b5b90600052602060002001549050919050565b610cbe336112fc565b610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490613d1b565b60405180910390fd5b600d60009054906101000a900460ff1615610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4490613e48565b60405180910390fd5b80600c9081610d5c919061400a565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad81604051610d8c9190613522565b60405180910390a150565b6000610da3600e611afb565b601e610daf919061410b565b905090565b600080610dc083611b09565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e289061418b565b60405180910390fd5b80915050919050565b610e43336112fc565b610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613d1b565b60405180910390fd5b610eac7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826119fa565b50565b610eb833610907565b610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee906141f7565b60405180910390fd5b6000610f01610d97565b11610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890614263565b60405180910390fd5b610f4b600e611b46565b6000610f57600e611afb565b9050610f638282611b5c565b7fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a88282604051610f94929190614283565b60405180910390a15050565b600c8054610fad90613b7a565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd990613b7a565b80156110265780601f10610ffb57610100808354040283529160200191611026565b820191906000526020600020905b81548152906001019060200180831161100957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110959061431e565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110ed611820565b6110f76000611b7a565b565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600380546111c090613b7a565b80601f01602080910402602001604051908101604052809291908181526020018280546111ec90613b7a565b80156112395780601f1061120e57610100808354040283529160200191611239565b820191906000526020600020905b81548152906001019060200180831161121c57829003601f168201915b5050505050905090565b61124b611820565b6112757fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775826119fa565b50565b6000801b81565b816112898161160c565b6112938383611c40565b505050565b600d60009054906101000a900460ff1681565b833373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146112e9576112e83361160c565b5b6112f585858585611c56565b5050505050565b60006113287fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583611147565b9050919050565b611337611820565b6113617fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177582611912565b50565b606061136f826107f2565b61137857600080fd5b600c61138383611cb8565b604051602001611394929190614449565b6040516020818303038152906040529050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6113d782610a01565b6113e0816118fe565b6113ea83836119fa565b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61148b611820565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f1906144ea565b60405180910390fd5b61150381611b7a565b50565b60008073ffffffffffffffffffffffffffffffffffffffff1661152883611b09565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806115ba57506115b982611d86565b5b9050919050565b6115ca81611506565b611609576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116009061418b565b60405180910390fd5b50565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611706576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b815260040161168392919061450a565b602060405180830381865afa1580156116a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c49190614548565b61170557806040517fede71dcc0000000000000000000000000000000000000000000000000000000081526004016116fc9190613585565b60405180910390fd5b5b50565b600061171482610db4565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b906145e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166117a36119f2565b73ffffffffffffffffffffffffffffffffffffffff1614806117d257506117d1816117cc6119f2565b6113ef565b5b611811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180890614679565b60405180910390fd5b61181b8383611e68565b505050565b6118286119f2565b73ffffffffffffffffffffffffffffffffffffffff1661184661111d565b73ffffffffffffffffffffffffffffffffffffffff161461189c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611893906146e5565b60405180910390fd5b565b6118af6118a96119f2565b82611f21565b6118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e590614777565b60405180910390fd5b6118f9838383611fb6565b505050565b61190f8161190a6119f2565b6122af565b50565b61191c8282611147565b6119ee57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506119936119f2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600033905090565b611a048282611147565b15611ad757600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611a7c6119f2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b611af6838383604051806020016040528060008152506112ab565b505050565b600081600001549050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6001816000016000828254019250508190555050565b611b76828260405180602001604052806000815250612334565b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611c52611c4b6119f2565b838361238f565b5050565b611c67611c616119f2565b83611f21565b611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d90614777565b60405180910390fd5b611cb2848484846124fb565b50505050565b606060006001611cc784612557565b01905060008167ffffffffffffffff811115611ce657611ce5613807565b5b6040519080825280601f01601f191660200182016040528015611d185781602001600182028036833780820191505090505b509050600082602001820190505b600115611d7b578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611d6f57611d6e614797565b5b04945060008503611d26575b819350505050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611e5157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611e615750611e60826126aa565b5b9050919050565b816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611edb83610db4565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611f2d83610db4565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f6f5750611f6e81856113ef565b5b80611fad57508373ffffffffffffffffffffffffffffffffffffffff16611f95846108a8565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611fd682610db4565b73ffffffffffffffffffffffffffffffffffffffff161461202c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202390614838565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361209b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612092906148ca565b60405180910390fd5b6120a883838360016126bc565b8273ffffffffffffffffffffffffffffffffffffffff166120c882610db4565b73ffffffffffffffffffffffffffffffffffffffff161461211e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211590614838565b60405180910390fd5b6006600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46122aa838383600161281a565b505050565b6122b98282611147565b612330576122c681612820565b6122d48360001c602061284d565b6040516020016122e5929190614982565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123279190613522565b60405180910390fd5b5050565b61233e8383612a89565b61234b6000848484612ca6565b61238a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238190614a2e565b60405180910390fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f490614a9a565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516124ee91906133f2565b60405180910390a3505050565b612506848484611fb6565b61251284848484612ca6565b612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254890614a2e565b60405180910390fd5b50505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106125b5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816125ab576125aa614797565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106125f2576d04ee2d6d415b85acef810000000083816125e8576125e7614797565b5b0492506020810190505b662386f26fc10000831061262157662386f26fc10000838161261757612616614797565b5b0492506010810190505b6305f5e100831061264a576305f5e10083816126405761263f614797565b5b0492506008810190505b612710831061266f57612710838161266557612664614797565b5b0492506004810190505b60648310612692576064838161268857612687614797565b5b0492506002810190505b600a83106126a1576001810190505b80915050919050565b60006126b582612e2d565b9050919050565b6126c884848484612ea7565b600181111561270c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270390614b2c565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036127535761274e81612fcd565b612792565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612791576127908582613016565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036127d4576127cf81613183565b612813565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612812576128118482613254565b5b5b5050505050565b50505050565b60606128468273ffffffffffffffffffffffffffffffffffffffff16601460ff1661284d565b9050919050565b6060600060028360026128609190614b4c565b61286a9190614b8e565b67ffffffffffffffff81111561288357612882613807565b5b6040519080825280601f01601f1916602001820160405280156128b55781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106128ed576128ec613dcd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061295157612950613dcd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026129919190614b4c565b61299b9190614b8e565b90505b6001811115612a3b577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106129dd576129dc613dcd565b5b1a60f81b8282815181106129f4576129f3613dcd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612a3490614bc2565b905061299e565b5060008414612a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7690614c37565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef90614ca3565b60405180910390fd5b612b0181611506565b15612b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3890614d0f565b60405180910390fd5b612b4f6000838360016126bc565b612b5881611506565b15612b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8f90614d0f565b60405180910390fd5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612ca260008383600161281a565b5050565b6000612cc78473ffffffffffffffffffffffffffffffffffffffff166132d3565b15612e20578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612cf06119f2565b8786866040518563ffffffff1660e01b8152600401612d129493929190614d84565b6020604051808303816000875af1925050508015612d4e57506040513d601f19601f82011682018060405250810190612d4b9190614de5565b60015b612dd0573d8060008114612d7e576040519150601f19603f3d011682016040523d82523d6000602084013e612d83565b606091505b506000815103612dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbf90614a2e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612e25565b600190505b949350505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612ea05750612e9f826132f6565b5b9050919050565b6001811115612fc757600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612f3b5780600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f33919061410b565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612fc65780600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fbe9190614b8e565b925050819055505b5b50505050565b600a80549050600b600083815260200190815260200160002081905550600a81908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016130238461102e565b61302d919061410b565b9050600060096000848152602001908152602001600020549050818114613112576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816009600083815260200190815260200160002081905550505b6009600084815260200190815260200160002060009055600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600a80549050613197919061410b565b90506000600b60008481526020019081526020016000205490506000600a83815481106131c7576131c6613dcd565b5b9060005260206000200154905080600a83815481106131e9576131e8613dcd565b5b906000526020600020018190555081600b600083815260200190815260200160002081905550600b600085815260200190815260200160002060009055600a80548061323857613237614e12565b5b6001900381819060005260206000200160009055905550505050565b600061325f8361102e565b905081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806009600084815260200190815260200160002081905550505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61338781613374565b811461339257600080fd5b50565b6000813590506133a48161337e565b92915050565b6000602082840312156133c0576133bf61336a565b5b60006133ce84828501613395565b91505092915050565b60008115159050919050565b6133ec816133d7565b82525050565b600060208201905061340760008301846133e3565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6134428161340d565b811461344d57600080fd5b50565b60008135905061345f81613439565b92915050565b60006020828403121561347b5761347a61336a565b5b600061348984828501613450565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134cc5780820151818401526020810190506134b1565b60008484015250505050565b6000601f19601f8301169050919050565b60006134f482613492565b6134fe818561349d565b935061350e8185602086016134ae565b613517816134d8565b840191505092915050565b6000602082019050818103600083015261353c81846134e9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061356f82613544565b9050919050565b61357f81613564565b82525050565b600060208201905061359a6000830184613576565b92915050565b6135a981613564565b81146135b457600080fd5b50565b6000813590506135c6816135a0565b92915050565b600080604083850312156135e3576135e261336a565b5b60006135f1858286016135b7565b925050602061360285828601613395565b9150509250929050565b6000602082840312156136225761362161336a565b5b6000613630848285016135b7565b91505092915050565b61364281613374565b82525050565b600060208201905061365d6000830184613639565b92915050565b60008060006060848603121561367c5761367b61336a565b5b600061368a868287016135b7565b935050602061369b868287016135b7565b92505060406136ac86828701613395565b9150509250925092565b6000819050919050565b6136c9816136b6565b81146136d457600080fd5b50565b6000813590506136e6816136c0565b92915050565b6000602082840312156137025761370161336a565b5b6000613710848285016136d7565b91505092915050565b613722816136b6565b82525050565b600060208201905061373d6000830184613719565b92915050565b6000806040838503121561375a5761375961336a565b5b6000613768858286016136d7565b9250506020613779858286016135b7565b9150509250929050565b6000819050919050565b60006137a86137a361379e84613544565b613783565b613544565b9050919050565b60006137ba8261378d565b9050919050565b60006137cc826137af565b9050919050565b6137dc816137c1565b82525050565b60006020820190506137f760008301846137d3565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61383f826134d8565b810181811067ffffffffffffffff8211171561385e5761385d613807565b5b80604052505050565b6000613871613360565b905061387d8282613836565b919050565b600067ffffffffffffffff82111561389d5761389c613807565b5b6138a6826134d8565b9050602081019050919050565b82818337600083830152505050565b60006138d56138d084613882565b613867565b9050828152602081018484840111156138f1576138f0613802565b5b6138fc8482856138b3565b509392505050565b600082601f830112613919576139186137fd565b5b81356139298482602086016138c2565b91505092915050565b6000602082840312156139485761394761336a565b5b600082013567ffffffffffffffff8111156139665761396561336f565b5b61397284828501613904565b91505092915050565b613984816133d7565b811461398f57600080fd5b50565b6000813590506139a18161397b565b92915050565b600080604083850312156139be576139bd61336a565b5b60006139cc858286016135b7565b92505060206139dd85828601613992565b9150509250929050565b600067ffffffffffffffff821115613a0257613a01613807565b5b613a0b826134d8565b9050602081019050919050565b6000613a2b613a26846139e7565b613867565b905082815260208101848484011115613a4757613a46613802565b5b613a528482856138b3565b509392505050565b600082601f830112613a6f57613a6e6137fd565b5b8135613a7f848260208601613a18565b91505092915050565b60008060008060808587031215613aa257613aa161336a565b5b6000613ab0878288016135b7565b9450506020613ac1878288016135b7565b9350506040613ad287828801613395565b925050606085013567ffffffffffffffff811115613af357613af261336f565b5b613aff87828801613a5a565b91505092959194509250565b60008060408385031215613b2257613b2161336a565b5b6000613b30858286016135b7565b9250506020613b41858286016135b7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b9257607f821691505b602082108103613ba557613ba4613b4b565b5b50919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613c07602b8361349d565b9150613c1282613bab565b604082019050919050565b60006020820190508181036000830152613c3681613bfa565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613c99602f8361349d565b9150613ca482613c3d565b604082019050919050565b60006020820190508181036000830152613cc881613c8c565b9050919050565b7f4163636573733a2063616c6c6572206973206e6f7420616e2061646d696e0000600082015250565b6000613d05601e8361349d565b9150613d1082613ccf565b602082019050919050565b60006020820190508181036000830152613d3481613cf8565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613d97602c8361349d565b9150613da282613d3b565b604082019050919050565b60006020820190508181036000830152613dc681613d8a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f436f6c6c656374696f6e206973206c6f636b6564000000000000000000000000600082015250565b6000613e3260148361349d565b9150613e3d82613dfc565b602082019050919050565b60006020820190508181036000830152613e6181613e25565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613eca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613e8d565b613ed48683613e8d565b95508019841693508086168417925050509392505050565b6000613f07613f02613efd84613374565b613783565b613374565b9050919050565b6000819050919050565b613f2183613eec565b613f35613f2d82613f0e565b848454613e9a565b825550505050565b600090565b613f4a613f3d565b613f55818484613f18565b505050565b5b81811015613f7957613f6e600082613f42565b600181019050613f5b565b5050565b601f821115613fbe57613f8f81613e68565b613f9884613e7d565b81016020851015613fa7578190505b613fbb613fb385613e7d565b830182613f5a565b50505b505050565b600082821c905092915050565b6000613fe160001984600802613fc3565b1980831691505092915050565b6000613ffa8383613fd0565b9150826002028217905092915050565b61401382613492565b67ffffffffffffffff81111561402c5761402b613807565b5b6140368254613b7a565b614041828285613f7d565b600060209050601f8311600181146140745760008415614062578287015190505b61406c8582613fee565b8655506140d4565b601f19841661408286613e68565b60005b828110156140aa57848901518255600182019150602085019450602081019050614085565b868310156140c757848901516140c3601f891682613fd0565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061411682613374565b915061412183613374565b9250828203905081811115614139576141386140dc565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061417560188361349d565b91506141808261413f565b602082019050919050565b600060208201905081810360008301526141a481614168565b9050919050565b7f4163636573733a2063616c6c6572206973206e6f742061206d696e7465720000600082015250565b60006141e1601e8361349d565b91506141ec826141ab565b602082019050919050565b60006020820190508181036000830152614210816141d4565b9050919050565b7f546f74616c20737570706c792072656163686564000000000000000000000000600082015250565b600061424d60148361349d565b915061425882614217565b602082019050919050565b6000602082019050818103600083015261427c81614240565b9050919050565b60006040820190506142986000830185613576565b6142a56020830184613639565b9392505050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061430860298361349d565b9150614313826142ac565b604082019050919050565b60006020820190508181036000830152614337816142fb565b9050919050565b600081905092915050565b6000815461435681613b7a565b614360818661433e565b9450600182166000811461437b5760018114614390576143c3565b60ff19831686528115158202860193506143c3565b61439985613e68565b60005b838110156143bb5781548189015260018201915060208101905061439c565b838801955050505b50505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061440260018361433e565b915061440d826143cc565b600182019050919050565b600061442382613492565b61442d818561433e565b935061443d8185602086016134ae565b80840191505092915050565b60006144558285614349565b9150614460826143f5565b915061446c8284614418565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d460268361349d565b91506144df82614478565b604082019050919050565b60006020820190508181036000830152614503816144c7565b9050919050565b600060408201905061451f6000830185613576565b61452c6020830184613576565b9392505050565b6000815190506145428161397b565b92915050565b60006020828403121561455e5761455d61336a565b5b600061456c84828501614533565b91505092915050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006145d160218361349d565b91506145dc82614575565b604082019050919050565b60006020820190508181036000830152614600816145c4565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614663603d8361349d565b915061466e82614607565b604082019050919050565b6000602082019050818103600083015261469281614656565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006146cf60208361349d565b91506146da82614699565b602082019050919050565b600060208201905081810360008301526146fe816146c2565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000614761602d8361349d565b915061476c82614705565b604082019050919050565b6000602082019050818103600083015261479081614754565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061482260258361349d565b915061482d826147c6565b604082019050919050565b6000602082019050818103600083015261485181614815565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148b460248361349d565b91506148bf82614858565b604082019050919050565b600060208201905081810360008301526148e3816148a7565b9050919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061492060178361433e565b915061492b826148ea565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061496c60118361433e565b915061497782614936565b601182019050919050565b600061498d82614913565b91506149998285614418565b91506149a48261495f565b91506149b08284614418565b91508190509392505050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000614a1860328361349d565b9150614a23826149bc565b604082019050919050565b60006020820190508181036000830152614a4781614a0b565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000614a8460198361349d565b9150614a8f82614a4e565b602082019050919050565b60006020820190508181036000830152614ab381614a77565b9050919050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000614b1660358361349d565b9150614b2182614aba565b604082019050919050565b60006020820190508181036000830152614b4581614b09565b9050919050565b6000614b5782613374565b9150614b6283613374565b9250828202614b7081613374565b91508282048414831517614b8757614b866140dc565b5b5092915050565b6000614b9982613374565b9150614ba483613374565b9250828201905080821115614bbc57614bbb6140dc565b5b92915050565b6000614bcd82613374565b915060008203614be057614bdf6140dc565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000614c2160208361349d565b9150614c2c82614beb565b602082019050919050565b60006020820190508181036000830152614c5081614c14565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614c8d60208361349d565b9150614c9882614c57565b602082019050919050565b60006020820190508181036000830152614cbc81614c80565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614cf9601c8361349d565b9150614d0482614cc3565b602082019050919050565b60006020820190508181036000830152614d2881614cec565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614d5682614d2f565b614d608185614d3a565b9350614d708185602086016134ae565b614d79816134d8565b840191505092915050565b6000608082019050614d996000830187613576565b614da66020830186613576565b614db36040830185613639565b8181036060830152614dc58184614d4b565b905095945050505050565b600081519050614ddf81613439565b92915050565b600060208284031215614dfb57614dfa61336a565b5b6000614e0984828501614dd0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212200e55958ef63b9dfb94556f19fd2f5cc26373edd24018eeee079401a604ad56b764736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000002346726f6d20506978656c20746f20506c6174653a20486f6e657920616e64204e7574730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000646503250484e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005668747470733a2f2f65746865722d63617264732e6d7970696e6174612e636c6f75642f697066732f516d574476666e634e476962646832416f6e706d396653586a4d3158526f726b6d4a324a75415a3338647442576800000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): From Pixel to Plate: Honey and Nuts
Arg [1] : _symbol (string): FP2PHN
Arg [2] : _baseURI (string): https://ether-cards.mypinata.cloud/ipfs/QmWDvfncNGibdh2Aonpm9fSXjM1XRorkmJ2JuAZ38dtBWh
-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000023
Arg [4] : 46726f6d20506978656c20746f20506c6174653a20486f6e657920616e64204e
Arg [5] : 7574730000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [7] : 46503250484e0000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000056
Arg [9] : 68747470733a2f2f65746865722d63617264732e6d7970696e6174612e636c6f
Arg [10] : 75642f697066732f516d574476666e634e476962646832416f6e706d39665358
Arg [11] : 6a4d3158526f726b6d4a324a75415a3338647442576800000000000000000000
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.