Overview
APE Balance
APE Value
$0.25 (@ $0.50/APE)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 332 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Funds | 11538611 | 2 hrs ago | IN | 0 APE | 0.00083524 | ||||
Draw Card | 11536023 | 3 hrs ago | IN | 1 APE | 0.08918449 | ||||
Draw Card | 11533645 | 4 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11533633 | 4 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11533617 | 4 hrs ago | IN | 1 APE | 0.0887498 | ||||
Withdraw Funds | 11531417 | 4 hrs ago | IN | 0 APE | 0.00083555 | ||||
Draw Card | 11530691 | 4 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530671 | 4 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530667 | 4 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530656 | 4 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530639 | 4 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530621 | 4 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530608 | 5 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530601 | 5 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530544 | 5 hrs ago | IN | 1 APE | 0.09303736 | ||||
Draw Card | 11530524 | 5 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530512 | 5 hrs ago | IN | 1 APE | 0.08918449 | ||||
Draw Card | 11530494 | 5 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530481 | 5 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530466 | 5 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11530459 | 5 hrs ago | IN | 1 APE | 0.0887498 | ||||
Draw Card | 11523460 | 7 hrs ago | IN | 1 APE | 0.08874978 | ||||
Draw Card | 11523428 | 7 hrs ago | IN | 1 APE | 0.08918447 | ||||
Draw Card | 11523396 | 7 hrs ago | IN | 1 APE | 0.08874978 | ||||
Draw Card | 11520566 | 8 hrs ago | IN | 1 APE | 0.0887498 |
Latest 20 internal transactions
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
11538611 | 2 hrs ago | 5 APE | ||||
11531417 | 4 hrs ago | 25 APE | ||||
11509558 | 11 hrs ago | 2 APE | ||||
11508671 | 11 hrs ago | 5 APE | ||||
11507224 | 11 hrs ago | 12 APE | ||||
11506480 | 11 hrs ago | 6 APE | ||||
11502427 | 12 hrs ago | 7 APE | ||||
11488142 | 15 hrs ago | 30 APE | ||||
11479054 | 18 hrs ago | 100 APE | ||||
11451516 | 25 hrs ago | 52 APE | ||||
11449737 | 26 hrs ago | 4 APE | ||||
11443723 | 28 hrs ago | 1 APE | ||||
11439827 | 29 hrs ago | 0.5 APE | ||||
11439775 | 29 hrs ago | 0.00005 APE | ||||
11439750 | 29 hrs ago | 0.00000005 APE | ||||
11439712 | 29 hrs ago | 50 wei | ||||
11439566 | 29 hrs ago | 0 APE | ||||
11439510 | 29 hrs ago | 0 APE | ||||
11439333 | 29 hrs ago | 1 wei | ||||
11439318 | 29 hrs ago | 1 wei |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MonkeyArcanaSimple
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at apescan.io on 2025-03-12 */ // File: @openzeppelin/contracts/utils/introspection/IERC165.sol // OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[ERC]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC 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); } // File: @openzeppelin/contracts/utils/introspection/ERC165.sol // OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/ERC165.sol) pragma solidity ^0.8.20; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) { return interfaceId == type(IERC165).interfaceId; } } // File: @openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC1155/IERC1155Receiver.sol) pragma solidity ^0.8.20; /** * @dev Interface that must be implemented by smart contracts in order to receive * ERC-1155 token transfers. */ interface IERC1155Receiver is IERC165 { /** * @dev Handles the receipt of a single ERC-1155 token type. This function is * called at the end of a `safeTransferFrom` after the balance has been updated. * * NOTE: To accept the transfer, this must return * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` * (i.e. 0xf23a6e61, or its own function selector). * * @param operator The address which initiated the transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param id The ID of the token being transferred * @param value The amount of tokens being transferred * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed */ function onERC1155Received( address operator, address from, uint256 id, uint256 value, bytes calldata data ) external returns (bytes4); /** * @dev Handles the receipt of a multiple ERC-1155 token types. This function * is called at the end of a `safeBatchTransferFrom` after the balances have * been updated. * * NOTE: To accept the transfer(s), this must return * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` * (i.e. 0xbc197c81, or its own function selector). * * @param operator The address which initiated the batch transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param ids An array containing ids of each token being transferred (order and length must match values array) * @param values An array containing amounts of each token being transferred (order and length must match ids array) * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed */ function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external returns (bytes4); } // File: @openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC1155/utils/ERC1155Holder.sol) pragma solidity ^0.8.20; /** * @dev Simple implementation of `IERC1155Receiver` that will allow a contract to hold ERC-1155 tokens. * * IMPORTANT: When inheriting this contract, you must include a way to use the received tokens, otherwise they will be * stuck. */ abstract contract ERC1155Holder is ERC165, IERC1155Receiver { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId); } function onERC1155Received( address, address, uint256, uint256, bytes memory ) public virtual override returns (bytes4) { return this.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] memory, uint256[] memory, bytes memory ) public virtual override returns (bytes4) { return this.onERC1155BatchReceived.selector; } } // File: @openzeppelin/contracts/token/ERC1155/IERC1155.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC1155/IERC1155.sol) pragma solidity ^0.8.20; /** * @dev Required interface of an ERC-1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[ERC]. */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values ); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the value of tokens of token type `id` owned by `account`. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch( address[] calldata accounts, uint256[] calldata ids ) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the zero address. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. * * WARNING: This function can potentially allow a reentrancy attack when transferring tokens * to an untrusted contract, when invoking {onERC1155Received} on the receiver. * Ensure to follow the checks-effects-interactions pattern and consider employing * reentrancy guards when interacting with untrusted contracts. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `value` amount. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes calldata data) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * WARNING: This function can potentially allow a reentrancy attack when transferring tokens * to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. * Ensure to follow the checks-effects-interactions pattern and consider employing * reentrancy guards when interacting with untrusted contracts. * * Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. * * Requirements: * * - `ids` and `values` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external; } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: mysterymachine.sol pragma solidity ^0.8.28; /** * @title MonkeyArcanaSimple * @dev Contract for distributing Monkey Arcana ERC-1155 tokens that were sent to it */ contract MonkeyArcanaSimple is ERC1155Holder, Ownable { // The ERC-1155 contract address that contains the tokens address public nftContract; // Array to keep track of all available token IDs uint256[] private _availableTokenIds; // Set of valid token IDs that can be used mapping(uint256 => bool) public validTokenIds; // Flag to restrict token transfers to owner only bool public ownerOnlyTransfers = true; // Event emitted when a card is drawn event CardDrawn(address indexed user, uint256 indexed tokenId, uint256 timestamp); // Event emitted when funds are withdrawn event FundsWithdrawn(address indexed owner, uint256 amount); // Event emitted when a token ID is added or removed event TokenIdStatusChanged(uint256 indexed tokenId, bool isValid); // Event emitted when transfer restriction is changed event TransferRestrictionChanged(bool ownerOnly); /** * @dev Constructor sets the NFT contract address and initial owner * @param _nftContract The address of the ERC-1155 contract containing the tokens * @param initialOwner The address of the initial owner */ constructor(address _nftContract, address initialOwner) Ownable(initialOwner) { require(_nftContract != address(0), "MonkeyArcanaSimple: NFT contract cannot be zero address"); nftContract = _nftContract; // Initialize with token IDs 0-29 as valid for (uint256 i = 0; i <= 29; i++) { validTokenIds[i] = true; } } /** * @dev Override onERC1155Received to restrict who can send tokens */ function onERC1155Received( address, address from, uint256 id, uint256, bytes memory ) public virtual override returns (bytes4) { // If owner-only transfers are enabled, only the owner can send tokens if (ownerOnlyTransfers) { require(from == owner(), "MonkeyArcanaSimple: Only owner can send tokens"); } // Only accept valid token IDs require(validTokenIds[id], "MonkeyArcanaSimple: Token ID is not valid"); // Return the function selector return this.onERC1155Received.selector; } /** * @dev Override onERC1155BatchReceived to restrict who can send tokens */ function onERC1155BatchReceived( address, address from, uint256[] memory ids, uint256[] memory, bytes memory ) public virtual override returns (bytes4) { // If owner-only transfers are enabled, only the owner can send tokens if (ownerOnlyTransfers) { require(from == owner(), "MonkeyArcanaSimple: Only owner can send tokens"); } // Only accept valid token IDs for (uint256 i = 0; i < ids.length; i++) { require(validTokenIds[ids[i]], "MonkeyArcanaSimple: Token ID is not valid"); } // Return the function selector return this.onERC1155BatchReceived.selector; } /** * @dev Draw a card by paying 1 $APE * @return tokenId The ID of the drawn card */ function drawCard() external payable returns (uint256) { require(msg.value >= 1 ether, "MonkeyArcanaSimple: Must pay 1 $APE to draw a card"); // Update available tokens before drawing updateAvailableTokens(); require(_availableTokenIds.length > 0, "MonkeyArcanaSimple: No cards available"); // Get a random token ID from available tokens uint256 randomIndex = _getRandomNumber() % _availableTokenIds.length; uint256 tokenId = _availableTokenIds[randomIndex]; // Transfer the token to the user IERC1155(nftContract).safeTransferFrom( address(this), msg.sender, tokenId, 1, "" ); // Update available tokens after drawing updateAvailableTokens(); // Emit event emit CardDrawn(msg.sender, tokenId, block.timestamp); return tokenId; } /** * @dev Update the list of available token IDs based on actual balances */ function updateAvailableTokens() public { // Clear the current list delete _availableTokenIds; // Check all valid token IDs uint256[] memory tokenIdsToCheck = getValidTokenIds(); for (uint256 i = 0; i < tokenIdsToCheck.length; i++) { uint256 tokenId = tokenIdsToCheck[i]; uint256 balance = IERC1155(nftContract).balanceOf(address(this), tokenId); if (balance > 0) { _availableTokenIds.push(tokenId); } } } /** * @dev Get all valid token IDs * @return Array of valid token IDs */ function getValidTokenIds() public view returns (uint256[] memory) { // Count valid token IDs uint256 count = 0; for (uint256 i = 0; i < 1000; i++) { // Arbitrary upper limit if (validTokenIds[i]) { count++; } } // Create array of valid token IDs uint256[] memory result = new uint256[](count); uint256 index = 0; for (uint256 i = 0; i < 1000; i++) { if (validTokenIds[i]) { result[index] = i; index++; } } return result; } /** * @dev Add a valid token ID (only owner) * @param tokenId The token ID to add */ function addValidTokenId(uint256 tokenId) external onlyOwner { validTokenIds[tokenId] = true; emit TokenIdStatusChanged(tokenId, true); } /** * @dev Remove a valid token ID (only owner) * @param tokenId The token ID to remove */ function removeValidTokenId(uint256 tokenId) external onlyOwner { validTokenIds[tokenId] = false; emit TokenIdStatusChanged(tokenId, false); } /** * @dev Set whether only the owner can send tokens to this contract * @param ownerOnly True if only the owner can send tokens */ function setOwnerOnlyTransfers(bool ownerOnly) external onlyOwner { ownerOnlyTransfers = ownerOnly; emit TransferRestrictionChanged(ownerOnly); } /** * @dev Withdraw funds from the contract (only owner) * @param amount The amount of $APE to withdraw */ function withdrawFunds(uint256 amount) external onlyOwner { require(amount > 0, "MonkeyArcanaSimple: Amount must be greater than 0"); require(address(this).balance >= amount, "MonkeyArcanaSimple: Not enough funds available"); // Transfer funds to owner (bool success, ) = payable(owner()).call{value: amount}(""); require(success, "MonkeyArcanaSimple: Transfer failed"); // Emit event emit FundsWithdrawn(msg.sender, amount); } /** * @dev Get available cards * @return Array of available token IDs */ function getAvailableCards() external view returns (uint256[] memory) { return _availableTokenIds; } /** * @dev Update the NFT contract address (only owner) * @param _nftContract The new NFT contract address */ function updateNFTContract(address _nftContract) external onlyOwner { require(_nftContract != address(0), "MonkeyArcanaSimple: NFT contract cannot be zero address"); nftContract = _nftContract; } /** * @dev Get a random number using multiple block attributes * @return A pseudo-random number */ function _getRandomNumber() private view returns (uint256) { return uint256(keccak256(abi.encodePacked( block.timestamp, block.number, block.coinbase, msg.sender ))); } /** * @dev Withdraw any NFT from the contract (only owner) * @param tokenId The ID of the token to withdraw * @param amount The amount to withdraw */ function withdrawNFT(uint256 tokenId, uint256 amount) external onlyOwner { uint256 balance = IERC1155(nftContract).balanceOf(address(this), tokenId); require(balance >= amount, "MonkeyArcanaSimple: Not enough tokens"); IERC1155(nftContract).safeTransferFrom( address(this), msg.sender, tokenId, amount, "" ); // Update available tokens updateAvailableTokens(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_nftContract","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"CardDrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FundsWithdrawn","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":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isValid","type":"bool"}],"name":"TokenIdStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"ownerOnly","type":"bool"}],"name":"TransferRestrictionChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"addValidTokenId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"drawCard","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getAvailableCards","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getValidTokenIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerOnlyTransfers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"removeValidTokenId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"ownerOnly","type":"bool"}],"name":"setOwnerOnlyTransfers","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateAvailableTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nftContract","type":"address"}],"name":"updateNFTContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"validTokenIds","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawNFT","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600160045f6101000a81548160ff021916908315150217905550348015610029575f5ffd5b506040516127bd3803806127bd833981810160405281019061004b91906102ea565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100bc575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100b39190610337565b60405180910390fd5b6100cb816101cb60201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361013a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610131906103d0565b60405180910390fd5b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5f90505b601d81116101c357600160035f8381526020019081526020015f205f6101000a81548160ff02191690831515021790555080806101bb90610424565b91505061017f565b50505061046b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102b982610290565b9050919050565b6102c9816102af565b81146102d3575f5ffd5b50565b5f815190506102e4816102c0565b92915050565b5f5f60408385031215610300576102ff61028c565b5b5f61030d858286016102d6565b925050602061031e858286016102d6565b9150509250929050565b610331816102af565b82525050565b5f60208201905061034a5f830184610328565b92915050565b5f82825260208201905092915050565b7f4d6f6e6b6579417263616e6153696d706c653a204e465420636f6e74726163745f8201527f2063616e6e6f74206265207a65726f2061646472657373000000000000000000602082015250565b5f6103ba603783610350565b91506103c582610360565b604082019050919050565b5f6020820190508181035f8301526103e7816103ae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f819050919050565b5f61042e8261041b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036104605761045f6103ee565b5b600182019050919050565b612345806104785f395ff3fe608060405260043610610112575f3560e01c806378627f2b1161009f578063c3b014fc11610063578063c3b014fc1461035a578063d56d229d14610384578063f23a6e61146103ae578063f2fde38b146103ea578063ff5bcdd41461041257610112565b806378627f2b1461027a57806379e4a5b7146102a25780638da5cb5b146102cc578063abbeba04146102f6578063bc197c811461031e57610112565b8063155dd5ee116100e6578063155dd5ee146101e05780632f5be23e146102085780633a0196af14610226578063608b98cc1461024e578063715018a61461026457610112565b8062749d651461011657806301ffc9a71461014057806307b5f95b1461017c57806314138352146101b8575b5f5ffd5b348015610121575f5ffd5b5061012a61043a565b604051610137919061142c565b60405180910390f35b34801561014b575f5ffd5b50610166600480360381019061016191906114b2565b610557565b60405161017391906114f7565b60405180910390f35b348015610187575f5ffd5b506101a2600480360381019061019d919061153a565b6105d0565b6040516101af91906114f7565b60405180910390f35b3480156101c3575f5ffd5b506101de60048036038101906101d9919061153a565b6105ed565b005b3480156101eb575f5ffd5b506102066004803603810190610201919061153a565b610658565b005b6102106107e6565b60405161021d9190611574565b60405180910390f35b348015610231575f5ffd5b5061024c6004803603810190610247919061158d565b6109a9565b005b348015610259575f5ffd5b50610262610b2b565b005b34801561026f575f5ffd5b50610278610c4e565b005b348015610285575f5ffd5b506102a0600480360381019061029b9190611625565b610c61565b005b3480156102ad575f5ffd5b506102b6610d1a565b6040516102c3919061142c565b60405180910390f35b3480156102d7575f5ffd5b506102e0610d70565b6040516102ed919061165f565b60405180910390f35b348015610301575f5ffd5b5061031c6004803603810190610317919061153a565b610d97565b005b348015610329575f5ffd5b50610344600480360381019061033f9190611878565b610e04565b6040516103519190611952565b60405180910390f35b348015610365575f5ffd5b5061036e610f35565b60405161037b91906114f7565b60405180910390f35b34801561038f575f5ffd5b50610398610f47565b6040516103a5919061165f565b60405180910390f35b3480156103b9575f5ffd5b506103d460048036038101906103cf919061196b565b610f6c565b6040516103e19190611952565b60405180910390f35b3480156103f5575f5ffd5b50610410600480360381019061040b9190611625565b611067565b005b34801561041d575f5ffd5b5061043860048036038101906104339190611a28565b6110eb565b005b60605f5f90505f5f90505b6103e881101561048e5760035f8281526020019081526020015f205f9054906101000a900460ff161561048157818061047d90611a80565b9250505b8080600101915050610445565b505f8167ffffffffffffffff8111156104aa576104a961168c565b5b6040519080825280602002602001820160405280156104d85781602001602082028036833780820191505090505b5090505f5f90505f5f90505b6103e881101561054d5760035f8281526020019081526020015f205f9054906101000a900460ff1615610540578083838151811061052557610524611ac7565b5b602002602001018181525050818061053c90611a80565b9250505b80806001019150506104e4565b5081935050505090565b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c957506105c882611146565b5b9050919050565b6003602052805f5260405f205f915054906101000a900460ff1681565b6105f56111af565b5f60035f8381526020019081526020015f205f6101000a81548160ff021916908315150217905550807f028b57e08191ca2b50f7a97c3380addfbc1ccdca60367eb8fbefaa8946f699b25f60405161064d91906114f7565b60405180910390a250565b6106606111af565b5f81116106a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069990611b74565b60405180910390fd5b804710156106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dc90611c02565b60405180910390fd5b5f6106ee610d70565b73ffffffffffffffffffffffffffffffffffffffff168260405161071190611c4d565b5f6040518083038185875af1925050503d805f811461074b576040519150601f19603f3d011682016040523d82523d5f602084013e610750565b606091505b5050905080610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078b90611cd1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d836040516107da9190611574565b60405180910390a25050565b5f670de0b6b3a7640000341015610832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082990611d5f565b60405180910390fd5b61083a610b2b565b5f60028054905011610881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087890611ded565b60405180910390fd5b5f600280549050610890611236565b61089a9190611e38565b90505f600282815481106108b1576108b0611ac7565b5b905f5260205f200154905060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30338460016040518563ffffffff1660e01b815260040161091d9493929190611eda565b5f604051808303815f87803b158015610934575f5ffd5b505af1158015610946573d5f5f3e3d5ffd5b50505050610952610b2b565b803373ffffffffffffffffffffffffffffffffffffffff167fae86095265d3686050bd8abbfa417ef89a09b047cb7abe4b58d3af26e3e9559f426040516109999190611574565b60405180910390a3809250505090565b6109b16111af565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b8152600401610a0d929190611f30565b602060405180830381865afa158015610a28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611f6b565b905081811015610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890612006565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a303386866040518563ffffffff1660e01b8152600401610af19493929190612024565b5f604051808303815f87803b158015610b08575f5ffd5b505af1158015610b1a573d5f5f3e3d5ffd5b50505050610b26610b2b565b505050565b60025f610b389190611333565b5f610b4161043a565b90505f5f90505b8151811015610c4a575f828281518110610b6557610b64611ac7565b5b602002602001015190505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b8152600401610bcb929190611f30565b602060405180830381865afa158015610be6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a9190611f6b565b90505f811115610c3b57600282908060018154018082558091505060019003905f5260205f20015f90919091909150555b50508080600101915050610b48565b5050565b610c566111af565b610c5f5f61126b565b565b610c696111af565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cce906120ea565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606002805480602002602001604051908101604052809291908181526020018280548015610d6657602002820191905f5260205f20905b815481526020019060010190808311610d52575b5050505050905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d9f6111af565b600160035f8381526020019081526020015f205f6101000a81548160ff021916908315150217905550807f028b57e08191ca2b50f7a97c3380addfbc1ccdca60367eb8fbefaa8946f699b26001604051610df991906114f7565b60405180910390a250565b5f60045f9054906101000a900460ff1615610e8f57610e21610d70565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8590612178565b60405180910390fd5b5b5f5f90505b8451811015610f215760035f868381518110610eb357610eb2611ac7565b5b602002602001015181526020019081526020015f205f9054906101000a900460ff16610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90612206565b60405180910390fd5b8080600101915050610e94565b5063bc197c8160e01b905095945050505050565b60045f9054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f9054906101000a900460ff1615610ff757610f89610d70565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612178565b60405180910390fd5b5b60035f8581526020019081526020015f205f9054906101000a900460ff16611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612206565b60405180910390fd5b63f23a6e6160e01b905095945050505050565b61106f6111af565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110df575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016110d6919061165f565b60405180910390fd5b6110e88161126b565b50565b6110f36111af565b8060045f6101000a81548160ff0219169083151502179055507f9f70172b7ebd50ecc04c81bc14a07db818f07665641c5ee8579d46898e1eae5c8160405161113b91906114f7565b60405180910390a150565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6111b761132c565b73ffffffffffffffffffffffffffffffffffffffff166111d5610d70565b73ffffffffffffffffffffffffffffffffffffffff1614611234576111f861132c565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161122b919061165f565b60405180910390fd5b565b5f4243413360405160200161124e94939291906122c2565b604051602081830303815290604052805190602001205f1c905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5080545f8255905f5260205f209081019061134e9190611351565b50565b5b80821115611368575f815f905550600101611352565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b6113a781611395565b82525050565b5f6113b8838361139e565b60208301905092915050565b5f602082019050919050565b5f6113da8261136c565b6113e48185611376565b93506113ef83611386565b805f5b8381101561141f57815161140688826113ad565b9750611411836113c4565b9250506001810190506113f2565b5085935050505092915050565b5f6020820190508181035f83015261144481846113d0565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114918161145d565b811461149b575f5ffd5b50565b5f813590506114ac81611488565b92915050565b5f602082840312156114c7576114c6611455565b5b5f6114d48482850161149e565b91505092915050565b5f8115159050919050565b6114f1816114dd565b82525050565b5f60208201905061150a5f8301846114e8565b92915050565b61151981611395565b8114611523575f5ffd5b50565b5f8135905061153481611510565b92915050565b5f6020828403121561154f5761154e611455565b5b5f61155c84828501611526565b91505092915050565b61156e81611395565b82525050565b5f6020820190506115875f830184611565565b92915050565b5f5f604083850312156115a3576115a2611455565b5b5f6115b085828601611526565b92505060206115c185828601611526565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115f4826115cb565b9050919050565b611604816115ea565b811461160e575f5ffd5b50565b5f8135905061161f816115fb565b92915050565b5f6020828403121561163a57611639611455565b5b5f61164784828501611611565b91505092915050565b611659816115ea565b82525050565b5f6020820190506116725f830184611650565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116c28261167c565b810181811067ffffffffffffffff821117156116e1576116e061168c565b5b80604052505050565b5f6116f361144c565b90506116ff82826116b9565b919050565b5f67ffffffffffffffff82111561171e5761171d61168c565b5b602082029050602081019050919050565b5f5ffd5b5f61174561174084611704565b6116ea565b905080838252602082019050602084028301858111156117685761176761172f565b5b835b81811015611791578061177d8882611526565b84526020840193505060208101905061176a565b5050509392505050565b5f82601f8301126117af576117ae611678565b5b81356117bf848260208601611733565b91505092915050565b5f5ffd5b5f67ffffffffffffffff8211156117e6576117e561168c565b5b6117ef8261167c565b9050602081019050919050565b828183375f83830152505050565b5f61181c611817846117cc565b6116ea565b905082815260208101848484011115611838576118376117c8565b5b6118438482856117fc565b509392505050565b5f82601f83011261185f5761185e611678565b5b813561186f84826020860161180a565b91505092915050565b5f5f5f5f5f60a0868803121561189157611890611455565b5b5f61189e88828901611611565b95505060206118af88828901611611565b945050604086013567ffffffffffffffff8111156118d0576118cf611459565b5b6118dc8882890161179b565b935050606086013567ffffffffffffffff8111156118fd576118fc611459565b5b6119098882890161179b565b925050608086013567ffffffffffffffff81111561192a57611929611459565b5b6119368882890161184b565b9150509295509295909350565b61194c8161145d565b82525050565b5f6020820190506119655f830184611943565b92915050565b5f5f5f5f5f60a0868803121561198457611983611455565b5b5f61199188828901611611565b95505060206119a288828901611611565b94505060406119b388828901611526565b93505060606119c488828901611526565b925050608086013567ffffffffffffffff8111156119e5576119e4611459565b5b6119f18882890161184b565b9150509295509295909350565b611a07816114dd565b8114611a11575f5ffd5b50565b5f81359050611a22816119fe565b92915050565b5f60208284031215611a3d57611a3c611455565b5b5f611a4a84828501611a14565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a8a82611395565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611abc57611abb611a53565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82825260208201905092915050565b7f4d6f6e6b6579417263616e6153696d706c653a20416d6f756e74206d757374205f8201527f62652067726561746572207468616e2030000000000000000000000000000000602082015250565b5f611b5e603183611af4565b9150611b6982611b04565b604082019050919050565b5f6020820190508181035f830152611b8b81611b52565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a204e6f7420656e6f75676820665f8201527f756e647320617661696c61626c65000000000000000000000000000000000000602082015250565b5f611bec602e83611af4565b9150611bf782611b92565b604082019050919050565b5f6020820190508181035f830152611c1981611be0565b9050919050565b5f81905092915050565b50565b5f611c385f83611c20565b9150611c4382611c2a565b5f82019050919050565b5f611c5782611c2d565b9150819050919050565b7f4d6f6e6b6579417263616e6153696d706c653a205472616e73666572206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f611cbb602383611af4565b9150611cc682611c61565b604082019050919050565b5f6020820190508181035f830152611ce881611caf565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a204d75737420706179203120245f8201527f41504520746f2064726177206120636172640000000000000000000000000000602082015250565b5f611d49603283611af4565b9150611d5482611cef565b604082019050919050565b5f6020820190508181035f830152611d7681611d3d565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a204e6f206361726473206176615f8201527f696c61626c650000000000000000000000000000000000000000000000000000602082015250565b5f611dd7602683611af4565b9150611de282611d7d565b604082019050919050565b5f6020820190508181035f830152611e0481611dcb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e4282611395565b9150611e4d83611395565b925082611e5d57611e5c611e0b565b5b828206905092915050565b5f819050919050565b5f819050919050565b5f611e94611e8f611e8a84611e68565b611e71565b611395565b9050919050565b611ea481611e7a565b82525050565b5f82825260208201905092915050565b5f611ec55f83611eaa565b9150611ed082611c2a565b5f82019050919050565b5f60a082019050611eed5f830187611650565b611efa6020830186611650565b611f076040830185611565565b611f146060830184611e9b565b8181036080830152611f2581611eba565b905095945050505050565b5f604082019050611f435f830185611650565b611f506020830184611565565b9392505050565b5f81519050611f6581611510565b92915050565b5f60208284031215611f8057611f7f611455565b5b5f611f8d84828501611f57565b91505092915050565b7f4d6f6e6b6579417263616e6153696d706c653a204e6f7420656e6f75676820745f8201527f6f6b656e73000000000000000000000000000000000000000000000000000000602082015250565b5f611ff0602583611af4565b9150611ffb82611f96565b604082019050919050565b5f6020820190508181035f83015261201d81611fe4565b9050919050565b5f60a0820190506120375f830187611650565b6120446020830186611650565b6120516040830185611565565b61205e6060830184611565565b818103608083015261206f81611eba565b905095945050505050565b7f4d6f6e6b6579417263616e6153696d706c653a204e465420636f6e74726163745f8201527f2063616e6e6f74206265207a65726f2061646472657373000000000000000000602082015250565b5f6120d4603783611af4565b91506120df8261207a565b604082019050919050565b5f6020820190508181035f830152612101816120c8565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a204f6e6c79206f776e657220635f8201527f616e2073656e6420746f6b656e73000000000000000000000000000000000000602082015250565b5f612162602e83611af4565b915061216d82612108565b604082019050919050565b5f6020820190508181035f83015261218f81612156565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a20546f6b656e204944206973205f8201527f6e6f742076616c69640000000000000000000000000000000000000000000000602082015250565b5f6121f0602983611af4565b91506121fb82612196565b604082019050919050565b5f6020820190508181035f83015261221d816121e4565b9050919050565b5f819050919050565b61223e61223982611395565b612224565b82525050565b5f61224e826115cb565b9050919050565b5f8160601b9050919050565b5f61226b82612255565b9050919050565b5f61227c82612261565b9050919050565b61229461228f82612244565b612272565b82525050565b5f6122a482612261565b9050919050565b6122bc6122b7826115ea565b61229a565b82525050565b5f6122cd828761222d565b6020820191506122dd828661222d565b6020820191506122ed8285612283565b6014820191506122fd82846122ab565b6014820191508190509594505050505056fea2646970667358221220e6b78e5bc9067c2bfb7abfd6760631ceab6e4db8f871b9a50b69ebf1c829240664736f6c634300081c0033000000000000000000000000c1f6aa061e57edeb62af8c5c9aa8b409713662b30000000000000000000000004d09c5dfd949470c684e6d537e24c399c075ad40
Deployed Bytecode
0x608060405260043610610112575f3560e01c806378627f2b1161009f578063c3b014fc11610063578063c3b014fc1461035a578063d56d229d14610384578063f23a6e61146103ae578063f2fde38b146103ea578063ff5bcdd41461041257610112565b806378627f2b1461027a57806379e4a5b7146102a25780638da5cb5b146102cc578063abbeba04146102f6578063bc197c811461031e57610112565b8063155dd5ee116100e6578063155dd5ee146101e05780632f5be23e146102085780633a0196af14610226578063608b98cc1461024e578063715018a61461026457610112565b8062749d651461011657806301ffc9a71461014057806307b5f95b1461017c57806314138352146101b8575b5f5ffd5b348015610121575f5ffd5b5061012a61043a565b604051610137919061142c565b60405180910390f35b34801561014b575f5ffd5b50610166600480360381019061016191906114b2565b610557565b60405161017391906114f7565b60405180910390f35b348015610187575f5ffd5b506101a2600480360381019061019d919061153a565b6105d0565b6040516101af91906114f7565b60405180910390f35b3480156101c3575f5ffd5b506101de60048036038101906101d9919061153a565b6105ed565b005b3480156101eb575f5ffd5b506102066004803603810190610201919061153a565b610658565b005b6102106107e6565b60405161021d9190611574565b60405180910390f35b348015610231575f5ffd5b5061024c6004803603810190610247919061158d565b6109a9565b005b348015610259575f5ffd5b50610262610b2b565b005b34801561026f575f5ffd5b50610278610c4e565b005b348015610285575f5ffd5b506102a0600480360381019061029b9190611625565b610c61565b005b3480156102ad575f5ffd5b506102b6610d1a565b6040516102c3919061142c565b60405180910390f35b3480156102d7575f5ffd5b506102e0610d70565b6040516102ed919061165f565b60405180910390f35b348015610301575f5ffd5b5061031c6004803603810190610317919061153a565b610d97565b005b348015610329575f5ffd5b50610344600480360381019061033f9190611878565b610e04565b6040516103519190611952565b60405180910390f35b348015610365575f5ffd5b5061036e610f35565b60405161037b91906114f7565b60405180910390f35b34801561038f575f5ffd5b50610398610f47565b6040516103a5919061165f565b60405180910390f35b3480156103b9575f5ffd5b506103d460048036038101906103cf919061196b565b610f6c565b6040516103e19190611952565b60405180910390f35b3480156103f5575f5ffd5b50610410600480360381019061040b9190611625565b611067565b005b34801561041d575f5ffd5b5061043860048036038101906104339190611a28565b6110eb565b005b60605f5f90505f5f90505b6103e881101561048e5760035f8281526020019081526020015f205f9054906101000a900460ff161561048157818061047d90611a80565b9250505b8080600101915050610445565b505f8167ffffffffffffffff8111156104aa576104a961168c565b5b6040519080825280602002602001820160405280156104d85781602001602082028036833780820191505090505b5090505f5f90505f5f90505b6103e881101561054d5760035f8281526020019081526020015f205f9054906101000a900460ff1615610540578083838151811061052557610524611ac7565b5b602002602001018181525050818061053c90611a80565b9250505b80806001019150506104e4565b5081935050505090565b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c957506105c882611146565b5b9050919050565b6003602052805f5260405f205f915054906101000a900460ff1681565b6105f56111af565b5f60035f8381526020019081526020015f205f6101000a81548160ff021916908315150217905550807f028b57e08191ca2b50f7a97c3380addfbc1ccdca60367eb8fbefaa8946f699b25f60405161064d91906114f7565b60405180910390a250565b6106606111af565b5f81116106a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069990611b74565b60405180910390fd5b804710156106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dc90611c02565b60405180910390fd5b5f6106ee610d70565b73ffffffffffffffffffffffffffffffffffffffff168260405161071190611c4d565b5f6040518083038185875af1925050503d805f811461074b576040519150601f19603f3d011682016040523d82523d5f602084013e610750565b606091505b5050905080610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078b90611cd1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d836040516107da9190611574565b60405180910390a25050565b5f670de0b6b3a7640000341015610832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082990611d5f565b60405180910390fd5b61083a610b2b565b5f60028054905011610881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087890611ded565b60405180910390fd5b5f600280549050610890611236565b61089a9190611e38565b90505f600282815481106108b1576108b0611ac7565b5b905f5260205f200154905060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30338460016040518563ffffffff1660e01b815260040161091d9493929190611eda565b5f604051808303815f87803b158015610934575f5ffd5b505af1158015610946573d5f5f3e3d5ffd5b50505050610952610b2b565b803373ffffffffffffffffffffffffffffffffffffffff167fae86095265d3686050bd8abbfa417ef89a09b047cb7abe4b58d3af26e3e9559f426040516109999190611574565b60405180910390a3809250505090565b6109b16111af565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b8152600401610a0d929190611f30565b602060405180830381865afa158015610a28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611f6b565b905081811015610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890612006565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a303386866040518563ffffffff1660e01b8152600401610af19493929190612024565b5f604051808303815f87803b158015610b08575f5ffd5b505af1158015610b1a573d5f5f3e3d5ffd5b50505050610b26610b2b565b505050565b60025f610b389190611333565b5f610b4161043a565b90505f5f90505b8151811015610c4a575f828281518110610b6557610b64611ac7565b5b602002602001015190505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b8152600401610bcb929190611f30565b602060405180830381865afa158015610be6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a9190611f6b565b90505f811115610c3b57600282908060018154018082558091505060019003905f5260205f20015f90919091909150555b50508080600101915050610b48565b5050565b610c566111af565b610c5f5f61126b565b565b610c696111af565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cce906120ea565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606002805480602002602001604051908101604052809291908181526020018280548015610d6657602002820191905f5260205f20905b815481526020019060010190808311610d52575b5050505050905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d9f6111af565b600160035f8381526020019081526020015f205f6101000a81548160ff021916908315150217905550807f028b57e08191ca2b50f7a97c3380addfbc1ccdca60367eb8fbefaa8946f699b26001604051610df991906114f7565b60405180910390a250565b5f60045f9054906101000a900460ff1615610e8f57610e21610d70565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8590612178565b60405180910390fd5b5b5f5f90505b8451811015610f215760035f868381518110610eb357610eb2611ac7565b5b602002602001015181526020019081526020015f205f9054906101000a900460ff16610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90612206565b60405180910390fd5b8080600101915050610e94565b5063bc197c8160e01b905095945050505050565b60045f9054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f9054906101000a900460ff1615610ff757610f89610d70565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612178565b60405180910390fd5b5b60035f8581526020019081526020015f205f9054906101000a900460ff16611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612206565b60405180910390fd5b63f23a6e6160e01b905095945050505050565b61106f6111af565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110df575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016110d6919061165f565b60405180910390fd5b6110e88161126b565b50565b6110f36111af565b8060045f6101000a81548160ff0219169083151502179055507f9f70172b7ebd50ecc04c81bc14a07db818f07665641c5ee8579d46898e1eae5c8160405161113b91906114f7565b60405180910390a150565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6111b761132c565b73ffffffffffffffffffffffffffffffffffffffff166111d5610d70565b73ffffffffffffffffffffffffffffffffffffffff1614611234576111f861132c565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161122b919061165f565b60405180910390fd5b565b5f4243413360405160200161124e94939291906122c2565b604051602081830303815290604052805190602001205f1c905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5080545f8255905f5260205f209081019061134e9190611351565b50565b5b80821115611368575f815f905550600101611352565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b6113a781611395565b82525050565b5f6113b8838361139e565b60208301905092915050565b5f602082019050919050565b5f6113da8261136c565b6113e48185611376565b93506113ef83611386565b805f5b8381101561141f57815161140688826113ad565b9750611411836113c4565b9250506001810190506113f2565b5085935050505092915050565b5f6020820190508181035f83015261144481846113d0565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114918161145d565b811461149b575f5ffd5b50565b5f813590506114ac81611488565b92915050565b5f602082840312156114c7576114c6611455565b5b5f6114d48482850161149e565b91505092915050565b5f8115159050919050565b6114f1816114dd565b82525050565b5f60208201905061150a5f8301846114e8565b92915050565b61151981611395565b8114611523575f5ffd5b50565b5f8135905061153481611510565b92915050565b5f6020828403121561154f5761154e611455565b5b5f61155c84828501611526565b91505092915050565b61156e81611395565b82525050565b5f6020820190506115875f830184611565565b92915050565b5f5f604083850312156115a3576115a2611455565b5b5f6115b085828601611526565b92505060206115c185828601611526565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115f4826115cb565b9050919050565b611604816115ea565b811461160e575f5ffd5b50565b5f8135905061161f816115fb565b92915050565b5f6020828403121561163a57611639611455565b5b5f61164784828501611611565b91505092915050565b611659816115ea565b82525050565b5f6020820190506116725f830184611650565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116c28261167c565b810181811067ffffffffffffffff821117156116e1576116e061168c565b5b80604052505050565b5f6116f361144c565b90506116ff82826116b9565b919050565b5f67ffffffffffffffff82111561171e5761171d61168c565b5b602082029050602081019050919050565b5f5ffd5b5f61174561174084611704565b6116ea565b905080838252602082019050602084028301858111156117685761176761172f565b5b835b81811015611791578061177d8882611526565b84526020840193505060208101905061176a565b5050509392505050565b5f82601f8301126117af576117ae611678565b5b81356117bf848260208601611733565b91505092915050565b5f5ffd5b5f67ffffffffffffffff8211156117e6576117e561168c565b5b6117ef8261167c565b9050602081019050919050565b828183375f83830152505050565b5f61181c611817846117cc565b6116ea565b905082815260208101848484011115611838576118376117c8565b5b6118438482856117fc565b509392505050565b5f82601f83011261185f5761185e611678565b5b813561186f84826020860161180a565b91505092915050565b5f5f5f5f5f60a0868803121561189157611890611455565b5b5f61189e88828901611611565b95505060206118af88828901611611565b945050604086013567ffffffffffffffff8111156118d0576118cf611459565b5b6118dc8882890161179b565b935050606086013567ffffffffffffffff8111156118fd576118fc611459565b5b6119098882890161179b565b925050608086013567ffffffffffffffff81111561192a57611929611459565b5b6119368882890161184b565b9150509295509295909350565b61194c8161145d565b82525050565b5f6020820190506119655f830184611943565b92915050565b5f5f5f5f5f60a0868803121561198457611983611455565b5b5f61199188828901611611565b95505060206119a288828901611611565b94505060406119b388828901611526565b93505060606119c488828901611526565b925050608086013567ffffffffffffffff8111156119e5576119e4611459565b5b6119f18882890161184b565b9150509295509295909350565b611a07816114dd565b8114611a11575f5ffd5b50565b5f81359050611a22816119fe565b92915050565b5f60208284031215611a3d57611a3c611455565b5b5f611a4a84828501611a14565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a8a82611395565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611abc57611abb611a53565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82825260208201905092915050565b7f4d6f6e6b6579417263616e6153696d706c653a20416d6f756e74206d757374205f8201527f62652067726561746572207468616e2030000000000000000000000000000000602082015250565b5f611b5e603183611af4565b9150611b6982611b04565b604082019050919050565b5f6020820190508181035f830152611b8b81611b52565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a204e6f7420656e6f75676820665f8201527f756e647320617661696c61626c65000000000000000000000000000000000000602082015250565b5f611bec602e83611af4565b9150611bf782611b92565b604082019050919050565b5f6020820190508181035f830152611c1981611be0565b9050919050565b5f81905092915050565b50565b5f611c385f83611c20565b9150611c4382611c2a565b5f82019050919050565b5f611c5782611c2d565b9150819050919050565b7f4d6f6e6b6579417263616e6153696d706c653a205472616e73666572206661695f8201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b5f611cbb602383611af4565b9150611cc682611c61565b604082019050919050565b5f6020820190508181035f830152611ce881611caf565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a204d75737420706179203120245f8201527f41504520746f2064726177206120636172640000000000000000000000000000602082015250565b5f611d49603283611af4565b9150611d5482611cef565b604082019050919050565b5f6020820190508181035f830152611d7681611d3d565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a204e6f206361726473206176615f8201527f696c61626c650000000000000000000000000000000000000000000000000000602082015250565b5f611dd7602683611af4565b9150611de282611d7d565b604082019050919050565b5f6020820190508181035f830152611e0481611dcb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e4282611395565b9150611e4d83611395565b925082611e5d57611e5c611e0b565b5b828206905092915050565b5f819050919050565b5f819050919050565b5f611e94611e8f611e8a84611e68565b611e71565b611395565b9050919050565b611ea481611e7a565b82525050565b5f82825260208201905092915050565b5f611ec55f83611eaa565b9150611ed082611c2a565b5f82019050919050565b5f60a082019050611eed5f830187611650565b611efa6020830186611650565b611f076040830185611565565b611f146060830184611e9b565b8181036080830152611f2581611eba565b905095945050505050565b5f604082019050611f435f830185611650565b611f506020830184611565565b9392505050565b5f81519050611f6581611510565b92915050565b5f60208284031215611f8057611f7f611455565b5b5f611f8d84828501611f57565b91505092915050565b7f4d6f6e6b6579417263616e6153696d706c653a204e6f7420656e6f75676820745f8201527f6f6b656e73000000000000000000000000000000000000000000000000000000602082015250565b5f611ff0602583611af4565b9150611ffb82611f96565b604082019050919050565b5f6020820190508181035f83015261201d81611fe4565b9050919050565b5f60a0820190506120375f830187611650565b6120446020830186611650565b6120516040830185611565565b61205e6060830184611565565b818103608083015261206f81611eba565b905095945050505050565b7f4d6f6e6b6579417263616e6153696d706c653a204e465420636f6e74726163745f8201527f2063616e6e6f74206265207a65726f2061646472657373000000000000000000602082015250565b5f6120d4603783611af4565b91506120df8261207a565b604082019050919050565b5f6020820190508181035f830152612101816120c8565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a204f6e6c79206f776e657220635f8201527f616e2073656e6420746f6b656e73000000000000000000000000000000000000602082015250565b5f612162602e83611af4565b915061216d82612108565b604082019050919050565b5f6020820190508181035f83015261218f81612156565b9050919050565b7f4d6f6e6b6579417263616e6153696d706c653a20546f6b656e204944206973205f8201527f6e6f742076616c69640000000000000000000000000000000000000000000000602082015250565b5f6121f0602983611af4565b91506121fb82612196565b604082019050919050565b5f6020820190508181035f83015261221d816121e4565b9050919050565b5f819050919050565b61223e61223982611395565b612224565b82525050565b5f61224e826115cb565b9050919050565b5f8160601b9050919050565b5f61226b82612255565b9050919050565b5f61227c82612261565b9050919050565b61229461228f82612244565b612272565b82525050565b5f6122a482612261565b9050919050565b6122bc6122b7826115ea565b61229a565b82525050565b5f6122cd828761222d565b6020820191506122dd828661222d565b6020820191506122ed8285612283565b6014820191506122fd82846122ab565b6014820191508190509594505050505056fea2646970667358221220e6b78e5bc9067c2bfb7abfd6760631ceab6e4db8f871b9a50b69ebf1c829240664736f6c634300081c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c1f6aa061e57edeb62af8c5c9aa8b409713662b30000000000000000000000004d09c5dfd949470c684e6d537e24c399c075ad40
-----Decoded View---------------
Arg [0] : _nftContract (address): 0xC1f6aa061e57eDEb62af8c5C9aa8B409713662b3
Arg [1] : initialOwner (address): 0x4D09C5DfD949470c684E6D537E24C399c075AD40
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c1f6aa061e57edeb62af8c5c9aa8b409713662b3
Arg [1] : 0000000000000000000000004d09c5dfd949470c684e6d537e24c399c075ad40
Deployed Bytecode Sourcemap
15014:8859:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20043:641;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5087:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15329:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21086:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21724:499;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18315:964;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23364:506;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19382:553;;;;;;;;;;;;;:::i;:::-;;13985:103;;;;;;;;;;;;;:::i;:::-;;22582:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22327:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13310:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20800:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17465:733;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15442:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15138:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16725:633;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14243:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21418:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20043:641;20092:16;20155:13;20171:1;20155:17;;20188:9;20200:1;20188:13;;20183:150;20207:4;20203:1;:8;20183:150;;;20262:13;:16;20276:1;20262:16;;;;;;;;;;;;;;;;;;;;;20258:64;;;20299:7;;;;;:::i;:::-;;;;20258:64;20213:3;;;;;;;20183:150;;;;20397:23;20437:5;20423:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20397:46;;20454:13;20470:1;20454:17;;20487:9;20499:1;20487:13;;20482:161;20506:4;20502:1;:8;20482:161;;;20536:13;:16;20550:1;20536:16;;;;;;;;;;;;;;;;;;;;;20532:100;;;20589:1;20573:6;20580:5;20573:13;;;;;;;;:::i;:::-;;;;;;;:17;;;;;20609:7;;;;;:::i;:::-;;;;20532:100;20512:3;;;;;;;20482:161;;;;20670:6;20663:13;;;;;20043:641;:::o;5087:223::-;5189:4;5228:34;5213:49;;;:11;:49;;;;:89;;;;5266:36;5290:11;5266:23;:36::i;:::-;5213:89;5206:96;;5087:223;;;:::o;15329:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;21086:165::-;13196:13;:11;:13::i;:::-;21186:5:::1;21161:13;:22;21175:7;21161:22;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;21228:7;21207:36;21237:5;21207:36;;;;;;:::i;:::-;;;;;;;;21086:165:::0;:::o;21724:499::-;13196:13;:11;:13::i;:::-;21810:1:::1;21801:6;:10;21793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;21909:6;21884:21;:31;;21876:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;22016:12;22042:7;:5;:7::i;:::-;22034:21;;22063:6;22034:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22015:59;;;22093:7;22085:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;22196:10;22181:34;;;22208:6;22181:34;;;;;;:::i;:::-;;;;;;;;21782:441;21724:499:::0;:::o;18315:964::-;18361:7;18402;18389:9;:20;;18381:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;18536:23;:21;:23::i;:::-;18616:1;18588:18;:25;;;;:29;18580:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;18729:19;18772:18;:25;;;;18751:18;:16;:18::i;:::-;:46;;;;:::i;:::-;18729:68;;18808:15;18826:18;18845:11;18826:31;;;;;;;;:::i;:::-;;;;;;;;;;18808:49;;18922:11;;;;;;;;;;;18913:38;;;18974:4;18994:10;19019:7;19041:1;18913:157;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19133:23;:21;:23::i;:::-;19219:7;19207:10;19197:47;;;19228:15;19197:47;;;;;;:::i;:::-;;;;;;;;19264:7;19257:14;;;;18315:964;:::o;23364:506::-;13196:13;:11;:13::i;:::-;23448:15:::1;23475:11;;;;;;;;;;;23466:31;;;23506:4;23513:7;23466:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23448:73;;23551:6;23540:7;:17;;23532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23629:11;;;;;;;;;;;23620:38;;;23681:4;23701:10;23726:7;23748:6;23620:162;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23839:23;:21;:23::i;:::-;23437:433;23364:506:::0;;:::o;19382:553::-;19475:18;;19468:25;;;;:::i;:::-;19552:32;19587:18;:16;:18::i;:::-;19552:53;;19631:9;19643:1;19631:13;;19626:302;19650:15;:22;19646:1;:26;19626:302;;;19694:15;19712;19728:1;19712:18;;;;;;;;:::i;:::-;;;;;;;;19694:36;;19745:15;19772:11;;;;;;;;;;;19763:31;;;19803:4;19810:7;19763:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19745:73;;19847:1;19837:7;:11;19833:84;;;19869:18;19893:7;19869:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19833:84;19679:249;;19674:3;;;;;;;19626:302;;;;19422:513;19382:553::o;13985:103::-;13196:13;:11;:13::i;:::-;14050:30:::1;14077:1;14050:18;:30::i;:::-;13985:103::o:0;22582:218::-;13196:13;:11;:13::i;:::-;22693:1:::1;22669:26;;:12;:26;;::::0;22661:94:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22780:12;22766:11;;:26;;;;;;;;;;;;;;;;;;22582:218:::0;:::o;22327:114::-;22379:16;22415:18;22408:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22327:114;:::o;13310:87::-;13356:7;13383:6;;;;;;;;;;;13376:13;;13310:87;:::o;20800:160::-;13196:13;:11;:13::i;:::-;20897:4:::1;20872:13;:22;20886:7;20872:22;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20938:7;20917:35;20947:4;20917:35;;;;;;:::i;:::-;;;;;;;;20800:160:::0;:::o;17465:733::-;17659:6;17762:18;;;;;;;;;;;17758:125;;;17813:7;:5;:7::i;:::-;17805:15;;:4;:15;;;17797:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17758:125;17948:9;17960:1;17948:13;;17943:143;17967:3;:10;17963:1;:14;17943:143;;;18007:13;:21;18021:3;18025:1;18021:6;;;;;;;;:::i;:::-;;;;;;;;18007:21;;;;;;;;;;;;;;;;;;;;;17999:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17979:3;;;;;;;17943:143;;;;18154:36;;;18147:43;;17465:733;;;;;;;:::o;15442:37::-;;;;;;;;;;;;;:::o;15138:26::-;;;;;;;;;;;;;:::o;16725:633::-;16895:6;16998:18;;;;;;;;;;;16994:125;;;17049:7;:5;:7::i;:::-;17041:15;;:4;:15;;;17033:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16994:125;17187:13;:17;17201:2;17187:17;;;;;;;;;;;;;;;;;;;;;17179:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17319:31;;;17312:38;;16725:633;;;;;;;:::o;14243:220::-;13196:13;:11;:13::i;:::-;14348:1:::1;14328:22;;:8;:22;;::::0;14324:93:::1;;14402:1;14374:31;;;;;;;;;;;:::i;:::-;;;;;;;;14324:93;14427:28;14446:8;14427:18;:28::i;:::-;14243:220:::0;:::o;21418:168::-;13196:13;:11;:13::i;:::-;21516:9:::1;21495:18;;:30;;;;;;;;;;;;;;;;;;21541:37;21568:9;21541:37;;;;;;:::i;:::-;;;;;;;;21418:168:::0;:::o;1716:148::-;1792:4;1831:25;1816:40;;;:11;:40;;;;1809:47;;1716:148;;;:::o;13475:166::-;13546:12;:10;:12::i;:::-;13535:23;;:7;:5;:7::i;:::-;:23;;;13531:103;;13609:12;:10;:12::i;:::-;13582:40;;;;;;;;;;;:::i;:::-;;;;;;;;13531:103;13475:166::o;22930:243::-;22980:7;23056:15;23086:12;23113:14;23142:10;23025:138;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23015:149;;;;;;23007:158;;23000:165;;22930:243;:::o;14623:191::-;14697:16;14716:6;;;;;;;;;;;14697:25;;14742:8;14733:6;;:17;;;;;;;;;;;;;;;;;;14797:8;14766:40;;14787:8;14766:40;;;;;;;;;;;;14686:128;14623:191;:::o;11319:98::-;11372:7;11399:10;11392:17;;11319:98;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:114:1:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:77::-;492:7;521:5;510:16;;455:77;;;:::o;538:108::-;615:24;633:5;615:24;:::i;:::-;610:3;603:37;538:108;;:::o;652:179::-;721:10;742:46;784:3;776:6;742:46;:::i;:::-;820:4;815:3;811:14;797:28;;652:179;;;;:::o;837:113::-;907:4;939;934:3;930:14;922:22;;837:113;;;:::o;986:732::-;1105:3;1134:54;1182:5;1134:54;:::i;:::-;1204:86;1283:6;1278:3;1204:86;:::i;:::-;1197:93;;1314:56;1364:5;1314:56;:::i;:::-;1393:7;1424:1;1409:284;1434:6;1431:1;1428:13;1409:284;;;1510:6;1504:13;1537:63;1596:3;1581:13;1537:63;:::i;:::-;1530:70;;1623:60;1676:6;1623:60;:::i;:::-;1613:70;;1469:224;1456:1;1453;1449:9;1444:14;;1409:284;;;1413:14;1709:3;1702:10;;1110:608;;;986:732;;;;:::o;1724:373::-;1867:4;1905:2;1894:9;1890:18;1882:26;;1954:9;1948:4;1944:20;1940:1;1929:9;1925:17;1918:47;1982:108;2085:4;2076:6;1982:108;:::i;:::-;1974:116;;1724:373;;;;:::o;2103:75::-;2136:6;2169:2;2163:9;2153:19;;2103:75;:::o;2184:117::-;2293:1;2290;2283:12;2307:117;2416:1;2413;2406:12;2430:149;2466:7;2506:66;2499:5;2495:78;2484:89;;2430:149;;;:::o;2585:120::-;2657:23;2674:5;2657:23;:::i;:::-;2650:5;2647:34;2637:62;;2695:1;2692;2685:12;2637:62;2585:120;:::o;2711:137::-;2756:5;2794:6;2781:20;2772:29;;2810:32;2836:5;2810:32;:::i;:::-;2711:137;;;;:::o;2854:327::-;2912:6;2961:2;2949:9;2940:7;2936:23;2932:32;2929:119;;;2967:79;;:::i;:::-;2929:119;3087:1;3112:52;3156:7;3147:6;3136:9;3132:22;3112:52;:::i;:::-;3102:62;;3058:116;2854:327;;;;:::o;3187:90::-;3221:7;3264:5;3257:13;3250:21;3239:32;;3187:90;;;:::o;3283:109::-;3364:21;3379:5;3364:21;:::i;:::-;3359:3;3352:34;3283:109;;:::o;3398:210::-;3485:4;3523:2;3512:9;3508:18;3500:26;;3536:65;3598:1;3587:9;3583:17;3574:6;3536:65;:::i;:::-;3398:210;;;;:::o;3614:122::-;3687:24;3705:5;3687:24;:::i;:::-;3680:5;3677:35;3667:63;;3726:1;3723;3716:12;3667:63;3614:122;:::o;3742:139::-;3788:5;3826:6;3813:20;3804:29;;3842:33;3869:5;3842:33;:::i;:::-;3742:139;;;;:::o;3887:329::-;3946:6;3995:2;3983:9;3974:7;3970:23;3966:32;3963:119;;;4001:79;;:::i;:::-;3963:119;4121:1;4146:53;4191:7;4182:6;4171:9;4167:22;4146:53;:::i;:::-;4136:63;;4092:117;3887:329;;;;:::o;4222:118::-;4309:24;4327:5;4309:24;:::i;:::-;4304:3;4297:37;4222:118;;:::o;4346:222::-;4439:4;4477:2;4466:9;4462:18;4454:26;;4490:71;4558:1;4547:9;4543:17;4534:6;4490:71;:::i;:::-;4346:222;;;;:::o;4574:474::-;4642:6;4650;4699:2;4687:9;4678:7;4674:23;4670:32;4667:119;;;4705:79;;:::i;:::-;4667:119;4825:1;4850:53;4895:7;4886:6;4875:9;4871:22;4850:53;:::i;:::-;4840:63;;4796:117;4952:2;4978:53;5023:7;5014:6;5003:9;4999:22;4978:53;:::i;:::-;4968:63;;4923:118;4574:474;;;;;:::o;5054:126::-;5091:7;5131:42;5124:5;5120:54;5109:65;;5054:126;;;:::o;5186:96::-;5223:7;5252:24;5270:5;5252:24;:::i;:::-;5241:35;;5186:96;;;:::o;5288:122::-;5361:24;5379:5;5361:24;:::i;:::-;5354:5;5351:35;5341:63;;5400:1;5397;5390:12;5341:63;5288:122;:::o;5416:139::-;5462:5;5500:6;5487:20;5478:29;;5516:33;5543:5;5516:33;:::i;:::-;5416:139;;;;:::o;5561:329::-;5620:6;5669:2;5657:9;5648:7;5644:23;5640:32;5637:119;;;5675:79;;:::i;:::-;5637:119;5795:1;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5766:117;5561:329;;;;:::o;5896:118::-;5983:24;6001:5;5983:24;:::i;:::-;5978:3;5971:37;5896:118;;:::o;6020:222::-;6113:4;6151:2;6140:9;6136:18;6128:26;;6164:71;6232:1;6221:9;6217:17;6208:6;6164:71;:::i;:::-;6020:222;;;;:::o;6248:117::-;6357:1;6354;6347:12;6371:102;6412:6;6463:2;6459:7;6454:2;6447:5;6443:14;6439:28;6429:38;;6371:102;;;:::o;6479:180::-;6527:77;6524:1;6517:88;6624:4;6621:1;6614:15;6648:4;6645:1;6638:15;6665:281;6748:27;6770:4;6748:27;:::i;:::-;6740:6;6736:40;6878:6;6866:10;6863:22;6842:18;6830:10;6827:34;6824:62;6821:88;;;6889:18;;:::i;:::-;6821:88;6929:10;6925:2;6918:22;6708:238;6665:281;;:::o;6952:129::-;6986:6;7013:20;;:::i;:::-;7003:30;;7042:33;7070:4;7062:6;7042:33;:::i;:::-;6952:129;;;:::o;7087:311::-;7164:4;7254:18;7246:6;7243:30;7240:56;;;7276:18;;:::i;:::-;7240:56;7326:4;7318:6;7314:17;7306:25;;7386:4;7380;7376:15;7368:23;;7087:311;;;:::o;7404:117::-;7513:1;7510;7503:12;7544:710;7640:5;7665:81;7681:64;7738:6;7681:64;:::i;:::-;7665:81;:::i;:::-;7656:90;;7766:5;7795:6;7788:5;7781:21;7829:4;7822:5;7818:16;7811:23;;7882:4;7874:6;7870:17;7862:6;7858:30;7911:3;7903:6;7900:15;7897:122;;;7930:79;;:::i;:::-;7897:122;8045:6;8028:220;8062:6;8057:3;8054:15;8028:220;;;8137:3;8166:37;8199:3;8187:10;8166:37;:::i;:::-;8161:3;8154:50;8233:4;8228:3;8224:14;8217:21;;8104:144;8088:4;8083:3;8079:14;8072:21;;8028:220;;;8032:21;7646:608;;7544:710;;;;;:::o;8277:370::-;8348:5;8397:3;8390:4;8382:6;8378:17;8374:27;8364:122;;8405:79;;:::i;:::-;8364:122;8522:6;8509:20;8547:94;8637:3;8629:6;8622:4;8614:6;8610:17;8547:94;:::i;:::-;8538:103;;8354:293;8277:370;;;;:::o;8653:117::-;8762:1;8759;8752:12;8776:307;8837:4;8927:18;8919:6;8916:30;8913:56;;;8949:18;;:::i;:::-;8913:56;8987:29;9009:6;8987:29;:::i;:::-;8979:37;;9071:4;9065;9061:15;9053:23;;8776:307;;;:::o;9089:148::-;9187:6;9182:3;9177;9164:30;9228:1;9219:6;9214:3;9210:16;9203:27;9089:148;;;:::o;9243:423::-;9320:5;9345:65;9361:48;9402:6;9361:48;:::i;:::-;9345:65;:::i;:::-;9336:74;;9433:6;9426:5;9419:21;9471:4;9464:5;9460:16;9509:3;9500:6;9495:3;9491:16;9488:25;9485:112;;;9516:79;;:::i;:::-;9485:112;9606:54;9653:6;9648:3;9643;9606:54;:::i;:::-;9326:340;9243:423;;;;;:::o;9685:338::-;9740:5;9789:3;9782:4;9774:6;9770:17;9766:27;9756:122;;9797:79;;:::i;:::-;9756:122;9914:6;9901:20;9939:78;10013:3;10005:6;9998:4;9990:6;9986:17;9939:78;:::i;:::-;9930:87;;9746:277;9685:338;;;;:::o;10029:1509::-;10183:6;10191;10199;10207;10215;10264:3;10252:9;10243:7;10239:23;10235:33;10232:120;;;10271:79;;:::i;:::-;10232:120;10391:1;10416:53;10461:7;10452:6;10441:9;10437:22;10416:53;:::i;:::-;10406:63;;10362:117;10518:2;10544:53;10589:7;10580:6;10569:9;10565:22;10544:53;:::i;:::-;10534:63;;10489:118;10674:2;10663:9;10659:18;10646:32;10705:18;10697:6;10694:30;10691:117;;;10727:79;;:::i;:::-;10691:117;10832:78;10902:7;10893:6;10882:9;10878:22;10832:78;:::i;:::-;10822:88;;10617:303;10987:2;10976:9;10972:18;10959:32;11018:18;11010:6;11007:30;11004:117;;;11040:79;;:::i;:::-;11004:117;11145:78;11215:7;11206:6;11195:9;11191:22;11145:78;:::i;:::-;11135:88;;10930:303;11300:3;11289:9;11285:19;11272:33;11332:18;11324:6;11321:30;11318:117;;;11354:79;;:::i;:::-;11318:117;11459:62;11513:7;11504:6;11493:9;11489:22;11459:62;:::i;:::-;11449:72;;11243:288;10029:1509;;;;;;;;:::o;11544:115::-;11629:23;11646:5;11629:23;:::i;:::-;11624:3;11617:36;11544:115;;:::o;11665:218::-;11756:4;11794:2;11783:9;11779:18;11771:26;;11807:69;11873:1;11862:9;11858:17;11849:6;11807:69;:::i;:::-;11665:218;;;;:::o;11889:1089::-;11993:6;12001;12009;12017;12025;12074:3;12062:9;12053:7;12049:23;12045:33;12042:120;;;12081:79;;:::i;:::-;12042:120;12201:1;12226:53;12271:7;12262:6;12251:9;12247:22;12226:53;:::i;:::-;12216:63;;12172:117;12328:2;12354:53;12399:7;12390:6;12379:9;12375:22;12354:53;:::i;:::-;12344:63;;12299:118;12456:2;12482:53;12527:7;12518:6;12507:9;12503:22;12482:53;:::i;:::-;12472:63;;12427:118;12584:2;12610:53;12655:7;12646:6;12635:9;12631:22;12610:53;:::i;:::-;12600:63;;12555:118;12740:3;12729:9;12725:19;12712:33;12772:18;12764:6;12761:30;12758:117;;;12794:79;;:::i;:::-;12758:117;12899:62;12953:7;12944:6;12933:9;12929:22;12899:62;:::i;:::-;12889:72;;12683:288;11889:1089;;;;;;;;:::o;12984:116::-;13054:21;13069:5;13054:21;:::i;:::-;13047:5;13044:32;13034:60;;13090:1;13087;13080:12;13034:60;12984:116;:::o;13106:133::-;13149:5;13187:6;13174:20;13165:29;;13203:30;13227:5;13203:30;:::i;:::-;13106:133;;;;:::o;13245:323::-;13301:6;13350:2;13338:9;13329:7;13325:23;13321:32;13318:119;;;13356:79;;:::i;:::-;13318:119;13476:1;13501:50;13543:7;13534:6;13523:9;13519:22;13501:50;:::i;:::-;13491:60;;13447:114;13245:323;;;;:::o;13574:180::-;13622:77;13619:1;13612:88;13719:4;13716:1;13709:15;13743:4;13740:1;13733:15;13760:233;13799:3;13822:24;13840:5;13822:24;:::i;:::-;13813:33;;13868:66;13861:5;13858:77;13855:103;;13938:18;;:::i;:::-;13855:103;13985:1;13978:5;13974:13;13967:20;;13760:233;;;:::o;13999:180::-;14047:77;14044:1;14037:88;14144:4;14141:1;14134:15;14168:4;14165:1;14158:15;14185:169;14269:11;14303:6;14298:3;14291:19;14343:4;14338:3;14334:14;14319:29;;14185:169;;;;:::o;14360:236::-;14500:34;14496:1;14488:6;14484:14;14477:58;14569:19;14564:2;14556:6;14552:15;14545:44;14360:236;:::o;14602:366::-;14744:3;14765:67;14829:2;14824:3;14765:67;:::i;:::-;14758:74;;14841:93;14930:3;14841:93;:::i;:::-;14959:2;14954:3;14950:12;14943:19;;14602:366;;;:::o;14974:419::-;15140:4;15178:2;15167:9;15163:18;15155:26;;15227:9;15221:4;15217:20;15213:1;15202:9;15198:17;15191:47;15255:131;15381:4;15255:131;:::i;:::-;15247:139;;14974:419;;;:::o;15399:233::-;15539:34;15535:1;15527:6;15523:14;15516:58;15608:16;15603:2;15595:6;15591:15;15584:41;15399:233;:::o;15638:366::-;15780:3;15801:67;15865:2;15860:3;15801:67;:::i;:::-;15794:74;;15877:93;15966:3;15877:93;:::i;:::-;15995:2;15990:3;15986:12;15979:19;;15638:366;;;:::o;16010:419::-;16176:4;16214:2;16203:9;16199:18;16191:26;;16263:9;16257:4;16253:20;16249:1;16238:9;16234:17;16227:47;16291:131;16417:4;16291:131;:::i;:::-;16283:139;;16010:419;;;:::o;16435:147::-;16536:11;16573:3;16558:18;;16435:147;;;;:::o;16588:114::-;;:::o;16708:398::-;16867:3;16888:83;16969:1;16964:3;16888:83;:::i;:::-;16881:90;;16980:93;17069:3;16980:93;:::i;:::-;17098:1;17093:3;17089:11;17082:18;;16708:398;;;:::o;17112:379::-;17296:3;17318:147;17461:3;17318:147;:::i;:::-;17311:154;;17482:3;17475:10;;17112:379;;;:::o;17497:222::-;17637:34;17633:1;17625:6;17621:14;17614:58;17706:5;17701:2;17693:6;17689:15;17682:30;17497:222;:::o;17725:366::-;17867:3;17888:67;17952:2;17947:3;17888:67;:::i;:::-;17881:74;;17964:93;18053:3;17964:93;:::i;:::-;18082:2;18077:3;18073:12;18066:19;;17725:366;;;:::o;18097:419::-;18263:4;18301:2;18290:9;18286:18;18278:26;;18350:9;18344:4;18340:20;18336:1;18325:9;18321:17;18314:47;18378:131;18504:4;18378:131;:::i;:::-;18370:139;;18097:419;;;:::o;18522:237::-;18662:34;18658:1;18650:6;18646:14;18639:58;18731:20;18726:2;18718:6;18714:15;18707:45;18522:237;:::o;18765:366::-;18907:3;18928:67;18992:2;18987:3;18928:67;:::i;:::-;18921:74;;19004:93;19093:3;19004:93;:::i;:::-;19122:2;19117:3;19113:12;19106:19;;18765:366;;;:::o;19137:419::-;19303:4;19341:2;19330:9;19326:18;19318:26;;19390:9;19384:4;19380:20;19376:1;19365:9;19361:17;19354:47;19418:131;19544:4;19418:131;:::i;:::-;19410:139;;19137:419;;;:::o;19562:225::-;19702:34;19698:1;19690:6;19686:14;19679:58;19771:8;19766:2;19758:6;19754:15;19747:33;19562:225;:::o;19793:366::-;19935:3;19956:67;20020:2;20015:3;19956:67;:::i;:::-;19949:74;;20032:93;20121:3;20032:93;:::i;:::-;20150:2;20145:3;20141:12;20134:19;;19793:366;;;:::o;20165:419::-;20331:4;20369:2;20358:9;20354:18;20346:26;;20418:9;20412:4;20408:20;20404:1;20393:9;20389:17;20382:47;20446:131;20572:4;20446:131;:::i;:::-;20438:139;;20165:419;;;:::o;20590:180::-;20638:77;20635:1;20628:88;20735:4;20732:1;20725:15;20759:4;20756:1;20749:15;20776:176;20808:1;20825:20;20843:1;20825:20;:::i;:::-;20820:25;;20859:20;20877:1;20859:20;:::i;:::-;20854:25;;20898:1;20888:35;;20903:18;;:::i;:::-;20888:35;20944:1;20941;20937:9;20932:14;;20776:176;;;;:::o;20958:85::-;21003:7;21032:5;21021:16;;20958:85;;;:::o;21049:60::-;21077:3;21098:5;21091:12;;21049:60;;;:::o;21115:158::-;21173:9;21206:61;21224:42;21233:32;21259:5;21233:32;:::i;:::-;21224:42;:::i;:::-;21206:61;:::i;:::-;21193:74;;21115:158;;;:::o;21279:147::-;21374:45;21413:5;21374:45;:::i;:::-;21369:3;21362:58;21279:147;;:::o;21432:168::-;21515:11;21549:6;21544:3;21537:19;21589:4;21584:3;21580:14;21565:29;;21432:168;;;;:::o;21606:362::-;21747:3;21768:65;21831:1;21826:3;21768:65;:::i;:::-;21761:72;;21842:93;21931:3;21842:93;:::i;:::-;21960:1;21955:3;21951:11;21944:18;;21606:362;;;:::o;21974:875::-;22259:4;22297:3;22286:9;22282:19;22274:27;;22311:71;22379:1;22368:9;22364:17;22355:6;22311:71;:::i;:::-;22392:72;22460:2;22449:9;22445:18;22436:6;22392:72;:::i;:::-;22474;22542:2;22531:9;22527:18;22518:6;22474:72;:::i;:::-;22556:80;22632:2;22621:9;22617:18;22608:6;22556:80;:::i;:::-;22684:9;22678:4;22674:20;22668:3;22657:9;22653:19;22646:49;22712:130;22837:4;22712:130;:::i;:::-;22704:138;;21974:875;;;;;;;:::o;22855:332::-;22976:4;23014:2;23003:9;22999:18;22991:26;;23027:71;23095:1;23084:9;23080:17;23071:6;23027:71;:::i;:::-;23108:72;23176:2;23165:9;23161:18;23152:6;23108:72;:::i;:::-;22855:332;;;;;:::o;23193:143::-;23250:5;23281:6;23275:13;23266:22;;23297:33;23324:5;23297:33;:::i;:::-;23193:143;;;;:::o;23342:351::-;23412:6;23461:2;23449:9;23440:7;23436:23;23432:32;23429:119;;;23467:79;;:::i;:::-;23429:119;23587:1;23612:64;23668:7;23659:6;23648:9;23644:22;23612:64;:::i;:::-;23602:74;;23558:128;23342:351;;;;:::o;23699:224::-;23839:34;23835:1;23827:6;23823:14;23816:58;23908:7;23903:2;23895:6;23891:15;23884:32;23699:224;:::o;23929:366::-;24071:3;24092:67;24156:2;24151:3;24092:67;:::i;:::-;24085:74;;24168:93;24257:3;24168:93;:::i;:::-;24286:2;24281:3;24277:12;24270:19;;23929:366;;;:::o;24301:419::-;24467:4;24505:2;24494:9;24490:18;24482:26;;24554:9;24548:4;24544:20;24540:1;24529:9;24525:17;24518:47;24582:131;24708:4;24582:131;:::i;:::-;24574:139;;24301:419;;;:::o;24726:859::-;25003:4;25041:3;25030:9;25026:19;25018:27;;25055:71;25123:1;25112:9;25108:17;25099:6;25055:71;:::i;:::-;25136:72;25204:2;25193:9;25189:18;25180:6;25136:72;:::i;:::-;25218;25286:2;25275:9;25271:18;25262:6;25218:72;:::i;:::-;25300;25368:2;25357:9;25353:18;25344:6;25300:72;:::i;:::-;25420:9;25414:4;25410:20;25404:3;25393:9;25389:19;25382:49;25448:130;25573:4;25448:130;:::i;:::-;25440:138;;24726:859;;;;;;;:::o;25591:242::-;25731:34;25727:1;25719:6;25715:14;25708:58;25800:25;25795:2;25787:6;25783:15;25776:50;25591:242;:::o;25839:366::-;25981:3;26002:67;26066:2;26061:3;26002:67;:::i;:::-;25995:74;;26078:93;26167:3;26078:93;:::i;:::-;26196:2;26191:3;26187:12;26180:19;;25839:366;;;:::o;26211:419::-;26377:4;26415:2;26404:9;26400:18;26392:26;;26464:9;26458:4;26454:20;26450:1;26439:9;26435:17;26428:47;26492:131;26618:4;26492:131;:::i;:::-;26484:139;;26211:419;;;:::o;26636:233::-;26776:34;26772:1;26764:6;26760:14;26753:58;26845:16;26840:2;26832:6;26828:15;26821:41;26636:233;:::o;26875:366::-;27017:3;27038:67;27102:2;27097:3;27038:67;:::i;:::-;27031:74;;27114:93;27203:3;27114:93;:::i;:::-;27232:2;27227:3;27223:12;27216:19;;26875:366;;;:::o;27247:419::-;27413:4;27451:2;27440:9;27436:18;27428:26;;27500:9;27494:4;27490:20;27486:1;27475:9;27471:17;27464:47;27528:131;27654:4;27528:131;:::i;:::-;27520:139;;27247:419;;;:::o;27672:228::-;27812:34;27808:1;27800:6;27796:14;27789:58;27881:11;27876:2;27868:6;27864:15;27857:36;27672:228;:::o;27906:366::-;28048:3;28069:67;28133:2;28128:3;28069:67;:::i;:::-;28062:74;;28145:93;28234:3;28145:93;:::i;:::-;28263:2;28258:3;28254:12;28247:19;;27906:366;;;:::o;28278:419::-;28444:4;28482:2;28471:9;28467:18;28459:26;;28531:9;28525:4;28521:20;28517:1;28506:9;28502:17;28495:47;28559:131;28685:4;28559:131;:::i;:::-;28551:139;;28278:419;;;:::o;28703:79::-;28742:7;28771:5;28760:16;;28703:79;;;:::o;28788:157::-;28893:45;28913:24;28931:5;28913:24;:::i;:::-;28893:45;:::i;:::-;28888:3;28881:58;28788:157;;:::o;28951:104::-;28996:7;29025:24;29043:5;29025:24;:::i;:::-;29014:35;;28951:104;;;:::o;29061:94::-;29094:8;29142:5;29138:2;29134:14;29113:35;;29061:94;;;:::o;29161:::-;29200:7;29229:20;29243:5;29229:20;:::i;:::-;29218:31;;29161:94;;;:::o;29261:108::-;29308:7;29337:26;29357:5;29337:26;:::i;:::-;29326:37;;29261:108;;;:::o;29375:189::-;29496:61;29524:32;29550:5;29524:32;:::i;:::-;29496:61;:::i;:::-;29491:3;29484:74;29375:189;;:::o;29570:100::-;29609:7;29638:26;29658:5;29638:26;:::i;:::-;29627:37;;29570:100;;;:::o;29676:157::-;29781:45;29801:24;29819:5;29801:24;:::i;:::-;29781:45;:::i;:::-;29776:3;29769:58;29676:157;;:::o;29839:711::-;30051:3;30066:75;30137:3;30128:6;30066:75;:::i;:::-;30166:2;30161:3;30157:12;30150:19;;30179:75;30250:3;30241:6;30179:75;:::i;:::-;30279:2;30274:3;30270:12;30263:19;;30292:91;30379:3;30370:6;30292:91;:::i;:::-;30408:2;30403:3;30399:12;30392:19;;30421:75;30492:3;30483:6;30421:75;:::i;:::-;30521:2;30516:3;30512:12;30505:19;;30541:3;30534:10;;29839:711;;;;;;;:::o
Swarm Source
ipfs://e6b78e5bc9067c2bfb7abfd6760631ceab6e4db8f871b9a50b69ebf1c8292406
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
APE | 100.00% | $0.504598 | 0.4999 | $0.252274 |
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.