ERC-721
Overview
Max Total Supply
0 TrusteeNY
Holders
10,552
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 TrusteeNYLoading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
TrusteeNY
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-01-09 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; 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); } 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); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } 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 `IERC721.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } 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); function currentTokenAmount() external view returns (uint); function contractOwner() external view returns (address); } 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 * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, Ownable{ using Address for address; using Strings for uint256; // Token name string private _name; // Token symbol string private _symbol; // Current token ID uint private _currentTokenAmount; uint private _currentTokenAmountAfterparty; uint private _currentTokenAmountVip; // Mapping from token ID to owner address mapping(uint256 => address) private _owners; // Mapping owner address to token count mapping(address => uint256) private _balances; // Mapping from token ID to approved address mapping(uint256 => address) private _tokenApprovals; // Mapping from owner to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; string public BASE_TOKEN_URI; constructor( string memory name_, string memory symbol_, string memory baseTokenURI_ ) { _name = name_; _symbol = symbol_; BASE_TOKEN_URI = baseTokenURI_; } function contractOwner() public view virtual override returns (address) { return owner(); } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } /** * @dev See {IERC721-balanceOf}. */ function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } /** * @dev See {IERC721-ownerOf}. */ function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } /** * @dev See {IERC721Metadata-name}. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev See {IERC721Metadata-symbol}. */ function symbol() public view virtual override returns (string memory) { return _symbol; } function currentTokenAmount() public view virtual override returns (uint) { return _currentTokenAmount; } /** * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each * token will be the concatenation of the `baseURI` and the `tokenId`. Empty * by default, can be overriden in child contracts. */ function _baseURI() internal view virtual returns (string memory) { return BASE_TOKEN_URI; } /** * @dev See {IERC721Metadata-tokenURI}. */ function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); return BASE_TOKEN_URI; } /** * @dev See {IERC721-approve}. */ function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } /** * @dev See {IERC721-getApproved}. */ function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } /** * @dev See {IERC721-setApprovalForAll}. */ function setApprovalForAll(address operator, bool approved) public virtual override { require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); } /** * @dev See {IERC721-isApprovedForAll}. */ function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } /** * @dev See {IERC721-transferFrom}. */ function transferFrom( address from, address to, uint256 tokenId ) public virtual override { //solhint-disable-next-line max-line-length require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } /** * @dev See {IERC721-safeTransferFrom}. */ function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } /** * @dev See {IERC721-safeTransferFrom}. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * `_data` is additional data, it has no specified format and it is sent in call to `to`. * * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g. * implement alternative mechanisms to perform token transfer, such as signature-based. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } /** * @dev Returns whether `tokenId` exists. * * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}. * * Tokens start existing when they are minted (`_mint`), * and stop existing when they are burned (`_burn`). */ function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } /** * @dev Returns whether `spender` is allowed to manage `tokenId`. * * Requirements: * * - `tokenId` must exist. */ function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } /** * @dev Destroys `tokenId`. * The approval is cleared when the token is burned. * * Requirements: * * - `tokenId` must exist. * * Emits a {Transfer} event. */ function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); // Clear approvals _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } /** * @dev Transfers `tokenId` from `from` to `to`. * As opposed to {transferFrom}, this imposes no restrictions on msg.sender. * * Requirements: * * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * * Emits a {Transfer} event. */ function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); // Clear approvals from the previous owner _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } /** * @dev Approve `to` to operate on `tokenId` * * Emits a {Approval} event. */ function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } /** * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address. * The call is not executed if the target address is not a contract. * * @param from address representing the previous owner of the given token ID * @param to target address that will receive the tokens * @param tokenId uint256 ID of the token to be transferred * @param _data bytes optional data to send along with the call * @return bool whether the call correctly returned the expected magic value */ function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver(to).onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } /** * @dev Hook that is called before any token transfer. This includes minting * and burning. * * Calling conditions: * * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be * transferred to `to`. * - When `from` is zero, `tokenId` will be minted for `to`. * - When `to` is zero, ``from``'s `tokenId` will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} function _mint(address to, uint256 tokenId) private { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function mint(address to, uint256 tokenId) onlyOwner public { return _mint(to, tokenId); } } contract TrusteeNY is ERC721 { constructor() ERC721( "Trustee - 2022 NFT edition", "TrusteeNY", "https://gateway.pinata.cloud/ipfs/QmWVKPMtimjGKUASXJUaxT85YEiiLQ8XVWATYmgCaJuVHU" ){ } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BASE_TOKEN_URI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"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":"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":"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":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"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
60806040523480156200001157600080fd5b506040518060400160405280601a81526020017f54727573746565202d2032303232204e46542065646974696f6e0000000000008152506040518060400160405280600981526020017f547275737465654e59000000000000000000000000000000000000000000000081525060405180608001604052806050815260200162002c7660509139620000b8620000ac6200010c60201b60201c565b6200011460201b60201c565b8260019080519060200190620000d0929190620001d8565b508160029080519060200190620000e9929190620001d8565b5080600a908051906020019062000102929190620001d8565b50505050620002ed565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001e69062000288565b90600052602060002090601f0160209004810192826200020a576000855562000256565b82601f106200022557805160ff191683800117855562000256565b8280016001018555821562000256579182015b828111156200025557825182559160200191906001019062000238565b5b50905062000265919062000269565b5090565b5b80821115620002845760008160009055506001016200026a565b5090565b60006002820490506001821680620002a157607f821691505b60208210811415620002b857620002b7620002be565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61297980620002fd6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063c87b56dd11610071578063c87b56dd1461031b578063ce606ee01461034b578063e985e9c514610369578063f2fde38b14610399578063ff69ac36146103b55761012c565b8063715018a61461029d5780638da5cb5b146102a757806395d89b41146102c5578063a22cb465146102e3578063b88d4fde146102ff5761012c565b806340c10f19116100f457806340c10f19146101e757806342842e0e146102035780636352211e1461021f5780636f4581331461024f57806370a082311461026d5761012c565b806301ffc9a71461013157806306fdde0314610161578063081812fc1461017f578063095ea7b3146101af57806323b872dd146101cb575b600080fd5b61014b60048036038101906101469190611b97565b6103d3565b6040516101589190611f54565b60405180910390f35b6101696104b5565b6040516101769190611f6f565b60405180910390f35b61019960048036038101906101949190611bf1565b610547565b6040516101a69190611eed565b60405180910390f35b6101c960048036038101906101c49190611b57565b6105cc565b005b6101e560048036038101906101e09190611a41565b6106e4565b005b61020160048036038101906101fc9190611b57565b610744565b005b61021d60048036038101906102189190611a41565b6107ce565b005b61023960048036038101906102349190611bf1565b6107ee565b6040516102469190611eed565b60405180910390f35b6102576108a0565b6040516102649190611f6f565b60405180910390f35b610287600480360381019061028291906119d4565b61092e565b6040516102949190612191565b60405180910390f35b6102a56109e6565b005b6102af610a6e565b6040516102bc9190611eed565b60405180910390f35b6102cd610a97565b6040516102da9190611f6f565b60405180910390f35b6102fd60048036038101906102f89190611b17565b610b29565b005b61031960048036038101906103149190611a94565b610caa565b005b61033560048036038101906103309190611bf1565b610d0c565b6040516103429190611f6f565b60405180910390f35b610353610de8565b6040516103609190611eed565b60405180910390f35b610383600480360381019061037e9190611a01565b610df7565b6040516103909190611f54565b60405180910390f35b6103b360048036038101906103ae91906119d4565b610e8b565b005b6103bd610f83565b6040516103ca9190612191565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049e57507f6a57d149000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104ae57506104ad82610f8d565b5b9050919050565b6060600180546104c49061237a565b80601f01602080910402602001604051908101604052809291908181526020018280546104f09061237a565b801561053d5780601f106105125761010080835404028352916020019161053d565b820191906000526020600020905b81548152906001019060200180831161052057829003601f168201915b5050505050905090565b600061055282610ff7565b610591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610588906120d1565b60405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105d7826107ee565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063f90612151565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610667611063565b73ffffffffffffffffffffffffffffffffffffffff161480610696575061069581610690611063565b610df7565b5b6106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc90612051565b60405180910390fd5b6106df838361106b565b505050565b6106f56106ef611063565b82611124565b610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90612171565b60405180910390fd5b61073f838383611202565b505050565b61074c611063565b73ffffffffffffffffffffffffffffffffffffffff1661076a610a6e565b73ffffffffffffffffffffffffffffffffffffffff16146107c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b7906120f1565b60405180910390fd5b6107ca828261145e565b5050565b6107e983838360405180602001604052806000815250610caa565b505050565b6000806006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e90612091565b60405180910390fd5b80915050919050565b600a80546108ad9061237a565b80601f01602080910402602001604051908101604052809291908181526020018280546108d99061237a565b80156109265780601f106108fb57610100808354040283529160200191610926565b820191906000526020600020905b81548152906001019060200180831161090957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099690612071565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ee611063565b73ffffffffffffffffffffffffffffffffffffffff16610a0c610a6e565b73ffffffffffffffffffffffffffffffffffffffff1614610a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a59906120f1565b60405180910390fd5b610a6c600061162c565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610aa69061237a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad29061237a565b8015610b1f5780601f10610af457610100808354040283529160200191610b1f565b820191906000526020600020905b815481529060010190602001808311610b0257829003601f168201915b5050505050905090565b610b31611063565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690612011565b60405180910390fd5b8060096000610bac611063565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610c59611063565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c9e9190611f54565b60405180910390a35050565b610cbb610cb5611063565b83611124565b610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf190612171565b60405180910390fd5b610d06848484846116f0565b50505050565b6060610d1782610ff7565b610d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4d90612131565b60405180910390fd5b600a8054610d639061237a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8f9061237a565b8015610ddc5780601f10610db157610100808354040283529160200191610ddc565b820191906000526020600020905b815481529060010190602001808311610dbf57829003601f168201915b50505050509050919050565b6000610df2610a6e565b905090565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e93611063565b73ffffffffffffffffffffffffffffffffffffffff16610eb1610a6e565b73ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906120f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90611fb1565b60405180910390fd5b610f808161162c565b50565b6000600354905090565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110de836107ee565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061112f82610ff7565b61116e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116590612031565b60405180910390fd5b6000611179836107ee565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111e857508373ffffffffffffffffffffffffffffffffffffffff166111d084610547565b73ffffffffffffffffffffffffffffffffffffffff16145b806111f957506111f88185610df7565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611222826107ee565b73ffffffffffffffffffffffffffffffffffffffff1614611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90612111565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df90611ff1565b60405180910390fd5b6112f383838361174c565b6112fe60008261106b565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461134e9190612290565b925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113a5919061223a565b92505081905550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c5906120b1565b60405180910390fd5b6114d781610ff7565b15611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e90611fd1565b60405180910390fd5b6115236000838361174c565b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611573919061223a565b92505081905550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6116fb848484611202565b61170784848484611751565b611746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173d90611f91565b60405180910390fd5b50505050565b505050565b60006117728473ffffffffffffffffffffffffffffffffffffffff166118e8565b156118db578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261179b611063565b8786866040518563ffffffff1660e01b81526004016117bd9493929190611f08565b602060405180830381600087803b1580156117d757600080fd5b505af192505050801561180857506040513d601f19601f820116820180604052508101906118059190611bc4565b60015b61188b573d8060008114611838576040519150601f19603f3d011682016040523d82523d6000602084013e61183d565b606091505b50600081511415611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a90611f91565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506118e0565b600190505b949350505050565b600080823b905060008111915050919050565b600061190e611909846121d1565b6121ac565b90508281526020810184848401111561192a5761192961246f565b5b611935848285612338565b509392505050565b60008135905061194c816128e7565b92915050565b600081359050611961816128fe565b92915050565b60008135905061197681612915565b92915050565b60008151905061198b81612915565b92915050565b600082601f8301126119a6576119a561246a565b5b81356119b68482602086016118fb565b91505092915050565b6000813590506119ce8161292c565b92915050565b6000602082840312156119ea576119e9612479565b5b60006119f88482850161193d565b91505092915050565b60008060408385031215611a1857611a17612479565b5b6000611a268582860161193d565b9250506020611a378582860161193d565b9150509250929050565b600080600060608486031215611a5a57611a59612479565b5b6000611a688682870161193d565b9350506020611a798682870161193d565b9250506040611a8a868287016119bf565b9150509250925092565b60008060008060808587031215611aae57611aad612479565b5b6000611abc8782880161193d565b9450506020611acd8782880161193d565b9350506040611ade878288016119bf565b925050606085013567ffffffffffffffff811115611aff57611afe612474565b5b611b0b87828801611991565b91505092959194509250565b60008060408385031215611b2e57611b2d612479565b5b6000611b3c8582860161193d565b9250506020611b4d85828601611952565b9150509250929050565b60008060408385031215611b6e57611b6d612479565b5b6000611b7c8582860161193d565b9250506020611b8d858286016119bf565b9150509250929050565b600060208284031215611bad57611bac612479565b5b6000611bbb84828501611967565b91505092915050565b600060208284031215611bda57611bd9612479565b5b6000611be88482850161197c565b91505092915050565b600060208284031215611c0757611c06612479565b5b6000611c15848285016119bf565b91505092915050565b611c27816122c4565b82525050565b611c36816122d6565b82525050565b6000611c4782612202565b611c518185612218565b9350611c61818560208601612347565b611c6a8161247e565b840191505092915050565b6000611c808261220d565b611c8a8185612229565b9350611c9a818560208601612347565b611ca38161247e565b840191505092915050565b6000611cbb603283612229565b9150611cc68261248f565b604082019050919050565b6000611cde602683612229565b9150611ce9826124de565b604082019050919050565b6000611d01601c83612229565b9150611d0c8261252d565b602082019050919050565b6000611d24602483612229565b9150611d2f82612556565b604082019050919050565b6000611d47601983612229565b9150611d52826125a5565b602082019050919050565b6000611d6a602c83612229565b9150611d75826125ce565b604082019050919050565b6000611d8d603883612229565b9150611d988261261d565b604082019050919050565b6000611db0602a83612229565b9150611dbb8261266c565b604082019050919050565b6000611dd3602983612229565b9150611dde826126bb565b604082019050919050565b6000611df6602083612229565b9150611e018261270a565b602082019050919050565b6000611e19602c83612229565b9150611e2482612733565b604082019050919050565b6000611e3c602083612229565b9150611e4782612782565b602082019050919050565b6000611e5f602983612229565b9150611e6a826127ab565b604082019050919050565b6000611e82602f83612229565b9150611e8d826127fa565b604082019050919050565b6000611ea5602183612229565b9150611eb082612849565b604082019050919050565b6000611ec8603183612229565b9150611ed382612898565b604082019050919050565b611ee78161232e565b82525050565b6000602082019050611f026000830184611c1e565b92915050565b6000608082019050611f1d6000830187611c1e565b611f2a6020830186611c1e565b611f376040830185611ede565b8181036060830152611f498184611c3c565b905095945050505050565b6000602082019050611f696000830184611c2d565b92915050565b60006020820190508181036000830152611f898184611c75565b905092915050565b60006020820190508181036000830152611faa81611cae565b9050919050565b60006020820190508181036000830152611fca81611cd1565b9050919050565b60006020820190508181036000830152611fea81611cf4565b9050919050565b6000602082019050818103600083015261200a81611d17565b9050919050565b6000602082019050818103600083015261202a81611d3a565b9050919050565b6000602082019050818103600083015261204a81611d5d565b9050919050565b6000602082019050818103600083015261206a81611d80565b9050919050565b6000602082019050818103600083015261208a81611da3565b9050919050565b600060208201905081810360008301526120aa81611dc6565b9050919050565b600060208201905081810360008301526120ca81611de9565b9050919050565b600060208201905081810360008301526120ea81611e0c565b9050919050565b6000602082019050818103600083015261210a81611e2f565b9050919050565b6000602082019050818103600083015261212a81611e52565b9050919050565b6000602082019050818103600083015261214a81611e75565b9050919050565b6000602082019050818103600083015261216a81611e98565b9050919050565b6000602082019050818103600083015261218a81611ebb565b9050919050565b60006020820190506121a66000830184611ede565b92915050565b60006121b66121c7565b90506121c282826123ac565b919050565b6000604051905090565b600067ffffffffffffffff8211156121ec576121eb61243b565b5b6121f58261247e565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006122458261232e565b91506122508361232e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612285576122846123dd565b5b828201905092915050565b600061229b8261232e565b91506122a68361232e565b9250828210156122b9576122b86123dd565b5b828203905092915050565b60006122cf8261230e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561236557808201518184015260208101905061234a565b83811115612374576000848401525b50505050565b6000600282049050600182168061239257607f821691505b602082108114156123a6576123a561240c565b5b50919050565b6123b58261247e565b810181811067ffffffffffffffff821117156123d4576123d361243b565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6128f0816122c4565b81146128fb57600080fd5b50565b612907816122d6565b811461291257600080fd5b50565b61291e816122e2565b811461292957600080fd5b50565b6129358161232e565b811461294057600080fd5b5056fea2646970667358221220344631075d92a6abf1a46512134977e82754e311aed99e821caf444a3e6ef43b64736f6c6343000807003368747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d57564b504d74696d6a474b554153584a556178543835594569694c51385856574154596d6743614a75564855
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063c87b56dd11610071578063c87b56dd1461031b578063ce606ee01461034b578063e985e9c514610369578063f2fde38b14610399578063ff69ac36146103b55761012c565b8063715018a61461029d5780638da5cb5b146102a757806395d89b41146102c5578063a22cb465146102e3578063b88d4fde146102ff5761012c565b806340c10f19116100f457806340c10f19146101e757806342842e0e146102035780636352211e1461021f5780636f4581331461024f57806370a082311461026d5761012c565b806301ffc9a71461013157806306fdde0314610161578063081812fc1461017f578063095ea7b3146101af57806323b872dd146101cb575b600080fd5b61014b60048036038101906101469190611b97565b6103d3565b6040516101589190611f54565b60405180910390f35b6101696104b5565b6040516101769190611f6f565b60405180910390f35b61019960048036038101906101949190611bf1565b610547565b6040516101a69190611eed565b60405180910390f35b6101c960048036038101906101c49190611b57565b6105cc565b005b6101e560048036038101906101e09190611a41565b6106e4565b005b61020160048036038101906101fc9190611b57565b610744565b005b61021d60048036038101906102189190611a41565b6107ce565b005b61023960048036038101906102349190611bf1565b6107ee565b6040516102469190611eed565b60405180910390f35b6102576108a0565b6040516102649190611f6f565b60405180910390f35b610287600480360381019061028291906119d4565b61092e565b6040516102949190612191565b60405180910390f35b6102a56109e6565b005b6102af610a6e565b6040516102bc9190611eed565b60405180910390f35b6102cd610a97565b6040516102da9190611f6f565b60405180910390f35b6102fd60048036038101906102f89190611b17565b610b29565b005b61031960048036038101906103149190611a94565b610caa565b005b61033560048036038101906103309190611bf1565b610d0c565b6040516103429190611f6f565b60405180910390f35b610353610de8565b6040516103609190611eed565b60405180910390f35b610383600480360381019061037e9190611a01565b610df7565b6040516103909190611f54565b60405180910390f35b6103b360048036038101906103ae91906119d4565b610e8b565b005b6103bd610f83565b6040516103ca9190612191565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049e57507f6a57d149000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104ae57506104ad82610f8d565b5b9050919050565b6060600180546104c49061237a565b80601f01602080910402602001604051908101604052809291908181526020018280546104f09061237a565b801561053d5780601f106105125761010080835404028352916020019161053d565b820191906000526020600020905b81548152906001019060200180831161052057829003601f168201915b5050505050905090565b600061055282610ff7565b610591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610588906120d1565b60405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105d7826107ee565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063f90612151565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610667611063565b73ffffffffffffffffffffffffffffffffffffffff161480610696575061069581610690611063565b610df7565b5b6106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc90612051565b60405180910390fd5b6106df838361106b565b505050565b6106f56106ef611063565b82611124565b610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90612171565b60405180910390fd5b61073f838383611202565b505050565b61074c611063565b73ffffffffffffffffffffffffffffffffffffffff1661076a610a6e565b73ffffffffffffffffffffffffffffffffffffffff16146107c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b7906120f1565b60405180910390fd5b6107ca828261145e565b5050565b6107e983838360405180602001604052806000815250610caa565b505050565b6000806006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e90612091565b60405180910390fd5b80915050919050565b600a80546108ad9061237a565b80601f01602080910402602001604051908101604052809291908181526020018280546108d99061237a565b80156109265780601f106108fb57610100808354040283529160200191610926565b820191906000526020600020905b81548152906001019060200180831161090957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099690612071565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ee611063565b73ffffffffffffffffffffffffffffffffffffffff16610a0c610a6e565b73ffffffffffffffffffffffffffffffffffffffff1614610a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a59906120f1565b60405180910390fd5b610a6c600061162c565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610aa69061237a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad29061237a565b8015610b1f5780601f10610af457610100808354040283529160200191610b1f565b820191906000526020600020905b815481529060010190602001808311610b0257829003601f168201915b5050505050905090565b610b31611063565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690612011565b60405180910390fd5b8060096000610bac611063565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610c59611063565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c9e9190611f54565b60405180910390a35050565b610cbb610cb5611063565b83611124565b610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf190612171565b60405180910390fd5b610d06848484846116f0565b50505050565b6060610d1782610ff7565b610d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4d90612131565b60405180910390fd5b600a8054610d639061237a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8f9061237a565b8015610ddc5780601f10610db157610100808354040283529160200191610ddc565b820191906000526020600020905b815481529060010190602001808311610dbf57829003601f168201915b50505050509050919050565b6000610df2610a6e565b905090565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e93611063565b73ffffffffffffffffffffffffffffffffffffffff16610eb1610a6e565b73ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906120f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90611fb1565b60405180910390fd5b610f808161162c565b50565b6000600354905090565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110de836107ee565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061112f82610ff7565b61116e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116590612031565b60405180910390fd5b6000611179836107ee565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111e857508373ffffffffffffffffffffffffffffffffffffffff166111d084610547565b73ffffffffffffffffffffffffffffffffffffffff16145b806111f957506111f88185610df7565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611222826107ee565b73ffffffffffffffffffffffffffffffffffffffff1614611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90612111565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df90611ff1565b60405180910390fd5b6112f383838361174c565b6112fe60008261106b565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461134e9190612290565b925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113a5919061223a565b92505081905550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c5906120b1565b60405180910390fd5b6114d781610ff7565b15611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e90611fd1565b60405180910390fd5b6115236000838361174c565b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611573919061223a565b92505081905550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6116fb848484611202565b61170784848484611751565b611746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173d90611f91565b60405180910390fd5b50505050565b505050565b60006117728473ffffffffffffffffffffffffffffffffffffffff166118e8565b156118db578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261179b611063565b8786866040518563ffffffff1660e01b81526004016117bd9493929190611f08565b602060405180830381600087803b1580156117d757600080fd5b505af192505050801561180857506040513d601f19601f820116820180604052508101906118059190611bc4565b60015b61188b573d8060008114611838576040519150601f19603f3d011682016040523d82523d6000602084013e61183d565b606091505b50600081511415611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a90611f91565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506118e0565b600190505b949350505050565b600080823b905060008111915050919050565b600061190e611909846121d1565b6121ac565b90508281526020810184848401111561192a5761192961246f565b5b611935848285612338565b509392505050565b60008135905061194c816128e7565b92915050565b600081359050611961816128fe565b92915050565b60008135905061197681612915565b92915050565b60008151905061198b81612915565b92915050565b600082601f8301126119a6576119a561246a565b5b81356119b68482602086016118fb565b91505092915050565b6000813590506119ce8161292c565b92915050565b6000602082840312156119ea576119e9612479565b5b60006119f88482850161193d565b91505092915050565b60008060408385031215611a1857611a17612479565b5b6000611a268582860161193d565b9250506020611a378582860161193d565b9150509250929050565b600080600060608486031215611a5a57611a59612479565b5b6000611a688682870161193d565b9350506020611a798682870161193d565b9250506040611a8a868287016119bf565b9150509250925092565b60008060008060808587031215611aae57611aad612479565b5b6000611abc8782880161193d565b9450506020611acd8782880161193d565b9350506040611ade878288016119bf565b925050606085013567ffffffffffffffff811115611aff57611afe612474565b5b611b0b87828801611991565b91505092959194509250565b60008060408385031215611b2e57611b2d612479565b5b6000611b3c8582860161193d565b9250506020611b4d85828601611952565b9150509250929050565b60008060408385031215611b6e57611b6d612479565b5b6000611b7c8582860161193d565b9250506020611b8d858286016119bf565b9150509250929050565b600060208284031215611bad57611bac612479565b5b6000611bbb84828501611967565b91505092915050565b600060208284031215611bda57611bd9612479565b5b6000611be88482850161197c565b91505092915050565b600060208284031215611c0757611c06612479565b5b6000611c15848285016119bf565b91505092915050565b611c27816122c4565b82525050565b611c36816122d6565b82525050565b6000611c4782612202565b611c518185612218565b9350611c61818560208601612347565b611c6a8161247e565b840191505092915050565b6000611c808261220d565b611c8a8185612229565b9350611c9a818560208601612347565b611ca38161247e565b840191505092915050565b6000611cbb603283612229565b9150611cc68261248f565b604082019050919050565b6000611cde602683612229565b9150611ce9826124de565b604082019050919050565b6000611d01601c83612229565b9150611d0c8261252d565b602082019050919050565b6000611d24602483612229565b9150611d2f82612556565b604082019050919050565b6000611d47601983612229565b9150611d52826125a5565b602082019050919050565b6000611d6a602c83612229565b9150611d75826125ce565b604082019050919050565b6000611d8d603883612229565b9150611d988261261d565b604082019050919050565b6000611db0602a83612229565b9150611dbb8261266c565b604082019050919050565b6000611dd3602983612229565b9150611dde826126bb565b604082019050919050565b6000611df6602083612229565b9150611e018261270a565b602082019050919050565b6000611e19602c83612229565b9150611e2482612733565b604082019050919050565b6000611e3c602083612229565b9150611e4782612782565b602082019050919050565b6000611e5f602983612229565b9150611e6a826127ab565b604082019050919050565b6000611e82602f83612229565b9150611e8d826127fa565b604082019050919050565b6000611ea5602183612229565b9150611eb082612849565b604082019050919050565b6000611ec8603183612229565b9150611ed382612898565b604082019050919050565b611ee78161232e565b82525050565b6000602082019050611f026000830184611c1e565b92915050565b6000608082019050611f1d6000830187611c1e565b611f2a6020830186611c1e565b611f376040830185611ede565b8181036060830152611f498184611c3c565b905095945050505050565b6000602082019050611f696000830184611c2d565b92915050565b60006020820190508181036000830152611f898184611c75565b905092915050565b60006020820190508181036000830152611faa81611cae565b9050919050565b60006020820190508181036000830152611fca81611cd1565b9050919050565b60006020820190508181036000830152611fea81611cf4565b9050919050565b6000602082019050818103600083015261200a81611d17565b9050919050565b6000602082019050818103600083015261202a81611d3a565b9050919050565b6000602082019050818103600083015261204a81611d5d565b9050919050565b6000602082019050818103600083015261206a81611d80565b9050919050565b6000602082019050818103600083015261208a81611da3565b9050919050565b600060208201905081810360008301526120aa81611dc6565b9050919050565b600060208201905081810360008301526120ca81611de9565b9050919050565b600060208201905081810360008301526120ea81611e0c565b9050919050565b6000602082019050818103600083015261210a81611e2f565b9050919050565b6000602082019050818103600083015261212a81611e52565b9050919050565b6000602082019050818103600083015261214a81611e75565b9050919050565b6000602082019050818103600083015261216a81611e98565b9050919050565b6000602082019050818103600083015261218a81611ebb565b9050919050565b60006020820190506121a66000830184611ede565b92915050565b60006121b66121c7565b90506121c282826123ac565b919050565b6000604051905090565b600067ffffffffffffffff8211156121ec576121eb61243b565b5b6121f58261247e565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006122458261232e565b91506122508361232e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612285576122846123dd565b5b828201905092915050565b600061229b8261232e565b91506122a68361232e565b9250828210156122b9576122b86123dd565b5b828203905092915050565b60006122cf8261230e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561236557808201518184015260208101905061234a565b83811115612374576000848401525b50505050565b6000600282049050600182168061239257607f821691505b602082108114156123a6576123a561240c565b5b50919050565b6123b58261247e565b810181811067ffffffffffffffff821117156123d4576123d361243b565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6128f0816122c4565b81146128fb57600080fd5b50565b612907816122d6565b811461291257600080fd5b50565b61291e816122e2565b811461292957600080fd5b50565b6129358161232e565b811461294057600080fd5b5056fea2646970667358221220344631075d92a6abf1a46512134977e82754e311aed99e821caf444a3e6ef43b64736f6c63430008070033
Deployed Bytecode Sourcemap
30541:212:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19621:293;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20554:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22137:221;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21660:411;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23027:339;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30428:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23437:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20248:239;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19193:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19978:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15502:94;;;:::i;:::-;;14851:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20723:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22430:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23693:328;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21381:217;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19444:105;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22796:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15751:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20835:119;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19621:293;19723:4;19771:25;19756:40;;;:11;:40;;;;:101;;;;19824:33;19809:48;;;:11;:48;;;;19756:101;:150;;;;19870:36;19894:11;19870:23;:36::i;:::-;19756:150;19740:166;;19621:293;;;:::o;20554:100::-;20608:13;20641:5;20634:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20554:100;:::o;22137:221::-;22213:7;22241:16;22249:7;22241;:16::i;:::-;22233:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;22326:15;:24;22342:7;22326:24;;;;;;;;;;;;;;;;;;;;;22319:31;;22137:221;;;:::o;21660:411::-;21741:13;21757:23;21772:7;21757:14;:23::i;:::-;21741:39;;21805:5;21799:11;;:2;:11;;;;21791:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;21899:5;21883:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;21908:37;21925:5;21932:12;:10;:12::i;:::-;21908:16;:37::i;:::-;21883:62;21861:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;22042:21;22051:2;22055:7;22042:8;:21::i;:::-;21730:341;21660:411;;:::o;23027:339::-;23222:41;23241:12;:10;:12::i;:::-;23255:7;23222:18;:41::i;:::-;23214:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;23330:28;23340:4;23346:2;23350:7;23330:9;:28::i;:::-;23027:339;;;:::o;30428:104::-;15082:12;:10;:12::i;:::-;15071:23;;:7;:5;:7::i;:::-;:23;;;15063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30506:18:::1;30512:2;30516:7;30506:5;:18::i;:::-;30428:104:::0;;:::o;23437:185::-;23575:39;23592:4;23598:2;23602:7;23575:39;;;;;;;;;;;;:16;:39::i;:::-;23437:185;;;:::o;20248:239::-;20320:7;20340:13;20356:7;:16;20364:7;20356:16;;;;;;;;;;;;;;;;;;;;;20340:32;;20408:1;20391:19;;:5;:19;;;;20383:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20474:5;20467:12;;;20248:239;;;:::o;19193:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19978:208::-;20050:7;20095:1;20078:19;;:5;:19;;;;20070:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;20162:9;:16;20172:5;20162:16;;;;;;;;;;;;;;;;20155:23;;19978:208;;;:::o;15502:94::-;15082:12;:10;:12::i;:::-;15071:23;;:7;:5;:7::i;:::-;:23;;;15063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15567:21:::1;15585:1;15567:9;:21::i;:::-;15502:94::o:0;14851:87::-;14897:7;14924:6;;;;;;;;;;;14917:13;;14851:87;:::o;20723:104::-;20779:13;20812:7;20805:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20723:104;:::o;22430:295::-;22545:12;:10;:12::i;:::-;22533:24;;:8;:24;;;;22525:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;22645:8;22600:18;:32;22619:12;:10;:12::i;:::-;22600:32;;;;;;;;;;;;;;;:42;22633:8;22600:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;22698:8;22669:48;;22684:12;:10;:12::i;:::-;22669:48;;;22708:8;22669:48;;;;;;:::i;:::-;;;;;;;;22430:295;;:::o;23693:328::-;23868:41;23887:12;:10;:12::i;:::-;23901:7;23868:18;:41::i;:::-;23860:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;23974:39;23988:4;23994:2;23998:7;24007:5;23974:13;:39::i;:::-;23693:328;;;;:::o;21381:217::-;21454:13;21488:16;21496:7;21488;:16::i;:::-;21480:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;21576:14;21569:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21381:217;;;:::o;19444:105::-;19507:7;19534;:5;:7::i;:::-;19527:14;;19444:105;:::o;22796:164::-;22893:4;22917:18;:25;22936:5;22917:25;;;;;;;;;;;;;;;:35;22943:8;22917:35;;;;;;;;;;;;;;;;;;;;;;;;;22910:42;;22796:164;;;;:::o;15751:192::-;15082:12;:10;:12::i;:::-;15071:23;;:7;:5;:7::i;:::-;:23;;;15063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15860:1:::1;15840:22;;:8;:22;;;;15832:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15916:19;15926:8;15916:9;:19::i;:::-;15751:192:::0;:::o;20835:119::-;20903:4;20927:19;;20920:26;;20835:119;:::o;18185:157::-;18270:4;18309:25;18294:40;;;:11;:40;;;;18287:47;;18185:157;;;:::o;25531:127::-;25596:4;25648:1;25620:30;;:7;:16;25628:7;25620:16;;;;;;;;;;;;;;;;;;;;;:30;;;;25613:37;;25531:127;;;:::o;14234:98::-;14287:7;14314:10;14307:17;;14234:98;:::o;27795:174::-;27897:2;27870:15;:24;27886:7;27870:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;27953:7;27949:2;27915:46;;27924:23;27939:7;27924:14;:23::i;:::-;27915:46;;;;;;;;;;;;27795:174;;:::o;25825:348::-;25918:4;25943:16;25951:7;25943;:16::i;:::-;25935:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;26019:13;26035:23;26050:7;26035:14;:23::i;:::-;26019:39;;26088:5;26077:16;;:7;:16;;;:51;;;;26121:7;26097:31;;:20;26109:7;26097:11;:20::i;:::-;:31;;;26077:51;:87;;;;26132:32;26149:5;26156:7;26132:16;:32::i;:::-;26077:87;26069:96;;;25825:348;;;;:::o;27099:578::-;27258:4;27231:31;;:23;27246:7;27231:14;:23::i;:::-;:31;;;27223:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;27341:1;27327:16;;:2;:16;;;;27319:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;27397:39;27418:4;27424:2;27428:7;27397:20;:39::i;:::-;27501:29;27518:1;27522:7;27501:8;:29::i;:::-;27562:1;27543:9;:15;27553:4;27543:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;27591:1;27574:9;:13;27584:2;27574:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;27622:2;27603:7;:16;27611:7;27603:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;27661:7;27657:2;27642:27;;27651:4;27642:27;;;;;;;;;;;;27099:578;;;:::o;30043:377::-;30128:1;30114:16;;:2;:16;;;;30106:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;30191:16;30199:7;30191;:16::i;:::-;30190:17;30182:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;30253:45;30282:1;30286:2;30290:7;30253:20;:45::i;:::-;30328:1;30311:9;:13;30321:2;30311:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;30359:2;30340:7;:16;30348:7;30340:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;30404:7;30400:2;30379:33;;30396:1;30379:33;;;;;;;;;;;;30043:377;;:::o;15951:173::-;16007:16;16026:6;;;;;;;;;;;16007:25;;16052:8;16043:6;;:17;;;;;;;;;;;;;;;;;;16107:8;16076:40;;16097:8;16076:40;;;;;;;;;;;;15996:128;15951:173;:::o;24903:315::-;25060:28;25070:4;25076:2;25080:7;25060:9;:28::i;:::-;25107:48;25130:4;25136:2;25140:7;25149:5;25107:22;:48::i;:::-;25099:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;24903:315;;;;:::o;29909:126::-;;;;:::o;28534:803::-;28689:4;28710:15;:2;:13;;;:15::i;:::-;28706:624;;;28762:2;28746:36;;;28783:12;:10;:12::i;:::-;28797:4;28803:7;28812:5;28746:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;28742:533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29009:1;28992:6;:13;:18;28988:272;;;29035:60;;;;;;;;;;:::i;:::-;;;;;;;;28988:272;29210:6;29204:13;29195:6;29191:2;29187:15;29180:38;28742:533;28879:45;;;28869:55;;;:6;:55;;;;28862:62;;;;;28706:624;29314:4;29307:11;;28534:803;;;;;;;:::o;7087:387::-;7147:4;7355:12;7422:7;7410:20;7402:28;;7465:1;7458:4;:8;7451:15;;;7087:387;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:139::-;469:5;507:6;494:20;485:29;;523:33;550:5;523:33;:::i;:::-;423:139;;;;:::o;568:133::-;611:5;649:6;636:20;627:29;;665:30;689:5;665:30;:::i;:::-;568:133;;;;:::o;707:137::-;752:5;790:6;777:20;768:29;;806:32;832:5;806:32;:::i;:::-;707:137;;;;:::o;850:141::-;906:5;937:6;931:13;922:22;;953:32;979:5;953:32;:::i;:::-;850:141;;;;:::o;1010:338::-;1065:5;1114:3;1107:4;1099:6;1095:17;1091:27;1081:122;;1122:79;;:::i;:::-;1081:122;1239:6;1226:20;1264:78;1338:3;1330:6;1323:4;1315:6;1311:17;1264:78;:::i;:::-;1255:87;;1071:277;1010:338;;;;:::o;1354:139::-;1400:5;1438:6;1425:20;1416:29;;1454:33;1481:5;1454:33;:::i;:::-;1354:139;;;;:::o;1499:329::-;1558:6;1607:2;1595:9;1586:7;1582:23;1578:32;1575:119;;;1613:79;;:::i;:::-;1575:119;1733:1;1758:53;1803:7;1794:6;1783:9;1779:22;1758:53;:::i;:::-;1748:63;;1704:117;1499:329;;;;:::o;1834:474::-;1902:6;1910;1959:2;1947:9;1938:7;1934:23;1930:32;1927:119;;;1965:79;;:::i;:::-;1927:119;2085:1;2110:53;2155:7;2146:6;2135:9;2131:22;2110:53;:::i;:::-;2100:63;;2056:117;2212:2;2238:53;2283:7;2274:6;2263:9;2259:22;2238:53;:::i;:::-;2228:63;;2183:118;1834:474;;;;;:::o;2314:619::-;2391:6;2399;2407;2456:2;2444:9;2435:7;2431:23;2427:32;2424:119;;;2462:79;;:::i;:::-;2424:119;2582:1;2607:53;2652:7;2643:6;2632:9;2628:22;2607:53;:::i;:::-;2597:63;;2553:117;2709:2;2735:53;2780:7;2771:6;2760:9;2756:22;2735:53;:::i;:::-;2725:63;;2680:118;2837:2;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2808:118;2314:619;;;;;:::o;2939:943::-;3034:6;3042;3050;3058;3107:3;3095:9;3086:7;3082:23;3078:33;3075:120;;;3114:79;;:::i;:::-;3075:120;3234:1;3259:53;3304:7;3295:6;3284:9;3280:22;3259:53;:::i;:::-;3249:63;;3205:117;3361:2;3387:53;3432:7;3423:6;3412:9;3408:22;3387:53;:::i;:::-;3377:63;;3332:118;3489:2;3515:53;3560:7;3551:6;3540:9;3536:22;3515:53;:::i;:::-;3505:63;;3460:118;3645:2;3634:9;3630:18;3617:32;3676:18;3668:6;3665:30;3662:117;;;3698:79;;:::i;:::-;3662:117;3803:62;3857:7;3848:6;3837:9;3833:22;3803:62;:::i;:::-;3793:72;;3588:287;2939:943;;;;;;;:::o;3888:468::-;3953:6;3961;4010:2;3998:9;3989:7;3985:23;3981:32;3978:119;;;4016:79;;:::i;:::-;3978:119;4136:1;4161:53;4206:7;4197:6;4186:9;4182:22;4161:53;:::i;:::-;4151:63;;4107:117;4263:2;4289:50;4331:7;4322:6;4311:9;4307:22;4289:50;:::i;:::-;4279:60;;4234:115;3888:468;;;;;:::o;4362:474::-;4430:6;4438;4487:2;4475:9;4466:7;4462:23;4458:32;4455:119;;;4493:79;;:::i;:::-;4455:119;4613:1;4638:53;4683:7;4674:6;4663:9;4659:22;4638:53;:::i;:::-;4628:63;;4584:117;4740:2;4766:53;4811:7;4802:6;4791:9;4787:22;4766:53;:::i;:::-;4756:63;;4711:118;4362:474;;;;;:::o;4842:327::-;4900:6;4949:2;4937:9;4928:7;4924:23;4920:32;4917:119;;;4955:79;;:::i;:::-;4917:119;5075:1;5100:52;5144:7;5135:6;5124:9;5120:22;5100:52;:::i;:::-;5090:62;;5046:116;4842:327;;;;:::o;5175:349::-;5244:6;5293:2;5281:9;5272:7;5268:23;5264:32;5261:119;;;5299:79;;:::i;:::-;5261:119;5419:1;5444:63;5499:7;5490:6;5479:9;5475:22;5444:63;:::i;:::-;5434:73;;5390:127;5175:349;;;;:::o;5530:329::-;5589:6;5638:2;5626:9;5617:7;5613:23;5609:32;5606:119;;;5644:79;;:::i;:::-;5606:119;5764:1;5789:53;5834:7;5825:6;5814:9;5810:22;5789:53;:::i;:::-;5779:63;;5735:117;5530:329;;;;:::o;5865:118::-;5952:24;5970:5;5952:24;:::i;:::-;5947:3;5940:37;5865:118;;:::o;5989:109::-;6070:21;6085:5;6070:21;:::i;:::-;6065:3;6058:34;5989:109;;:::o;6104:360::-;6190:3;6218:38;6250:5;6218:38;:::i;:::-;6272:70;6335:6;6330:3;6272:70;:::i;:::-;6265:77;;6351:52;6396:6;6391:3;6384:4;6377:5;6373:16;6351:52;:::i;:::-;6428:29;6450:6;6428:29;:::i;:::-;6423:3;6419:39;6412:46;;6194:270;6104:360;;;;:::o;6470:364::-;6558:3;6586:39;6619:5;6586:39;:::i;:::-;6641:71;6705:6;6700:3;6641:71;:::i;:::-;6634:78;;6721:52;6766:6;6761:3;6754:4;6747:5;6743:16;6721:52;:::i;:::-;6798:29;6820:6;6798:29;:::i;:::-;6793:3;6789:39;6782:46;;6562:272;6470:364;;;;:::o;6840:366::-;6982:3;7003:67;7067:2;7062:3;7003:67;:::i;:::-;6996:74;;7079:93;7168:3;7079:93;:::i;:::-;7197:2;7192:3;7188:12;7181:19;;6840:366;;;:::o;7212:::-;7354:3;7375:67;7439:2;7434:3;7375:67;:::i;:::-;7368:74;;7451:93;7540:3;7451:93;:::i;:::-;7569:2;7564:3;7560:12;7553:19;;7212:366;;;:::o;7584:::-;7726:3;7747:67;7811:2;7806:3;7747:67;:::i;:::-;7740:74;;7823:93;7912:3;7823:93;:::i;:::-;7941:2;7936:3;7932:12;7925:19;;7584:366;;;:::o;7956:::-;8098:3;8119:67;8183:2;8178:3;8119:67;:::i;:::-;8112:74;;8195:93;8284:3;8195:93;:::i;:::-;8313:2;8308:3;8304:12;8297:19;;7956:366;;;:::o;8328:::-;8470:3;8491:67;8555:2;8550:3;8491:67;:::i;:::-;8484:74;;8567:93;8656:3;8567:93;:::i;:::-;8685:2;8680:3;8676:12;8669:19;;8328:366;;;:::o;8700:::-;8842:3;8863:67;8927:2;8922:3;8863:67;:::i;:::-;8856:74;;8939:93;9028:3;8939:93;:::i;:::-;9057:2;9052:3;9048:12;9041:19;;8700:366;;;:::o;9072:::-;9214:3;9235:67;9299:2;9294:3;9235:67;:::i;:::-;9228:74;;9311:93;9400:3;9311:93;:::i;:::-;9429:2;9424:3;9420:12;9413:19;;9072:366;;;:::o;9444:::-;9586:3;9607:67;9671:2;9666:3;9607:67;:::i;:::-;9600:74;;9683:93;9772:3;9683:93;:::i;:::-;9801:2;9796:3;9792:12;9785:19;;9444:366;;;:::o;9816:::-;9958:3;9979:67;10043:2;10038:3;9979:67;:::i;:::-;9972:74;;10055:93;10144:3;10055:93;:::i;:::-;10173:2;10168:3;10164:12;10157:19;;9816:366;;;:::o;10188:::-;10330:3;10351:67;10415:2;10410:3;10351:67;:::i;:::-;10344:74;;10427:93;10516:3;10427:93;:::i;:::-;10545:2;10540:3;10536:12;10529:19;;10188:366;;;:::o;10560:::-;10702:3;10723:67;10787:2;10782:3;10723:67;:::i;:::-;10716:74;;10799:93;10888:3;10799:93;:::i;:::-;10917:2;10912:3;10908:12;10901:19;;10560:366;;;:::o;10932:::-;11074:3;11095:67;11159:2;11154:3;11095:67;:::i;:::-;11088:74;;11171:93;11260:3;11171:93;:::i;:::-;11289:2;11284:3;11280:12;11273:19;;10932:366;;;:::o;11304:::-;11446:3;11467:67;11531:2;11526:3;11467:67;:::i;:::-;11460:74;;11543:93;11632:3;11543:93;:::i;:::-;11661:2;11656:3;11652:12;11645:19;;11304:366;;;:::o;11676:::-;11818:3;11839:67;11903:2;11898:3;11839:67;:::i;:::-;11832:74;;11915:93;12004:3;11915:93;:::i;:::-;12033:2;12028:3;12024:12;12017:19;;11676:366;;;:::o;12048:::-;12190:3;12211:67;12275:2;12270:3;12211:67;:::i;:::-;12204:74;;12287:93;12376:3;12287:93;:::i;:::-;12405:2;12400:3;12396:12;12389:19;;12048:366;;;:::o;12420:::-;12562:3;12583:67;12647:2;12642:3;12583:67;:::i;:::-;12576:74;;12659:93;12748:3;12659:93;:::i;:::-;12777:2;12772:3;12768:12;12761:19;;12420:366;;;:::o;12792:118::-;12879:24;12897:5;12879:24;:::i;:::-;12874:3;12867:37;12792:118;;:::o;12916:222::-;13009:4;13047:2;13036:9;13032:18;13024:26;;13060:71;13128:1;13117:9;13113:17;13104:6;13060:71;:::i;:::-;12916:222;;;;:::o;13144:640::-;13339:4;13377:3;13366:9;13362:19;13354:27;;13391:71;13459:1;13448:9;13444:17;13435:6;13391:71;:::i;:::-;13472:72;13540:2;13529:9;13525:18;13516:6;13472:72;:::i;:::-;13554;13622:2;13611:9;13607:18;13598:6;13554:72;:::i;:::-;13673:9;13667:4;13663:20;13658:2;13647:9;13643:18;13636:48;13701:76;13772:4;13763:6;13701:76;:::i;:::-;13693:84;;13144:640;;;;;;;:::o;13790:210::-;13877:4;13915:2;13904:9;13900:18;13892:26;;13928:65;13990:1;13979:9;13975:17;13966:6;13928:65;:::i;:::-;13790:210;;;;:::o;14006:313::-;14119:4;14157:2;14146:9;14142:18;14134:26;;14206:9;14200:4;14196:20;14192:1;14181:9;14177:17;14170:47;14234:78;14307:4;14298:6;14234:78;:::i;:::-;14226:86;;14006:313;;;;:::o;14325:419::-;14491:4;14529:2;14518:9;14514:18;14506:26;;14578:9;14572:4;14568:20;14564:1;14553:9;14549:17;14542:47;14606:131;14732:4;14606:131;:::i;:::-;14598:139;;14325:419;;;:::o;14750:::-;14916:4;14954:2;14943:9;14939:18;14931:26;;15003:9;14997:4;14993:20;14989:1;14978:9;14974:17;14967:47;15031:131;15157:4;15031:131;:::i;:::-;15023:139;;14750:419;;;:::o;15175:::-;15341:4;15379:2;15368:9;15364:18;15356:26;;15428:9;15422:4;15418:20;15414:1;15403:9;15399:17;15392:47;15456:131;15582:4;15456:131;:::i;:::-;15448:139;;15175:419;;;:::o;15600:::-;15766:4;15804:2;15793:9;15789:18;15781:26;;15853:9;15847:4;15843:20;15839:1;15828:9;15824:17;15817:47;15881:131;16007:4;15881:131;:::i;:::-;15873:139;;15600:419;;;:::o;16025:::-;16191:4;16229:2;16218:9;16214:18;16206:26;;16278:9;16272:4;16268:20;16264:1;16253:9;16249:17;16242:47;16306:131;16432:4;16306:131;:::i;:::-;16298:139;;16025:419;;;:::o;16450:::-;16616:4;16654:2;16643:9;16639:18;16631:26;;16703:9;16697:4;16693:20;16689:1;16678:9;16674:17;16667:47;16731:131;16857:4;16731:131;:::i;:::-;16723:139;;16450:419;;;:::o;16875:::-;17041:4;17079:2;17068:9;17064:18;17056:26;;17128:9;17122:4;17118:20;17114:1;17103:9;17099:17;17092:47;17156:131;17282:4;17156:131;:::i;:::-;17148:139;;16875:419;;;:::o;17300:::-;17466:4;17504:2;17493:9;17489:18;17481:26;;17553:9;17547:4;17543:20;17539:1;17528:9;17524:17;17517:47;17581:131;17707:4;17581:131;:::i;:::-;17573:139;;17300:419;;;:::o;17725:::-;17891:4;17929:2;17918:9;17914:18;17906:26;;17978:9;17972:4;17968:20;17964:1;17953:9;17949:17;17942:47;18006:131;18132:4;18006:131;:::i;:::-;17998:139;;17725:419;;;:::o;18150:::-;18316:4;18354:2;18343:9;18339:18;18331:26;;18403:9;18397:4;18393:20;18389:1;18378:9;18374:17;18367:47;18431:131;18557:4;18431:131;:::i;:::-;18423:139;;18150:419;;;:::o;18575:::-;18741:4;18779:2;18768:9;18764:18;18756:26;;18828:9;18822:4;18818:20;18814:1;18803:9;18799:17;18792:47;18856:131;18982:4;18856:131;:::i;:::-;18848:139;;18575:419;;;:::o;19000:::-;19166:4;19204:2;19193:9;19189:18;19181:26;;19253:9;19247:4;19243:20;19239:1;19228:9;19224:17;19217:47;19281:131;19407:4;19281:131;:::i;:::-;19273:139;;19000:419;;;:::o;19425:::-;19591:4;19629:2;19618:9;19614:18;19606:26;;19678:9;19672:4;19668:20;19664:1;19653:9;19649:17;19642:47;19706:131;19832:4;19706:131;:::i;:::-;19698:139;;19425:419;;;:::o;19850:::-;20016:4;20054:2;20043:9;20039:18;20031:26;;20103:9;20097:4;20093:20;20089:1;20078:9;20074:17;20067:47;20131:131;20257:4;20131:131;:::i;:::-;20123:139;;19850:419;;;:::o;20275:::-;20441:4;20479:2;20468:9;20464:18;20456:26;;20528:9;20522:4;20518:20;20514:1;20503:9;20499:17;20492:47;20556:131;20682:4;20556:131;:::i;:::-;20548:139;;20275:419;;;:::o;20700:::-;20866:4;20904:2;20893:9;20889:18;20881:26;;20953:9;20947:4;20943:20;20939:1;20928:9;20924:17;20917:47;20981:131;21107:4;20981:131;:::i;:::-;20973:139;;20700:419;;;:::o;21125:222::-;21218:4;21256:2;21245:9;21241:18;21233:26;;21269:71;21337:1;21326:9;21322:17;21313:6;21269:71;:::i;:::-;21125:222;;;;:::o;21353:129::-;21387:6;21414:20;;:::i;:::-;21404:30;;21443:33;21471:4;21463:6;21443:33;:::i;:::-;21353:129;;;:::o;21488:75::-;21521:6;21554:2;21548:9;21538:19;;21488:75;:::o;21569:307::-;21630:4;21720:18;21712:6;21709:30;21706:56;;;21742:18;;:::i;:::-;21706:56;21780:29;21802:6;21780:29;:::i;:::-;21772:37;;21864:4;21858;21854:15;21846:23;;21569:307;;;:::o;21882:98::-;21933:6;21967:5;21961:12;21951:22;;21882:98;;;:::o;21986:99::-;22038:6;22072:5;22066:12;22056:22;;21986:99;;;:::o;22091:168::-;22174:11;22208:6;22203:3;22196:19;22248:4;22243:3;22239:14;22224:29;;22091:168;;;;:::o;22265:169::-;22349:11;22383:6;22378:3;22371:19;22423:4;22418:3;22414:14;22399:29;;22265:169;;;;:::o;22440:305::-;22480:3;22499:20;22517:1;22499:20;:::i;:::-;22494:25;;22533:20;22551:1;22533:20;:::i;:::-;22528:25;;22687:1;22619:66;22615:74;22612:1;22609:81;22606:107;;;22693:18;;:::i;:::-;22606:107;22737:1;22734;22730:9;22723:16;;22440:305;;;;:::o;22751:191::-;22791:4;22811:20;22829:1;22811:20;:::i;:::-;22806:25;;22845:20;22863:1;22845:20;:::i;:::-;22840:25;;22884:1;22881;22878:8;22875:34;;;22889:18;;:::i;:::-;22875:34;22934:1;22931;22927:9;22919:17;;22751:191;;;;:::o;22948:96::-;22985:7;23014:24;23032:5;23014:24;:::i;:::-;23003:35;;22948:96;;;:::o;23050:90::-;23084:7;23127:5;23120:13;23113:21;23102:32;;23050:90;;;:::o;23146:149::-;23182:7;23222:66;23215:5;23211:78;23200:89;;23146:149;;;:::o;23301:126::-;23338:7;23378:42;23371:5;23367:54;23356:65;;23301:126;;;:::o;23433:77::-;23470:7;23499:5;23488:16;;23433:77;;;:::o;23516:154::-;23600:6;23595:3;23590;23577:30;23662:1;23653:6;23648:3;23644:16;23637:27;23516:154;;;:::o;23676:307::-;23744:1;23754:113;23768:6;23765:1;23762:13;23754:113;;;23853:1;23848:3;23844:11;23838:18;23834:1;23829:3;23825:11;23818:39;23790:2;23787:1;23783:10;23778:15;;23754:113;;;23885:6;23882:1;23879:13;23876:101;;;23965:1;23956:6;23951:3;23947:16;23940:27;23876:101;23725:258;23676:307;;;:::o;23989:320::-;24033:6;24070:1;24064:4;24060:12;24050:22;;24117:1;24111:4;24107:12;24138:18;24128:81;;24194:4;24186:6;24182:17;24172:27;;24128:81;24256:2;24248:6;24245:14;24225:18;24222:38;24219:84;;;24275:18;;:::i;:::-;24219:84;24040:269;23989:320;;;:::o;24315:281::-;24398:27;24420:4;24398:27;:::i;:::-;24390:6;24386:40;24528:6;24516:10;24513:22;24492:18;24480:10;24477:34;24474:62;24471:88;;;24539:18;;:::i;:::-;24471:88;24579:10;24575:2;24568:22;24358:238;24315:281;;:::o;24602:180::-;24650:77;24647:1;24640:88;24747:4;24744:1;24737:15;24771:4;24768:1;24761:15;24788:180;24836:77;24833:1;24826:88;24933:4;24930:1;24923:15;24957:4;24954:1;24947:15;24974:180;25022:77;25019:1;25012:88;25119:4;25116:1;25109:15;25143:4;25140:1;25133:15;25160:117;25269:1;25266;25259:12;25283:117;25392:1;25389;25382:12;25406:117;25515:1;25512;25505:12;25529:117;25638:1;25635;25628:12;25652:102;25693:6;25744:2;25740:7;25735:2;25728:5;25724:14;25720:28;25710:38;;25652:102;;;:::o;25760:237::-;25900:34;25896:1;25888:6;25884:14;25877:58;25969:20;25964:2;25956:6;25952:15;25945:45;25760:237;:::o;26003:225::-;26143:34;26139:1;26131:6;26127:14;26120:58;26212:8;26207:2;26199:6;26195:15;26188:33;26003:225;:::o;26234:178::-;26374:30;26370:1;26362:6;26358:14;26351:54;26234:178;:::o;26418:223::-;26558:34;26554:1;26546:6;26542:14;26535:58;26627:6;26622:2;26614:6;26610:15;26603:31;26418:223;:::o;26647:175::-;26787:27;26783:1;26775:6;26771:14;26764:51;26647:175;:::o;26828:231::-;26968:34;26964:1;26956:6;26952:14;26945:58;27037:14;27032:2;27024:6;27020:15;27013:39;26828:231;:::o;27065:243::-;27205:34;27201:1;27193:6;27189:14;27182:58;27274:26;27269:2;27261:6;27257:15;27250:51;27065:243;:::o;27314:229::-;27454:34;27450:1;27442:6;27438:14;27431:58;27523:12;27518:2;27510:6;27506:15;27499:37;27314:229;:::o;27549:228::-;27689:34;27685:1;27677:6;27673:14;27666:58;27758:11;27753:2;27745:6;27741:15;27734:36;27549:228;:::o;27783:182::-;27923:34;27919:1;27911:6;27907:14;27900:58;27783:182;:::o;27971:231::-;28111:34;28107:1;28099:6;28095:14;28088:58;28180:14;28175:2;28167:6;28163:15;28156:39;27971:231;:::o;28208:182::-;28348:34;28344:1;28336:6;28332:14;28325:58;28208:182;:::o;28396:228::-;28536:34;28532:1;28524:6;28520:14;28513:58;28605:11;28600:2;28592:6;28588:15;28581:36;28396:228;:::o;28630:234::-;28770:34;28766:1;28758:6;28754:14;28747:58;28839:17;28834:2;28826:6;28822:15;28815:42;28630:234;:::o;28870:220::-;29010:34;29006:1;28998:6;28994:14;28987:58;29079:3;29074:2;29066:6;29062:15;29055:28;28870:220;:::o;29096:236::-;29236:34;29232:1;29224:6;29220:14;29213:58;29305:19;29300:2;29292:6;29288:15;29281:44;29096:236;:::o;29338:122::-;29411:24;29429:5;29411:24;:::i;:::-;29404:5;29401:35;29391:63;;29450:1;29447;29440:12;29391:63;29338:122;:::o;29466:116::-;29536:21;29551:5;29536:21;:::i;:::-;29529:5;29526:32;29516:60;;29572:1;29569;29562:12;29516:60;29466:116;:::o;29588:120::-;29660:23;29677:5;29660:23;:::i;:::-;29653:5;29650:34;29640:62;;29698:1;29695;29688:12;29640:62;29588:120;:::o;29714:122::-;29787:24;29805:5;29787:24;:::i;:::-;29780:5;29777:35;29767:63;;29826:1;29823;29816:12;29767:63;29714:122;:::o
Swarm Source
ipfs://344631075d92a6abf1a46512134977e82754e311aed99e821caf444a3e6ef43b
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.