[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" }, { "internalType": "uint256", "name": "_totalNFTSupply", "type": "uint256" }, { "internalType": "uint256", "name": "_totalFTSupply", "type": "uint256" }, { "internalType": "string", "name": "baseTokenURI_", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "uint256", "name": "maxTotalSupply", "type": "uint256" } ], "name": "AirDropMintExceed", "type": "error" }, { "inputs": [], "name": "AlreadyExists", "type": "error" }, { "inputs": [], "name": "DecimalsTooLow", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" } ], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "InvalidApproval", "type": "error" }, { "inputs": [], "name": "InvalidExemption", "type": "error" }, { "inputs": [], "name": "InvalidOperator", "type": "error" }, { "inputs": [], "name": "InvalidRecipient", "type": "error" }, { "inputs": [], "name": "InvalidSender", "type": "error" }, { "inputs": [], "name": "InvalidSigner", "type": "error" }, { "inputs": [], "name": "InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "ftSupply", "type": "uint256" }, { "internalType": "uint256", "name": "nftSupply", "type": "uint256" } ], "name": "InvalidSupply", "type": "error" }, { "inputs": [], "name": "InvalidTokenId", "type": "error" }, { "inputs": [], "name": "MintLimitReached", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "random", "type": "uint256" }, { "internalType": "uint256", "name": "remainCount", "type": "uint256" }, { "internalType": "uint256", "name": "currentSupplySum", "type": "uint256" } ], "name": "NoAvailableNFT", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "owendLength", "type": "uint256" } ], "name": "NoNFTBurned", "type": "error" }, { "inputs": [], "name": "NotFound", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "OwnedIndexOverflow", "type": "error" }, { "inputs": [], "name": "PermitDeadlineExpired", "type": "error" }, { "inputs": [], "name": "QueueEmpty", "type": "error" }, { "inputs": [], "name": "QueueFull", "type": "error" }, { "inputs": [], "name": "RecipientIsERC721TransferExempt", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "thisAddress", "type": "address" }, { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "uint256", "name": "ownedLength", "type": "uint256" } ], "name": "TransferERC721InternalNoToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "TransferERC721NotOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "thisAddress", "type": "address" }, { "internalType": "bool", "name": "isApproved", "type": "bool" }, { "internalType": "address", "name": "approver", "type": "address" } ], "name": "TransferERC721Unauthorized", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnsafeRecipient", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "airdropContract", "type": "address" } ], "name": "AirdropContractSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "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": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "InternalERC721Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "maxTotalSupply", "type": "uint256" } ], "name": "MaxTotalSupplySet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "balancebefore", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "nftsToTransfer", "type": "uint256" } ], "name": "NFTBalanceChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "nftTypeIndex", "type": "uint256" } ], "name": "NFTBurned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "nftTypeIndex", "type": "uint256" } ], "name": "NFTClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "index", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "string", "name": "imageURI", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "weight", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rewardRate", "type": "uint256" } ], "name": "NFTTypeAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "nftTypeManager", "type": "address" } ], "name": "NFTTypeManagerSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "NFTTypeRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "index", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "string", "name": "imageURI", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "weight", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rewardRate", "type": "uint256" } ], "name": "NFTTypeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "nftBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "erc20Balance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "NeedToBurnNFT", "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": "preSaleContract", "type": "address" } ], "name": "PreSaleContractSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "rewardManagerContract", "type": "address" } ], "name": "RewardManagerContractSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Staked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "stakingContract", "type": "address" } ], "name": "StakingContractSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Transfer", "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": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ID_ENCODING_PREFIX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_imageURI", "type": "string" }, { "internalType": "uint256", "name": "_weight", "type": "uint256" }, { "internalType": "uint256", "name": "_maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "_rewardRate", "type": "uint256" } ], "name": "addNFTType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "airdropContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "valueOrId_", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "claimNFT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" } ], "name": "erc20Approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "name": "erc20BalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "erc20TotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" } ], "name": "erc20TransferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "erc721Approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "name": "erc721BalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "erc721TotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target_", "type": "address" } ], "name": "erc721TransferExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "erc721TransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user_", "type": "address" } ], "name": "getAllowedMintCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBaseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getERC721QueueLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "start_", "type": "uint256" }, { "internalType": "uint256", "name": "count_", "type": "uint256" } ], "name": "getERC721TokensInQueue", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTotalFTSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTotalNFTSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" } ], "name": "mintERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "mintForAirdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "mintForPreSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "mintForReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "mintForStaking", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "minted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftTokenTypes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftTypeManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftTypes", "outputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" }, { "internalType": "uint256", "name": "weight", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "minted", "type": "uint256" }, { "internalType": "uint256", "name": "rewardRate", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftUnit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "name": "owned", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "erc721Owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" }, { "internalType": "uint256", "name": "deadline_", "type": "uint256" }, { "internalType": "uint8", "name": "v_", "type": "uint8" }, { "internalType": "bytes32", "name": "r_", "type": "bytes32" }, { "internalType": "bytes32", "name": "s_", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "preSaleContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "removeNFTType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardManagerContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "id_", "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": "id_", "type": "uint256" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_airdropContract", "type": "address" } ], "name": "setAirdropContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator_", "type": "address" }, { "internalType": "bool", "name": "approved_", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseTokenURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxTotalSupply", "type": "uint256" } ], "name": "setMaxTotalSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_nftTypeManager", "type": "address" } ], "name": "setNFTTypeManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_preSaleContract", "type": "address" } ], "name": "setPreSaleContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardManagerContract", "type": "address" } ], "name": "setRewardManagerContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "state_", "type": "bool" } ], "name": "setSelfERC721TransferExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_stakingContract", "type": "address" } ], "name": "setStakingContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stakingContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalWeightedRemaining", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "valueOrId_", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "units", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_imageURI", "type": "string" }, { "internalType": "uint256", "name": "_weight", "type": "uint256" }, { "internalType": "uint256", "name": "_maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "_rewardRate", "type": "uint256" } ], "name": "updateNFTType", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101006040523480156200001257600080fd5b5060405162004e3738038062004e37833981016040819052620000359162000330565b858585858533806200006257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200006d816200017f565b506001805560046200008086826200047e565b5060056200008f85826200047e565b5060038360ff161015620000b6576040516398790fd560e01b815260040160405180910390fd5b60ff8316608052620000ca83600a6200065f565b60a0524660c052620000db620001cf565b60e05260a051620000ed908362000677565b60195560a051620000ff908262000677565b601881905560195411156200013757601954601854604051630b2d4e0360e01b81526004810192909252602482015260440162000059565b60a0516019546018546200014c919062000691565b62000158919062000677565b601a5550601d93506200017292508491508390506200047e565b5050505050505062000732565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6004604051620002039190620006b4565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200029357600080fd5b81516001600160401b0380821115620002b057620002b06200026b565b604051601f8301601f19908116603f01168101908282118183101715620002db57620002db6200026b565b81604052838152602092508683858801011115620002f857600080fd5b600091505b838210156200031c5785820183015181830184015290820190620002fd565b600093810190920192909252949350505050565b60008060008060008060c087890312156200034a57600080fd5b86516001600160401b03808211156200036257600080fd5b620003708a838b0162000281565b975060208901519150808211156200038757600080fd5b620003958a838b0162000281565b96506040890151915060ff82168214620003ae57600080fd5b606089015160808a015160a08b0151939750909550935080821115620003d357600080fd5b50620003e289828a0162000281565b9150509295509295509295565b600181811c908216806200040457607f821691505b6020821081036200042557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200047957600081815260208120601f850160051c81016020861015620004545750805b601f850160051c820191505b81811015620004755782815560010162000460565b5050505b505050565b81516001600160401b038111156200049a576200049a6200026b565b620004b281620004ab8454620003ef565b846200042b565b602080601f831160018114620004ea5760008415620004d15750858301515b600019600386901b1c1916600185901b17855562000475565b600085815260208120601f198616915b828110156200051b57888601518255948401946001909101908401620004fa565b50858210156200053a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005a15781600019048211156200058557620005856200054a565b808516156200059357918102915b93841c939080029062000565565b509250929050565b600082620005ba5750600162000659565b81620005c95750600062000659565b8160018114620005e25760028114620005ed576200060d565b600191505062000659565b60ff8411156200060157620006016200054a565b50506001821b62000659565b5060208310610133831016604e8410600b841016171562000632575081810a62000659565b6200063e838362000560565b80600019048211156200065557620006556200054a565b0290505b92915050565b60006200067060ff841683620005a9565b9392505050565b80820281158282048414176200065957620006596200054a565b600082620006af57634e487b7160e01b600052601260045260246000fd5b500490565b6000808354620006c481620003ef565b60018281168015620006df5760018114620006f55762000726565b60ff198416875282151583028701945062000726565b8760005260208060002060005b858110156200071d5781548a82015290840190820162000702565b50505082870194505b50929695505050505050565b60805160a05160c05160e0516146b6620007816000396000610d1801526000610ce801526000818161076401528181610db701528181610f960152612dd20152600061055d01526146b66000f3fe608060405234801561001057600080fd5b50600436106104075760003560e01c806379b2ab2311610220578063b1ab931711610130578063dd62ed3e116100b8578063ee99205c11610087578063ee99205c14610937578063f2fde38b1461094a578063f780bc1a1461095d578063fa99d84c14610970578063fe5c873a1461098357600080fd5b8063dd62ed3e146108b8578063dd637699146108e3578063dfabc033146108f6578063e985e9c51461090957600080fd5b8063b88d4fde116100ff578063b88d4fde14610864578063c5ab3ba614610877578063c87b56dd1461087f578063d505accf14610892578063d96ca0b9146108a557600080fd5b8063b1ab93171461080b578063b2c6b6dd1461082b578063b3f9ea341461083e578063b5a5b8f51461085157600080fd5b806395d89b41116101b3578063a7a822d111610182578063a7a822d1146107ac578063a8f1b524146107bf578063a9059cbb146107d2578063ab2be726146107e5578063ac390e93146107f857600080fd5b806395d89b4114610757578063976a84351461075f5780639dd373b914610786578063a22cb4651461079957600080fd5b80638a696e50116101ef5780638a696e501461070d5780638da5cb5b146107205780638db67f66146107315780638eadca361461074457600080fd5b806379b2ab23146106ad5780637c4ca9cc146106d25780637ecebe00146106e557806389fb4c661461070557600080fd5b80633bdaa9161161031b57806360b5808e116102ae5780636e8f624b1161027d5780636e8f624b1461065f5780636f0115381461066a57806370a082311461067d578063714c53981461069d578063715018a6146106a557600080fd5b806360b5808e1461061357806361aae740146106265780636352211e146106395780636b2d50811461064c57600080fd5b80634f02c420116102ea5780634f02c420146105db57806350fa37f8146105e457806355f804b3146105f757806356ec7f111461060a57600080fd5b80633bdaa916146105995780633f3e4c11146105a257806342842e0e146105b55780634d966072146105c857600080fd5b806309f0ef651161039e57806323b872dd1161036d57806323b872dd146105295780632b4c68141461053c578063308d30a014610545578063313ce567146105585780633644e5151461059157600080fd5b806309f0ef65146104fb5780630af2c6ca1461050e57806311aabc861461051757806318160ddd1461052057600080fd5b806306fdde03116103da57806306fdde031461048a578063081812fc1461049f578063095ea7b3146104e057806309674eb0146104f357600080fd5b806301ffc9a71461040c578063022d11a31461043457806302519da314610449578063042dfbc41461046a575b600080fd5b61041f61041a366004613c9b565b610996565b60405190151581526020015b60405180910390f35b610447610442366004613ccf565b6109cd565b005b61045c610457366004613ccf565b610a99565b60405190815260200161042b565b61045c610478366004613cea565b60146020526000908152604090205481565b610492610ab4565b60405161042b9190613d49565b6104c86104ad366004613cea565b600b602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161042b565b61041f6104ee366004613d5c565b610b42565b61045c610b7b565b61041f610509366004613ccf565b610ba5565b61045c60085481565b61045c60195481565b61045c60065481565b61041f610537366004613d86565b610bd7565b61045c60125481565b610447610553366004613d5c565b610c14565b61057f7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161042b565b61045c610ce4565b61045c60185481565b6104476105b0366004613cea565b610d3a565b6104476105c3366004613d86565b610e0d565b61041f6105d6366004613d5c565b610e2d565b61045c60075481565b6104476105f2366004613e6e565b610eba565b610447610605366004613eed565b611139565b61045c601a5481565b610447610621366004613d5c565b61114d565b61045c610634366004613ccf565b611233565b6104c8610647366004613cea565b611261565b601b546104c8906001600160a01b031681565b61045c600160ff1b81565b610447610678366004613ccf565b6112cb565b61045c61068b366004613ccf565b60096020526000908152604090205481565b61049261138b565b61044761141d565b6106c06106bb366004613cea565b611431565b60405161042b96959493929190613f22565b6104476106e0366004613d5c565b61158d565b61045c6106f3366004613ccf565b60106020526000908152604090205481565b60065461045c565b61044761071b366004613f7d565b611595565b6000546001600160a01b03166104c8565b61044761073f366004613f98565b6115a2565b610447610752366004613d5c565b61172d565b61049261179a565b61045c7f000000000000000000000000000000000000000000000000000000000000000081565b610447610794366004613ccf565b6117a7565b6104476107a7366004614021565b611867565b6104476107ba366004613d5c565b6118fa565b6104476107cd366004613cea565b6119da565b61041f6107e0366004613d5c565b611c02565b6015546104c8906001600160a01b031681565b610447610806366004613ccf565b611c36565b61081e610819366004613ccf565b611cfc565b60405161042b9190614054565b6017546104c8906001600160a01b031681565b61045c61084c366004613ccf565b611d68565b61044761085f366004613ccf565b611d83565b610447610872366004614098565b611e43565b60075461045c565b61049261088d366004613cea565b611f31565b6104476108a0366004614114565b6120a4565b61041f6108b3366004613d86565b6122ed565b61045c6108c6366004614187565b600a60209081526000928352604080842090915290825290205481565b6104476108f1366004613d86565b612425565b610447610904366004613d5c565b612430565b61041f610917366004614187565b600c60209081526000928352604080842090915290825290205460ff1681565b6016546104c8906001600160a01b031681565b610447610958366004613ccf565b6124f5565b61081e61096b3660046141b1565b612530565b601c546104c8906001600160a01b031681565b610447610991366004613cea565b61264d565b60006001600160e01b0319821663caf91ff560e01b14806109c757506001600160e01b031982166301ffc9a760e01b145b92915050565b6109d56127e0565b6001600160a01b038116610a4f5760405162461bcd60e51b815260206004820152603660248201527f4552433430343a204e4654547970654d616e6167657220636f6e74726163742060448201527563616e6e6f74206265207a65726f206164647265737360501b60648201526084015b60405180910390fd5b601b80546001600160a01b0319166001600160a01b0383169081179091556040517f80a8592ecb3bbc2ca89e12c7b5cf04a274c5028a1957bd31b3980cd974f4aa2890600090a250565b6001600160a01b031660009081526009602052604090205490565b60048054610ac1906141d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610aed906141d3565b8015610b3a5780601f10610b0f57610100808354040283529160200191610b3a565b820191906000526020600020905b815481529060010190602001808311610b1d57829003601f168201915b505050505081565b6000610b4d8261280d565b15610b6157610b5c8383612430565b610b72565b610b6b8383610e2d565b90506109c7565b50600192915050565b6000610ba06002546001600160801b03808216600160801b9092048116919091031690565b905090565b60006001600160a01b03821615806109c75750506001600160a01b03166000908152600f602052604090205460ff1690565b6000610be28261280d565b15610bf757610bf2848484612425565b610c09565b610c028484846122ed565b9050610c0d565b5060015b9392505050565b6015546001600160a01b03163314610c815760405162461bcd60e51b815260206004820152602a60248201527f4552433430343a2063616c6c6572206973206e6f74207468652041697264726f6044820152691c0818dbdb9d1c9858dd60b21b6064820152608401610a46565b60185481600654610c929190614223565b1115610cd65780600654610ca69190614223565b6006546018546040516380990ee560e01b8152600481019390935260248301919091526044820152606401610a46565b610ce08282612827565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000004614610d1557610ba0612831565b507f000000000000000000000000000000000000000000000000000000000000000090565b610d426127e0565b600654811015610db25760405162461bcd60e51b815260206004820152603560248201527f4552433430343a206d6178546f74616c537570706c79206d757374206265203e6044820152743d2063757272656e7420746f74616c537570706c7960581b6064820152608401610a46565b610ddc7f000000000000000000000000000000000000000000000000000000000000000082614236565b60185560405181907f0120f799fc820eabb910038e9cce6e8024add369b4d780181846e300df28448490600090a250565b610e2883838360405180602001604052806000815250611e43565b505050565b60006001600160a01b038316610e5657604051635461585f60e01b815260040160405180910390fd5b336000818152600a602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b601b546001600160a01b03163314610ee45760405162461bcd60e51b8152600401610a469061424d565b60008211610f405760405162461bcd60e51b8152602060048201526024808201527f4d617820737570706c79206d7573742062652067726561746572207468616e206044820152637a65726f60e01b6064820152608401610a46565b6000805b601154811015610f925760118181548110610f6157610f6161429e565b90600052602060002090600602016003015482610f7e9190614223565b915080610f8a816142b4565b915050610f44565b50827f0000000000000000000000000000000000000000000000000000000000000000601954610fc291906142e3565b610fcc91906142f7565b8111156110105760405162461bcd60e51b815260206004820152601260248201527109ac2f040e6eae0e0d8f240e8de40d0d2ced60731b6044820152606401610a46565b6040805160c081018252878152602081018790529081018590526060810184905260006080820181905260a08201849052601180546001810182559152815160069091027f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68019081906110839082614358565b50602082015160018201906110989082614358565b5060408201516002820155606082015160038201556080820151600482015560a0909101516005909101556110cd8385614236565b601260008282546110de9190614223565b90915550506011546110f2906001906142f7565b7fe36484c4a3fe65b4be853e71ceda3ea42e8ed0bba5037689a1d6120d53118ff18787878787604051611129959493929190614418565b60405180910390a2505050505050565b6111416127e0565b601d610ce08282614358565b6017546001600160a01b031633146111ba5760405162461bcd60e51b815260206004820152602a60248201527f4552433430343a2063616c6c6572206973206e6f74207468652050726553616c604482015269194818dbdb9d1c9858dd60b21b6064820152608401610a46565b601854816006546111cb9190614223565b1115610cd65760405162461bcd60e51b815260206004820152603160248201527f4552433430343a204d696e7420666f722070726573616c652065786365656473604482015270206d617820746f74616c20737570706c7960781b6064820152608401610a46565b600061123e601a5490565b6001600160a01b0383166000908152600960205260409020546109c791906142e3565b6000818152600d60205260409020546001600160a01b03166112828261280d565b61129f576040516307ed98ed60e31b815260040160405180910390fd5b6001600160a01b0381166112c65760405163c5723b5160e01b815260040160405180910390fd5b919050565b6112d36127e0565b6001600160a01b0381166113415760405162461bcd60e51b815260206004820152602f60248201527f4552433430343a2041697264726f7020636f6e74726163742063616e6e6f742060448201526e6265207a65726f206164647265737360881b6064820152608401610a46565b601580546001600160a01b0319166001600160a01b0383169081179091556040517fd86306f71744239f529325aee2cb35a1309c75e9d47aa809ba852950d4a189f590600090a250565b6060601d805461139a906141d3565b80601f01602080910402602001604051908101604052809291908181526020018280546113c6906141d3565b80156114135780601f106113e857610100808354040283529160200191611413565b820191906000526020600020905b8154815290600101906020018083116113f657829003601f168201915b5050505050905090565b6114256127e0565b61142f60006128cb565b565b6011818154811061144157600080fd5b9060005260206000209060060201600091509050806000018054611464906141d3565b80601f0160208091040260200160405190810160405280929190818152602001828054611490906141d3565b80156114dd5780601f106114b2576101008083540402835291602001916114dd565b820191906000526020600020905b8154815290600101906020018083116114c057829003601f168201915b5050505050908060010180546114f2906141d3565b80601f016020809104026020016040519081016040528092919081815260200182805461151e906141d3565b801561156b5780601f106115405761010080835404028352916020019161156b565b820191906000526020600020905b81548152906001019060200180831161154e57829003601f168201915b5050505050908060020154908060030154908060040154908060050154905086565b610cd66127e0565b61159f338261291b565b50565b601b546001600160a01b031633146115cc5760405162461bcd60e51b8152600401610a469061424d565b60115486106115ed5760405162461bcd60e51b8152600401610a469061445b565b6000601187815481106116025761160261429e565b9060005260206000209060060201905080600401548310156116665760405162461bcd60e51b815260206004820152601f60248201527f4e6577206d617820737570706c79206c657373207468616e206d696e746564006044820152606401610a46565b8060030154816002015461167a9190614236565b6012600082825461168b91906142f7565b9091555061169b90508385614236565b601260008282546116ac9190614223565b909155508190506116bd8782614358565b50600181016116cc8682614358565b5060028101849055600381018390556005810182905560405187907f7be94396221c3ece95e6950ca673513e9bd1845beb5ad104f8c93a5ad6f7b4e09061171c9089908990899089908990614418565b60405180910390a250505050505050565b6016546001600160a01b03163314610cd65760405162461bcd60e51b815260206004820152602a60248201527f4552433430343a2063616c6c6572206973206e6f7420746865205374616b696e60448201526919c818dbdb9d1c9858dd60b21b6064820152608401610a46565b60058054610ac1906141d3565b6117af6127e0565b6001600160a01b03811661181d5760405162461bcd60e51b815260206004820152602f60248201527f4552433430343a205374616b696e6720636f6e74726163742063616e6e6f742060448201526e6265207a65726f206164647265737360881b6064820152608401610a46565b601680546001600160a01b0319166001600160a01b0383169081179091556040517f1253844b0fff3da7dd2829de816c9b4f94c238cf2bf6eb72c02c7d6f2b53beac90600090a250565b6001600160a01b03821661188e5760405163ccea9e6f60e01b815260040160405180910390fd5b336000818152600c602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b601c546001600160a01b0316331461196d5760405162461bcd60e51b815260206004820152603060248201527f4552433430343a2063616c6c6572206973206e6f74207468652052657761726460448201526f13585b9859d95c8818dbdb9d1c9858dd60821b6064820152608401610a46565b6018548160065461197e9190614223565b1115610cd65760405162461bcd60e51b815260206004820152602560248201527f4552433430343a204d696e742065786365656473206d617820746f74616c20736044820152647570706c7960d81b6064820152608401610a46565b601b546001600160a01b03163314611a045760405162461bcd60e51b8152600401610a469061424d565b6011548110611a255760405162461bcd60e51b8152600401610a469061445b565b600060118281548110611a3a57611a3a61429e565b906000526020600020906006020190508060040154600014611ab05760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f742072656d6f7665204e465420747970652077697468206d696e74604482015268656420746f6b656e7360b81b6064820152608401610a46565b80600301548160020154611ac49190614236565b60126000828254611ad591906142f7565b909155505060118054611aea906001906142f7565b81548110611afa57611afa61429e565b906000526020600020906006020160118381548110611b1b57611b1b61429e565b6000918252602090912060069091020180611b36838261448b565b50600181810190611b499084018261448b565b50600282015481600201556003820154816003015560048201548160040155600582015481600501559050506011805480611b8657611b86614566565b60008281526020812060001990920191600683020190611ba68282613c37565b611bb4600183016000613c37565b5060006002820181905560038201819055600482018190556005909101819055915560405183917fc68cb6f4b6a5478b170b419c35c2ecd0662438b2094b4660ae1af00a9c7bc40a91a25050565b60006001600160a01b038316611c2b57604051634e46966960e11b815260040160405180910390fd5b610c0d33848461298a565b611c3e6127e0565b6001600160a01b038116611cb25760405162461bcd60e51b815260206004820152603560248201527f4552433430343a205265776172644d616e6167657220636f6e74726163742063604482015274616e6e6f74206265207a65726f206164647265737360581b6064820152608401610a46565b601c80546001600160a01b0319166001600160a01b0383169081179091556040517fcb2577f9aa44a9f3608c0322384ec12ca316762792a6378b11cd671afeacac4390600090a250565b6001600160a01b0381166000908152600e6020908152604091829020805483518184028101840190945280845260609392830182828015611d5c57602002820191906000526020600020905b815481526020019060010190808311611d48575b50505050509050919050565b6001600160a01b03166000908152600e602052604090205490565b611d8b6127e0565b6001600160a01b038116611df95760405162461bcd60e51b815260206004820152602f60248201527f4552433430343a2050726553616c6520636f6e74726163742063616e6e6f742060448201526e6265207a65726f206164647265737360881b6064820152608401610a46565b601780546001600160a01b0319166001600160a01b0383169081179091556040517f279cdfa5346bd8c0deeed19230e6824e37548aa266209735c12963a3b020cf3290600090a250565b611e4c8261280d565b611e69576040516307ed98ed60e31b815260040160405180910390fd5b611e74848484610bd7565b506001600160a01b0383163b15801590611f0d5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290611ebd90339089908890889060040161457c565b6020604051808303816000875af1158015611edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0091906145b9565b6001600160e01b03191614155b15611f2b57604051633da6393160e01b815260040160405180910390fd5b50505050565b6060611f3c8261280d565b611f9d5760405162461bcd60e51b815260206004820152602c60248201527f455243343034546f6b656e3a2055524920717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a46565b6000828152600d60205260409020546001600160a01b0316611fdb575050604080518082019091526006815265189d5c9b995960d21b602082015290565b60008281526014602052604081205460118054919291839081106120015761200161429e565b9060005260206000209060060201600101805461201d906141d3565b80601f0160208091040260200160405190810160405280929190818152602001828054612049906141d3565b80156120965780601f1061206b57610100808354040283529160200191612096565b820191906000526020600020905b81548152906001019060200180831161207957829003601f168201915b509398975050505050505050565b428410156120c5576040516305787bdf60e01b815260040160405180910390fd5b6120ce8561280d565b156120ec576040516303e7c1bd60e31b815260040160405180910390fd5b6001600160a01b03861661211357604051635461585f60e01b815260040160405180910390fd5b6000600161211f610ce4565b6001600160a01b038a811660008181526010602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e083019091528051920191909120675c7831395c78303160c01b6101008301526101088201929092526101288101919091526101480160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015612231573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615806122665750876001600160a01b0316816001600160a01b031614155b1561228457604051632057875960e21b815260040160405180910390fd5b6001600160a01b039081166000908152600a602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60006001600160a01b03841661231657604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b03831661233d57604051634e46966960e11b815260040160405180910390fd5b6001600160a01b0384163314612412576001600160a01b0384166000908152600a6020908152604080832033845290915290205460001981146123e2576001600160a01b038516331480159061239257508281105b156123e257604051630dadc7bb60e01b8152600481018290526024810184905260606044820152601160648201527065726332305472616e7366657246726f6d60781b608482015260a401610a46565b6123ec83826142f7565b6001600160a01b0386166000908152600a60209081526040808320338452909152902055505b61241d84848461298a565b949350505050565b610e28838383612b8c565b6000818152600d60205260409020546001600160a01b031633811480159061247c57506001600160a01b0381166000908152600c6020908152604080832033845290915290205460ff16155b15612499576040516282b42960e81b815260040160405180910390fd5b6000828152600b602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6124fd6127e0565b6001600160a01b03811661252757604051631e4fbdf760e01b815260006004820152602401610a46565b61159f816128cb565b6060600061253c610b7b565b905080841061258d5760405162461bcd60e51b815260206004820152601960248201527f537461727420696e646578206f7574206f6620626f756e6473000000000000006044820152606401610a46565b60006125998486614223565b9050818111156125a65750805b60006125b286836142f7565b67ffffffffffffffff8111156125ca576125ca613dc2565b6040519080825280602002602001820160405280156125f3578160200160208202803683370190505b509050855b828110156126435761260b816001614223565b8261261689846142f7565b815181106126265761262661429e565b60209081029190910101528061263b816142b4565b9150506125f8565b5095945050505050565b612655612d5a565b6000612660601a5490565b336000908152600960205260409020549091508211156126d25760405162461bcd60e51b815260206004820152602760248201527f496e73756666696369656e742045524332302062616c616e636520746f20636c604482015266185a5b4813919560ca1b6064820152608401610a46565b60006126de82846142e3565b90506000811161273c5760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f75676820455243323020746f6b656e7320746f20636c61696d6044820152630813919560e21b6064820152608401610a46565b61274533611233565b81111561279e5760405162461bcd60e51b815260206004820152602160248201527f4d696e74696e67206578636565647320616c6c6f776564204e465420636f756e6044820152601d60fa1b6064820152608401610a46565b60005b818110156127d45760006127b3612d84565b90506127bf3382612f7b565b505080806127cc906142b4565b9150506127a1565b50505061159f60018055565b6000546001600160a01b0316331461142f5760405163118cdaa760e01b8152336004820152602401610a46565b6000600160ff1b82101580156109c7575050600019141590565b610ce08282612f87565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600460405161286391906145d6565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166129425760405163a41e3d3f60e01b815260040160405180910390fd5b80156129565761295182612fea565b61295f565b61295f82613013565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60008061299685610a99565b90506129a385858561305f565b600083601a546129b288611d68565b6129bc9190614236565b6129c69190614223565b821015612a59577f5e9e33d7c3867c490c1ef37436a291d111bdfb914a16e665adbd3ed604391e2e6129f787611d68565b612a0088610a99565b604080519283526020830191909152810186905260600160405180910390a1601a54828582612a2e8a611d68565b612a389190614236565b612a429190614223565b612a4c91906142f7565b612a5691906142e3565b90505b60005b81811015612aaa576001600160a01b0387166000908152600e602052604090205415612aaa576001600160a01b03871615612a9a57612a9a876131aa565b612aa3816142b4565b9050612a5c565b50601a54612ab89082614236565b612ac187610a99565b612acb90846142f7565b118015612af45750601a54612adf87611d68565b612ae99190614236565b612af287610a99565b105b15612b36576001600160a01b03861615801590612b2857506001600160a01b0386166000908152600e602052604090205415155b15612b3657612b36866131aa565b7f2faab923bce7710b41f3bde532158a9d6e08eaf968e836fa9a794852ca64880882612b6188610a99565b604080519283526020830191909152810183905260600160405180910390a150600195945050505050565b6001600160a01b038316612bb357604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b038216612bda57604051634e46966960e11b815260040160405180910390fd5b6000818152600d60205260409020546001600160a01b03848116911614612c36576000818152600d60205260409081902054905163d842837160e01b81523360048201526001600160a01b039091166024820152604401610a46565b6001600160a01b038316301480612d1b57336001600160a01b03851614801590612c8457506001600160a01b0384166000908152600c6020908152604080832033845290915290205460ff16155b8015612ca757506000828152600b60205260409020546001600160a01b03163314155b15612d1b576001600160a01b038481166000818152600c602090815260408083203380855290835281842054888552600b90935292819020549051631065fdef60e31b81526004810193909352602483019390935230604483015260ff16151560648201529116608482015260a401610a46565b612d2483610ba5565b15612d4257604051635ce7539760e01b815260040160405180910390fd5b612d4f8484601a5461305f565b611f2b848484613420565b600260015403612d7d57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b60008060125411612dcb5760405162461bcd60e51b81526020600482015260116024820152704e6f204e4654732072656d61696e696e6760781b6044820152606401610a46565b60006008547f0000000000000000000000000000000000000000000000000000000000000000601954612dfe91906142e3565b612e0891906142f7565b90506000814233600754604051602001612e479392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b6040516020818303038152906040528051906020012060001c612e6a919061464c565b90506000805b601154811015612f505760118181548110612e8d57612e8d61429e565b90600052602060002090600602016004015460118281548110612eb257612eb261429e565b906000526020600020906006020160030154612ece91906142f7565b612ed89083614223565b9150818311158015612f31575060118181548110612ef857612ef861429e565b90600052602060002090600602016003015460118281548110612f1d57612f1d61429e565b906000526020600020906006020160040154105b15612f3e57949350505050565b80612f48816142b4565b915050612e70565b50604051630f68480360e01b8152600481018390526024810184905260448101829052606401610a46565b6000610c0d8383613653565b6001600160a01b038216612fae57604051634e46966960e11b815260040160405180910390fd5b80601854612fbc91906142f7565b6006541115612fde5760405163303b682f60e01b815260040160405180910390fd5b610ce06000838361305f565b6000612ff582611d68565b905060005b81811015610e285761300b8361382e565b600101612ffa565b6000601a5461302183610a99565b61302b91906142e3565b9050600061303883611d68565b905060005b61304782846142f7565b811015611f2b57613057846138ae565b60010161303d565b6001600160a01b03831661308a57806006600082825461307f9190614223565b9091555061313b9050565b6001600160a01b03831660009081526009602052604090205481111561310d576001600160a01b03831660009081526009602052604090819020549051630dadc7bb60e01b815260048101919091526024810182905260606044820152600e60648201526d05f7472616e7366657245524332360941b608482015260a401610a46565b6001600160a01b038316600090815260096020526040812080548392906131359084906142f7565b90915550505b6001600160a01b03821660009081526009602052604081208054839290613163908490614223565b92505081905550816001600160a01b0316836001600160a01b03166000805160206146618339815191528360405161319d91815260200190565b60405180910390a3505050565b6001600160a01b0381166000908152600e60205260409020546131fe576001600160a01b0381166000908152600e6020526040908190205490516301895bc160e31b81526004810191909152602401610a46565b6000613209826139e5565b60008181526014602052604090205460115491925090811061323d5760405162461bcd60e51b8152600401610a469061445b565b6001600160a01b0383166000908152600e60205260408120905b815481101561330b57838282815481106132735761327361429e565b9060005260206000200154036132f95781548290613293906001906142f7565b815481106132a3576132a361429e565b90600052602060002001548282815481106132c0576132c061429e565b9060005260206000200181905550818054806132de576132de614566565b6001900381819060005260206000200160009055905561330b565b80613303816142b4565b915050613257565b506000838152600d60209081526040808320839055600b825280832080546001600160a01b03191690556014909152812081905560118054849081106133535761335361429e565b90600052602060002090600602019050600181600401600082825461337891906142f7565b9250508190555060016008600082825461339291906142f7565b90915550506002810154601280546000906133ae9084906142f7565b909155505060405183815284906001600160a01b038716907f9e4cd44a214c290e24a6167c728ce9a6e706dce33171779ea77807f9ab73cf879060200160405180910390a360405184906000906001600160a01b03881690600080516020614661833981519152908390a45050505050565b6001600160a01b038316156135a9576000818152600b6020908152604080832080546001600160a01b03191690556001600160a01b0386168352600e9091529020546134a8576001600160a01b0383166000818152600e602052604090819020549051637379300360e11b815230600482015260248101929092526044820152606401610a46565b6001600160a01b0383166000908152600e60205260408120546134cd906001906142f7565b6001600160a01b0385166000908152600e6020526040812080549293509091839081106134fc576134fc61429e565b90600052602060002001549050828114613569576000838152600d602052604081205460a01c6001600160a01b0387166000908152600e6020526040902080549192508391839081106135515761355161429e565b6000918252602090912001556135678282613aae565b505b6001600160a01b0385166000908152600e6020526040902080548061359057613590614566565b6001900381819060005260206000200160009055905550505b6001600160a01b0382161561360f576135c28183613b1a565b6001600160a01b0382166000818152600e6020908152604082208054600181810183558285529284200185905592909152905461360a91839161360591906142f7565b613aae565b61361f565b6000818152600d60205260408120555b80826001600160a01b0316846001600160a01b031660008051602061466183398151915260405160405180910390a4505050565b60115460009082106136775760405162461bcd60e51b8152600401610a469061445b565b60006011838154811061368c5761368c61429e565b9060005260206000209060060201905080600301548160040154106136f35760405162461bcd60e51b815260206004820152601b60248201527f4e46542074797065206d617820737570706c79207265616368656400000000006044820152606401610a46565b6000600754600160ff1b6137079190614223565b905060016007600082825461371c9190614223565b925050819055506001600860008282546137369190614223565b9091555061374690508186613b1a565b6001600160a01b0385166000908152600e60209081526040808320805460018181018355918552838520018590558484526014909252822086905560048401805491929091613796908490614223565b90915550506001600160a01b038516600081815260136020908152604080832080546001810182559084529183209091018490555183929190600080516020614661833981519152908290a480856001600160a01b03167fd93bbb9e10b7af5aa4b410ac845ae87a717d305e8a4777959ad1dd06e6a1ac988660405161381e91815260200190565b60405180910390a3949350505050565b6001600160a01b03811661385557604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600e60205260408120805461387b906001906142f7565b8154811061388b5761388b61429e565b906000526020600020015490506138a3823083613420565b610ce0600282613b49565b6001600160a01b0381166138d557604051634e46966960e11b815260040160405180910390fd5b60006138f5600254600160801b81046001600160801b0390811691161490565b61390a576139036002613bbc565b9050613988565b61391760016000196142f7565b600754106139385760405163303b682f60e01b815260040160405180910390fd5b6000613942612d84565b905061394e3082612f7b565b60405181815290925030907f683429d440154967e80b64cf887931f35c8be3a4d91c5fddefaefdcdb239a2159060200160405180910390a2505b6000818152600d60205260409020546001600160a01b03163081146139bf576040516282b42960e81b815260040160405180910390fd5b306001600160a01b038216036139da57610e28308484613c2c565b610e28308484612b8c565b6000806139f183611cfc565b90506000196000805b8351811015613aa5576000848281518110613a1757613a1761429e565b602002602001015190506000601460008381526020019081526020016000205490508460118281548110613a4d57613a4d61429e565b9060005260206000209060060201600501541015613a905760118181548110613a7857613a7861429e565b90600052602060002090600602016005015494508193505b50508080613a9d906142b4565b9150506139fa565b50949350505050565b6000828152600d60205260409020546bffffffffffffffffffffffff821115613aea57604051633f2cd0e360e21b815260040160405180910390fd5b6000928352600d60205260409092206001600160a01b039290921660a09190911b6001600160a01b031916019055565b6000918252600d602052604090912080546001600160a01b0319166001600160a01b0392909216919091019055565b81546001600160801b038082166000190191600160801b9004811690821603613b8557604051638acb5f2760e01b815260040160405180910390fd5b6001600160801b0316600081815260018401602052604090209190915581546fffffffffffffffffffffffffffffffff1916179055565b80546000906001600160801b03600160801b8204811691168103613bf3576040516375e52f4f60e01b815260040160405180910390fd5b600019016001600160801b039081166000818152600185016020526040812080549190558454909216600160801b909102179092555090565b610e28838383613420565b508054613c43906141d3565b6000825580601f10613c53575050565b601f01602090049060005260206000209081019061159f91905b80821115613c815760008155600101613c6d565b5090565b6001600160e01b03198116811461159f57600080fd5b600060208284031215613cad57600080fd5b8135610c0d81613c85565b80356001600160a01b03811681146112c657600080fd5b600060208284031215613ce157600080fd5b610c0d82613cb8565b600060208284031215613cfc57600080fd5b5035919050565b6000815180845260005b81811015613d2957602081850181015186830182015201613d0d565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610c0d6020830184613d03565b60008060408385031215613d6f57600080fd5b613d7883613cb8565b946020939093013593505050565b600080600060608486031215613d9b57600080fd5b613da484613cb8565b9250613db260208501613cb8565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115613df357613df3613dc2565b604051601f8501601f19908116603f01168101908282118183101715613e1b57613e1b613dc2565b81604052809350858152868686011115613e3457600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112613e5f57600080fd5b610c0d83833560208501613dd8565b600080600080600060a08688031215613e8657600080fd5b853567ffffffffffffffff80821115613e9e57600080fd5b613eaa89838a01613e4e565b96506020880135915080821115613ec057600080fd5b50613ecd88828901613e4e565b959895975050505060408401359360608101359360809091013592509050565b600060208284031215613eff57600080fd5b813567ffffffffffffffff811115613f1657600080fd5b61241d84828501613e4e565b60c081526000613f3560c0830189613d03565b8281036020840152613f478189613d03565b9150508560408301528460608301528360808301528260a0830152979650505050505050565b803580151581146112c657600080fd5b600060208284031215613f8f57600080fd5b610c0d82613f6d565b60008060008060008060c08789031215613fb157600080fd5b86359550602087013567ffffffffffffffff80821115613fd057600080fd5b613fdc8a838b01613e4e565b96506040890135915080821115613ff257600080fd5b50613fff89828a01613e4e565b945050606087013592506080870135915060a087013590509295509295509295565b6000806040838503121561403457600080fd5b61403d83613cb8565b915061404b60208401613f6d565b90509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561408c57835183529284019291840191600101614070565b50909695505050505050565b600080600080608085870312156140ae57600080fd5b6140b785613cb8565b93506140c560208601613cb8565b925060408501359150606085013567ffffffffffffffff8111156140e857600080fd5b8501601f810187136140f957600080fd5b61410887823560208401613dd8565b91505092959194509250565b600080600080600080600060e0888a03121561412f57600080fd5b61413888613cb8565b965061414660208901613cb8565b95506040880135945060608801359350608088013560ff8116811461416a57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561419a57600080fd5b6141a383613cb8565b915061404b60208401613cb8565b600080604083850312156141c457600080fd5b50508035926020909101359150565b600181811c908216806141e757607f821691505b60208210810361420757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c7576109c761420d565b80820281158282048414176109c7576109c761420d565b60208082526031908201527f4552433430343a2063616c6c6572206973206e6f7420746865204e46545479706040820152701953585b9859d95c8818dbdb9d1c9858dd607a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016142c6576142c661420d565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826142f2576142f26142cd565b500490565b818103818111156109c7576109c761420d565b601f821115610e2857600081815260208120601f850160051c810160208610156143315750805b601f850160051c820191505b818110156143505782815560010161433d565b505050505050565b815167ffffffffffffffff81111561437257614372613dc2565b6143868161438084546141d3565b8461430a565b602080601f8311600181146143bb57600084156143a35750858301515b600019600386901b1c1916600185901b178555614350565b600085815260208120601f198616915b828110156143ea578886015182559484019460019091019084016143cb565b50858210156144085787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60a08152600061442b60a0830188613d03565b828103602084015261443d8188613d03565b60408401969096525050606081019290925260809091015292915050565b602080825260169082015275092dcecc2d8d2c8409c8ca840e8f2e0ca40d2dcc8caf60531b604082015260600190565b818103614496575050565b6144a082546141d3565b67ffffffffffffffff8111156144b8576144b8613dc2565b6144c68161438084546141d3565b6000601f8211600181146144fa57600083156144e25750848201545b600019600385901b1c1916600184901b17845561455f565b600085815260209020601f19841690600086815260209020845b838110156145345782860154825560019586019590910190602001614514565b50858310156145525781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906145af90830184613d03565b9695505050505050565b6000602082840312156145cb57600080fd5b8151610c0d81613c85565b60008083546145e4816141d3565b600182811680156145fc576001811461461157614640565b60ff1984168752821515830287019450614640565b8760005260208060002060005b858110156146375781548a82015290840190820161461e565b50505082870194505b50929695505050505050565b60008261465b5761465b6142cd565b50069056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ab943fdc61fd4920e39156aa808a9c88ece6ebf4c3c86a625783f856d0d12b5564736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000030d400000000000000000000000000000000000000000000000000000002e90edd0000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000c526564426c756550696c6c73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035242500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005d68747470733a2f2f657175616c2d62726f776e2d636f756761722e6d7966696c65626173652e636f6d2f697066732f516d633651446d6e42556842514277734852453761624356656e5377527936546f68677a626e6b43544e68523648000000