[ { "inputs": [ { "internalType": "uint256", "name": "_minGasToTransfer", "type": "uint256" }, { "internalType": "address", "name": "_lzEndpoint", "type": "address" }, { "internalType": "uint256", "name": "_startMintId", "type": "uint256" }, { "internalType": "uint256", "name": "_endMintId", "type": "uint256" }, { "internalType": "uint256", "name": "_mintFee", "type": "uint256" }, { "internalType": "uint256", "name": "_bridgeFee", "type": "uint256" }, { "internalType": "address", "name": "_feeCollector", "type": "address" }, { "internalType": "uint256", "name": "_referralEarningBips", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "errorCode", "type": "uint256" } ], "name": "WomexONFT721_CoreError", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "oldBridgeFee", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "newBridgeFee", "type": "uint256" } ], "name": "BridgeFeeChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "uint16", "name": "dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "BridgeFeeEarned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "_hashedPayload", "type": "bytes32" } ], "name": "CreditCleared", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "_hashedPayload", "type": "bytes32" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "CreditStored", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "referrer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "newEraningBips", "type": "uint256" } ], "name": "EarningBipsForReferrerChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address[]", "name": "referrers", "type": "address[]" }, { "indexed": false, "internalType": "uint256", "name": "newEraningBips", "type": "uint256" } ], "name": "EarningBipsForReferrersChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldFeeCollector", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newFeeCollector", "type": "address" } ], "name": "FeeCollectorChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "collector", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "claimedAmount", "type": "uint256" } ], "name": "FeeEarningsClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "_reason", "type": "bytes" } ], "name": "MessageFailed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "oldMintFee", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "newMintFee", "type": "uint256" } ], "name": "MintFeeChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "itemId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "feeEarnings", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "referrer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "referrerEarnings", "type": "uint256" } ], "name": "ONFTMinted", "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": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": true, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": true, "internalType": "address", "name": "_toAddress", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" } ], "name": "ReceiveFromChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "oldReferralEarningBips", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "newReferralEarningBips", "type": "uint256" } ], "name": "ReferralEarningBipsChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "referrer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "claimedAmount", "type": "uint256" } ], "name": "ReferrerEarningsClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes32", "name": "_payloadHash", "type": "bytes32" } ], "name": "RetryMessageSuccess", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": true, "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" } ], "name": "SendToChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "_dstChainIdToBatchLimit", "type": "uint256" } ], "name": "SetDstChainIdToBatchLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "_dstChainIdToTransferGas", "type": "uint256" } ], "name": "SetDstChainIdToTransferGas", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "_type", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "_minDstGas", "type": "uint256" } ], "name": "SetMinDstGas", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_minGasToTransferAndStore", "type": "uint256" } ], "name": "SetMinGasToTransferAndStore", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "precrime", "type": "address" } ], "name": "SetPrecrime", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "SetTrustedRemote", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "SetTrustedRemoteAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "oldTokenURI", "type": "string" }, { "indexed": true, "internalType": "string", "name": "newTokenURI", "type": "string" }, { "indexed": false, "internalType": "string", "name": "fileExtension", "type": "string" } ], "name": "TokenURIChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bool", "name": "newState", "type": "bool" } ], "name": "TokenURILocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_PAYLOAD_SIZE_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DENOMINATOR", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERROR_INVALID_COLLECTOR_ADDRESS", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERROR_INVALID_REFERER", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERROR_INVALID_TOKEN_ID", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERROR_INVALID_URI_LOCK_STATE", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERROR_MINT_EXCEEDS_LIMIT", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERROR_MINT_INVALID_FEE", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERROR_NOTHING_TO_CLAIM", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERROR_NOT_FEE_COLLECTOR", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERROR_REFERRAL_BIPS_TOO_HIGH", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FIFTY_PERCENT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FUNCTION_TYPE_SEND", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ONE_HUNDRED_PERCENT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "batchMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" }, { "internalType": "address", "name": "referrer", "type": "address" } ], "name": "batchMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "bridgeFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimFeeEarnings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimReferrerEarnings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "clearCredits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "dstChainIdToBatchLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "dstChainIdToTransferGas", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "estimateSendBatchFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "estimateSendFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint64", "name": "", "type": "uint64" } ], "name": "failedMessages", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeClaimedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeCollector", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeEarnedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "forceResumeReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" } ], "name": "getConfig", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" } ], "name": "getTrustedRemoteAddress", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "isTrustedRemote", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lzEndpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpoint", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxMintId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "minDstGasLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minGasToTransferAndStore", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "nonblockingLzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "payloadSizeLimitLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "precrime", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "referralEarningBips", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "referredTransactionsCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "referrersClaimedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "referrersEarnedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "referrersEarningBips", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "retryMessage", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" }, { "internalType": "address payable", "name": "_refundAddress", "type": "address" }, { "internalType": "address", "name": "_zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "sendBatchFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address payable", "name": "_refundAddress", "type": "address" }, { "internalType": "address", "name": "_zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "sendFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_bridgeFee", "type": "uint256" } ], "name": "setBridgeFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" }, { "internalType": "bytes", "name": "_config", "type": "bytes" } ], "name": "setConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_dstChainIdToBatchLimit", "type": "uint256" } ], "name": "setDstChainIdToBatchLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_dstChainIdToTransferGas", "type": "uint256" } ], "name": "setDstChainIdToTransferGas", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "referrer", "type": "address" }, { "internalType": "uint256", "name": "earningBips", "type": "uint256" } ], "name": "setEarningBipsForReferrer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "referrers", "type": "address[]" }, { "internalType": "uint256", "name": "earningBips", "type": "uint256" } ], "name": "setEarningBipsForReferrersBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_feeCollector", "type": "address" } ], "name": "setFeeCollector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint16", "name": "_packetType", "type": "uint16" }, { "internalType": "uint256", "name": "_minGas", "type": "uint256" } ], "name": "setMinDstGas", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minGasToTransferAndStore", "type": "uint256" } ], "name": "setMinGasToTransferAndStore", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mintFee", "type": "uint256" } ], "name": "setMintFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_size", "type": "uint256" } ], "name": "setPayloadSizeLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_precrime", "type": "address" } ], "name": "setPrecrime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setReceiveVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_referralEarninBips", "type": "uint256" } ], "name": "setReferralEarningBips", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setSendVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newTokenBaseURI", "type": "string" }, { "internalType": "string", "name": "_fileExtension", "type": "string" } ], "name": "setTokenBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "locked", "type": "bool" } ], "name": "setTokenBaseURILocked", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "setTrustedRemote", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "setTrustedRemoteAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startMintId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "storedCredits", "outputs": [ { "internalType": "uint16", "name": "srcChainId", "type": "uint16" }, { "internalType": "address", "name": "toAddress", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "bool", "name": "creditsRemain", "type": "bool" } ], "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": [], "name": "tokenBaseURILocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenCounter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "trustedRemoteLookup", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" } ]
60e06040523480156200001157600080fd5b506040516200649f3803806200649f833981016040819052620000349162000321565b604051806040016040528060058152602001640aededacaf60db1b815250604051806040016040528060038152602001620ae9ab60eb1b8152508989838383838080620000906200008a620002b060201b60201c565b620002b4565b6001600160a01b031660805250600160065581620001015760405162461bcd60e51b8152602060048201526024808201527f6d696e476173546f5472616e73666572416e6453746f7265206d7573742062656044820152630203e20360e41b60648201526084015b60405180910390fd5b50600755600b62000113838262000438565b50600c62000122828262000438565b505050505050508486106200016f5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206d696e742072616e676560701b6044820152606401620000f8565b6000198510620001c25760405162461bcd60e51b815260206004820152601560248201527f496e636f7272656374206d6178206d696e7420494400000000000000000000006044820152606401620000f8565b6001600160a01b0382166200021a5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642066656520636f6c6c6563746f7220616464726573730000006044820152606401620000f8565b6113888111156200026e5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420726566657272616c206561726e696e6720736861726573006044820152606401620000f8565b60a086905260c094909452601692909255601755601880546001600160a01b0319166001600160a01b03909216919091179055601b5560155550620005049050565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200031c57600080fd5b919050565b600080600080600080600080610100898b0312156200033f57600080fd5b885197506200035160208a0162000304565b965060408901519550606089015194506080890151935060a089015192506200037d60c08a0162000304565b915060e089015190509295985092959890939650565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003be57607f821691505b602082108103620003df57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200043357600081815260208120601f850160051c810160208610156200040e5750805b601f850160051c820191505b818110156200042f578281556001016200041a565b5050505b505050565b81516001600160401b0381111562000454576200045462000393565b6200046c81620004658454620003a9565b84620003e5565b602080601f831160018114620004a457600084156200048b5750858301515b600019600386901b1c1916600185901b1785556200042f565b600085815260208120601f198616915b82811015620004d557888601518255948401946001909101908401620004b4565b5085821015620004f45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c051615f1e6200058160003960008181610f70015281816117d5015281816120e8015261287601526000610863015260008181610d46015281816110ec015281816115070152818161178b01528181611c1201528181612b920152818161315501528181613c0301526147f80152615f1e6000f3fe6080604052600436106105015760003560e01c80638da5cb5b11610297578063c6f0995611610165578063e0381d7d116100cc578063eb8d72b711610085578063eb8d72b71461101c578063eddd0d9c1461103c578063f23536411461105c578063f2fde38b1461107c578063f5ecbdbc1461109c578063fa25f9b6146110bc57600080fd5b8063e0381d7d14610f48578063e1d4c87014610f5e578063e985e9c514610f92578063e9c9637914610fdb578063ea0d9e1814610ff0578063eb56c4851461100657600080fd5b8063d082e3811161011e578063d082e38114610ebf578063d12473a514610ed5578063d1deba1f14610ef5578063dd0081c714610bd9578063df2a5b3b14610f08578063df329fc114610f2857600080fd5b8063c6f0995614610e08578063c74046f914610e1d578063c87b56dd14610e32578063cbc1418a14610e52578063cbed8b9c14610e72578063cf836dc314610e9257600080fd5b8063a22cb46511610209578063b88d4fde116101c2578063b88d4fde14610d68578063baf3292d14610d88578063c2690cb614610da8578063c2f637dc14610dd5578063c415b95c14610de8578063c446183414610bd957600080fd5b8063a22cb46514610c99578063a42dce8014610cb9578063a6c3d16514610cd9578063ab3ffb9314610cf9578063af3fb21c14610d0c578063b353aaa714610d3457600080fd5b8063950c8a741161025b578063950c8a7414610bef57806395d89b4114610c0f578063998cdf8314610c245780639ae0088314610c445780639ea5d6b114610c595780639f38369a14610c7957600080fd5b80638da5cb5b14610b665780638fda89aa14610b845780638ffa1f2a14610ba457806390df2ecb14610bc4578063918f867414610bd957600080fd5b80633d8b38f6116103d457806362c9cd58116103465780637533d788116102ff5780637533d78814610ab657806382b12dd714610ad6578063833508a714610aec5780638467be0d14610b015780638985271514610b145780638cfd8f5c14610b2e57600080fd5b806362c9cd5814610a015780636352211e14610a2157806366ad5c8a14610a415780636798a98e14610a6157806370a0823114610a81578063715018a614610aa157600080fd5b80634ac3f4ff116103985780634ac3f4ff146109285780634f6ccce7146109555780635190563614610975578063531fadbc146109885780635b8c41e61461099d5780636190a958146109ec57600080fd5b80633d8b38f6146108855780633f1f4fa4146108a557806342842e0e146108d257806342d65a8d146108f2578063482881901461091257600080fd5b80631249c58b116104785780631f985078116104315780631f9850781461072c57806322a3ecf91461075957806323b872dd146107dc5780632a205e3d146107fc5780632f745c591461083157806336ecd1771461085157600080fd5b80631249c58b146106a757806313966db5146106af57806318160ddd146106c55780631e04cbf3146106da5780631e83617e146106f05780631ed9a2d01461070557600080fd5b8063081812fc116104ca578063081812fc146105b4578063095ea7b3146105ec5780630a7638d11461060c5780630b4cad4c146106475780630df374831461066757806310ddb1371461068757600080fd5b80621d35671461050657806301ffc9a7146105285780630297fdb11461055d57806306fdde031461057257806307e0db1714610594575b600080fd5b34801561051257600080fd5b50610526610521366004614b7c565b6110e9565b005b34801561053457600080fd5b50610548610543366004614c25565b61131a565b60405190151581526020015b60405180910390f35b34801561056957600080fd5b5061052661133d565b34801561057e57600080fd5b50610587611454565b6040516105549190614c92565b3480156105a057600080fd5b506105266105af366004614ca5565b6114e6565b3480156105c057600080fd5b506105d46105cf366004614cc0565b61156f565b6040516001600160a01b039091168152602001610554565b3480156105f857600080fd5b50610526610607366004614cf9565b611596565b34801561061857600080fd5b50610639610627366004614d25565b601d6020526000908152604090205481565b604051908152602001610554565b34801561065357600080fd5b50610526610662366004614cc0565b6116ab565b34801561067357600080fd5b50610526610682366004614d42565b61174b565b34801561069357600080fd5b506105266106a2366004614ca5565b61176a565b6105266117c2565b3480156106bb57600080fd5b5061063960165481565b3480156106d157600080fd5b50601354610639565b3480156106e657600080fd5b5061063961138881565b3480156106fc57600080fd5b50610526611891565b34801561071157600080fd5b5061071a600681565b60405160ff9091168152602001610554565b34801561073857600080fd5b50610639610747366004614d25565b601e6020526000908152604090205481565b34801561076557600080fd5b506107ad610774366004614cc0565b600a6020526000908152604090208054600182015460029092015461ffff821692620100009092046001600160a01b0316919060ff1684565b6040805161ffff90951685526001600160a01b0390931660208501529183015215156060820152608001610554565b3480156107e857600080fd5b506105266107f7366004614d5e565b6119c0565b34801561080857600080fd5b5061081c610817366004614e72565b6119f2565b60408051928352602083019190915201610554565b34801561083d57600080fd5b5061063961084c366004614cf9565b611a76565b34801561085d57600080fd5b506106397f000000000000000000000000000000000000000000000000000000000000000081565b34801561089157600080fd5b506105486108a0366004614f00565b611b0c565b3480156108b157600080fd5b506106396108c0366004614ca5565b60036020526000908152604090205481565b3480156108de57600080fd5b506105266108ed366004614d5e565b611bd8565b3480156108fe57600080fd5b5061052661090d366004614f00565b611bf3565b34801561091e57600080fd5b5061063960075481565b34801561093457600080fd5b50610639610943366004614ca5565b60086020526000908152604090205481565b34801561096157600080fd5b50610639610970366004614cc0565b611c79565b610526610983366004614f52565b611d0c565b34801561099457600080fd5b5061071a600281565b3480156109a957600080fd5b506106396109b836600461500b565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b3480156109f857600080fd5b5061071a600481565b348015610a0d57600080fd5b50610526610a1c366004614cc0565b611d23565b348015610a2d57600080fd5b506105d4610a3c366004614cc0565b611d74565b348015610a4d57600080fd5b50610526610a5c366004614b7c565b611dd4565b348015610a6d57600080fd5b50610526610a7c366004615068565b611eb0565b348015610a8d57600080fd5b50610639610a9c366004614d25565b611f7b565b348015610aad57600080fd5b50610526612001565b348015610ac257600080fd5b50610587610ad1366004614ca5565b612013565b348015610ae257600080fd5b5061063960175481565b348015610af857600080fd5b5061071a600981565b610526610b0f366004614cc0565b6120ad565b348015610b2057600080fd5b506022546105489060ff1681565b348015610b3a57600080fd5b50610639610b493660046150e2565b600260209081526000928352604080842090915290825290205481565b348015610b7257600080fd5b506000546001600160a01b03166105d4565b348015610b9057600080fd5b50610526610b9f366004615115565b6121aa565b348015610bb057600080fd5b50610526610bbf366004615130565b612207565b348015610bd057600080fd5b5061071a600881565b348015610be557600080fd5b5061063961271081565b348015610bfb57600080fd5b506004546105d4906001600160a01b031681565b348015610c1b57600080fd5b5061058761244f565b348015610c3057600080fd5b50610526610c3f366004614cc0565b61245e565b348015610c5057600080fd5b5061071a600381565b348015610c6557600080fd5b50610526610c74366004614d42565b61249f565b348015610c8557600080fd5b50610587610c94366004614ca5565b612556565b348015610ca557600080fd5b50610526610cb4366004615164565b61266c565b348015610cc557600080fd5b50610526610cd4366004614d25565b61267b565b348015610ce557600080fd5b50610526610cf4366004614f00565b6126eb565b610526610d07366004615219565b612774565b348015610d1857600080fd5b50610d21600181565b60405161ffff9091168152602001610554565b348015610d4057600080fd5b506105d47f000000000000000000000000000000000000000000000000000000000000000081565b348015610d7457600080fd5b50610526610d833660046152ce565b612783565b348015610d9457600080fd5b50610526610da3366004614d25565b6127bb565b348015610db457600080fd5b50610639610dc3366004614d25565b601c6020526000908152604090205481565b610526610de3366004615339565b612811565b348015610df457600080fd5b506018546105d4906001600160a01b031681565b348015610e1457600080fd5b5061071a600181565b348015610e2957600080fd5b5061071a600781565b348015610e3e57600080fd5b50610587610e4d366004614cc0565b6129f2565b348015610e5e57600080fd5b50610526610e6d366004615369565b612a3c565b348015610e7e57600080fd5b50610526610e8d3660046153d4565b612b73565b348015610e9e57600080fd5b50610639610ead366004614d25565b601f6020526000908152604090205481565b348015610ecb57600080fd5b5061063960155481565b348015610ee157600080fd5b50610526610ef0366004614d42565b612c08565b610526610f03366004614b7c565b612cb8565b348015610f1457600080fd5b50610526610f23366004615442565b612ece565b348015610f3457600080fd5b50610526610f43366004614cf9565b612f80565b348015610f5457600080fd5b50610639601b5481565b348015610f6a57600080fd5b506106397f000000000000000000000000000000000000000000000000000000000000000081565b348015610f9e57600080fd5b50610548610fad36600461547e565b6001600160a01b03918216600090815260106020908152604080832093909416825291909152205460ff1690565b348015610fe757600080fd5b5061071a600581565b348015610ffc57600080fd5b5061063960195481565b34801561101257600080fd5b50610639601a5481565b34801561102857600080fd5b50610526611037366004614f00565b612fe5565b34801561104857600080fd5b50610526611057366004614cc0565b61303f565b34801561106857600080fd5b5061081c6110773660046154ac565b613080565b34801561108857600080fd5b50610526611097366004614d25565b6130ae565b3480156110a857600080fd5b506105876110b7366004615525565b613124565b3480156110c857600080fd5b506106396110d7366004614ca5565b60096020526000908152604090205481565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146111665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461118490615572565b80601f01602080910402602001604051908101604052809291908181526020018280546111b090615572565b80156111fd5780601f106111d2576101008083540402835291602001916111fd565b820191906000526020600020905b8154815290600101906020018083116111e057829003601f168201915b50505050509050805186869050148015611218575060008151115b801561124057508051602082012060405161123690889088906155ac565b6040518091039020145b61129b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b606482015260840161115d565b6113118787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506131d792505050565b50505050505050565b60006001600160e01b031982161580611337575061133782613250565b92915050565b336000908152601e602052604090205461135a8115156006613275565b336000908152601e60209081526040808320839055601f909152812080548392906113869084906155d2565b9091555050604051600090339083908381818185875af1925050503d80600081146113cd576040519150601f19603f3d011682016040523d82523d6000602084013e6113d2565b606091505b505090508061141a5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640161115d565b60405182815233907fa6183a81b1ce4e0d90156f6ec9b6f2d13c204d11884302b40b47bb456fb59156906020015b60405180910390a25050565b6060600b805461146390615572565b80601f016020809104026020016040519081016040528092919081815260200182805461148f90615572565b80156114dc5780601f106114b1576101008083540402835291602001916114dc565b820191906000526020600020905b8154815290600101906020018083116114bf57829003601f168201915b5050505050905090565b6114ee613298565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561155457600080fd5b505af1158015611568573d6000803e3d6000fd5b5050505050565b600061157a826132f2565b506000908152600f60205260409020546001600160a01b031690565b60006115a182611d74565b9050806001600160a01b0316836001600160a01b03160361160e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161115d565b336001600160a01b038216148061162a575061162a8133610fad565b61169c5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161115d565b6116a68383613342565b505050565b6116b3613298565b6000811161170f5760405162461bcd60e51b8152602060048201526024808201527f6d696e476173546f5472616e73666572416e6453746f7265206d7573742062656044820152630203e20360e41b606482015260840161115d565b60078190556040518181527ffebbc4f8bb9ec2313950c718d43123124b15778efda4c1f1d529de2995b4f34d906020015b60405180910390a150565b611753613298565b61ffff909116600090815260036020526040902055565b611772613298565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161153a565b6117ca6133b0565b6015546016546117fd7f000000000000000000000000000000000000000000000000000000000000000083106002613275565b61180b813410156003613275565b60156000815461181a906155e5565b91905081905550806019600082825461183391906155d2565b9091555061184390503383613409565b6040805182815260006020820181905291849133917faf10eb5876c114d027970b3131ea6479da41c88b7d3ba0d093aea9a4126444eb910160405180910390a4505061188f6001600655565b565b611899613423565b6118a16133b0565b6019546118b18115156006613275565b60006019819055601a805483928392916118cc9084906155d2565b90915550506018546040516001600160a01b0390911690600090829084908381818185875af1925050503d8060008114611922576040519150601f19603f3d011682016040523d82523d6000602084013e611927565b606091505b505090508061196f5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640161115d565b816001600160a01b03167f582c87414358df39212a275853c71633d2dc65d15ae92cc5718e7438766bea76846040516119aa91815260200190565b60405180910390a25050505061188f6001600655565b6119cb335b8261343c565b6119e75760405162461bcd60e51b815260040161115d906155fe565b6116a68383836134ba565b6000803063f23536418888611a068961362b565b88886040518663ffffffff1660e01b8152600401611a28959493929190615686565b6040805180830381865afa158015611a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6891906156dd565b915091509550959350505050565b6000611a8183611f7b565b8210611ae35760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161115d565b506001600160a01b03919091166000908152601160209081526040808320938352929052205490565b61ffff831660009081526001602052604081208054829190611b2d90615572565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5990615572565b8015611ba65780601f10611b7b57610100808354040283529160200191611ba6565b820191906000526020600020905b815481529060010190602001808311611b8957829003601f168201915b505050505090508383604051611bbd9291906155ac565b60405180910390208180519060200120149150509392505050565b6116a683838360405180602001604052806000815250612783565b611bfb613298565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90611c4b9086908690869060040161572a565b600060405180830381600087803b158015611c6557600080fd5b505af1158015611311573d6000803e3d6000fd5b6000611c8460135490565b8210611ce75760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161115d565b60138281548110611cfa57611cfa615748565b90600052602060002001549050919050565b611311878787611d1b8861362b565b878787613676565b611d2b613298565b611d3b6113888211156008613275565b601b805490829055604051829082907f5520877bcd003e98f39712fa0194b5172c7c1a2f2ec8a1a9deb2b5a79c2525e890600090a35050565b6000818152600d60205260408120546001600160a01b0316806113375760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161115d565b333014611e325760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b606482015260840161115d565b611ea88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061370292505050565b505050505050565b611eb8613298565b611ec86127108211156008613275565b60005b82811015611f2b5781601c6000868685818110611eea57611eea615748565b9050602002016020810190611eff9190614d25565b6001600160a01b0316815260208101919091526040016000205580611f23816155e5565b915050611ecb565b508282604051611f3c92919061575e565b604051908190038120828252907f534f5101174d9c5177797e870102d53e013a9d6b33436ea06de20371c65078e89060200160405180910390a2505050565b60006001600160a01b038216611fe55760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161115d565b506001600160a01b03166000908152600e602052604090205490565b612009613298565b61188f600061386b565b6001602052600090815260409020805461202c90615572565b80601f016020809104026020016040519081016040528092919081815260200182805461205890615572565b80156120a55780601f1061207a576101008083540402835291602001916120a5565b820191906000526020600020905b81548152906001019060200180831161208857829003601f168201915b505050505081565b6120b56133b0565b6000816016546120c591906157a0565b90506120d5813410156003613275565b60005b8281101561219b576015546121107f000000000000000000000000000000000000000000000000000000000000000082106002613275565b60156000815461211f906155e5565b90915550601654601980546000906121389084906155d2565b9091555061214890503382613409565b6040805184815260006020820181905291839133917faf10eb5876c114d027970b3131ea6479da41c88b7d3ba0d093aea9a4126444eb910160405180910390a45080612193816155e5565b9150506120d8565b50506121a76001600655565b50565b6121b2613298565b6022546121ca9060ff16151582151514156001613275565b6022805460ff19168215159081179091556040517f86f6d3aac457fe4bb989f97e01063ec20dc5442373c5c9a0617a07c7b5362f6b90600090a250565b61220f6133b0565b80516020808301919091206000818152600a90925260409091206002015460ff166122705760405162461bcd60e51b81526020600482015260116024820152701b9bc818dc99591a5d1cc81cdd1bdc9959607a1b604482015260640161115d565b60008280602001905181019061228691906157fc565b6000848152600a6020526040812080546001909101549294509092506122c29161ffff8216916201000090046001600160a01b031690856138bb565b6000848152600a602052604090206001015490915081116123375760405162461bcd60e51b815260206004820152602960248201527f6e6f7420656e6f7567682067617320746f2070726f6365737320637265646974604482015268103a3930b739b332b960b91b606482015260840161115d565b815181036123ae576000838152600a602052604080822080546001600160b01b031916815560018101929092556002909101805460ff19169055517fd7be02b8dd0d27bd0517a9cb4d7469ce27df4313821ae5ec1ff69acc594ba233906123a19085815260200190565b60405180910390a1612442565b604080516080810182526000858152600a6020818152848320805461ffff80821687526001600160a01b03620100008084048216868a019081529989018b8152600160608b01818152998f90529790965297519851169096026001600160b01b03199091169690951695909517939093178455915191830191909155516002909101805491151560ff199092169190911790555b5050506121a76001600655565b6060600c805461146390615572565b612466613298565b6017805490829055604051829082907ff87f51c5c0d01564ccf3da315f76df881b0309297d68dde4303ab79a0f1b84cf90600090a35050565b6124a7613298565b600081116125025760405162461bcd60e51b815260206004820152602260248201527f647374436861696e4964546f42617463684c696d6974206d757374206265203e604482015261020360f41b606482015260840161115d565b61ffff8216600081815260086020908152604091829020849055815192835282018390527f7315f7654d594ead24a30160ed9ba2d23247f543016b918343591e93d7afdb6d91015b60405180910390a15050565b61ffff811660009081526001602052604081208054606092919061257990615572565b80601f01602080910402602001604051908101604052809291908181526020018280546125a590615572565b80156125f25780601f106125c7576101008083540402835291602001916125f2565b820191906000526020600020905b8154815290600101906020018083116125d557829003601f168201915b50505050509050805160000361264a5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000604482015260640161115d565b61266560006014835161265d91906158b6565b839190613907565b9392505050565b612677338383613a14565b5050565b612683613298565b6126996001600160a01b03821615156005613275565b601880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f649c5e3d0ed183894196148e193af316452b0037e77d2ff0fef23b7dc722bed090600090a35050565b6126f3613298565b818130604051602001612708939291906158c9565b60408051601f1981840301815291815261ffff85166000908152600160205220906127339082615935565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce8383836040516127679392919061572a565b60405180910390a1505050565b61131187878787878787613676565b61278d338361343c565b6127a95760405162461bcd60e51b815260040161115d906155fe565b6127b584848484613ae2565b50505050565b6127c3613298565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b90602001611740565b6128196133b0565b601654600061282884836157a0565b9050612838813410156003613275565b6128636001600160a01b038416331480159061285c57506001600160a01b03841615155b6009613275565b60005b848110156129e55760155461289e7f000000000000000000000000000000000000000000000000000000000000000082106002613275565b6015600081546128ad906155e5565b909155506001600160a01b0385166000908152601c60205260408120549081156128d757816128db565b601b545b905060006127106128ec83896157a0565b6128f691906159f4565b9050600061290482896158b6565b6001600160a01b038a166000908152601e60205260408120805492935084929091906129319084906155d2565b90915550506001600160a01b0389166000908152601d60205260408120805490919061295c906155e5565b91905081905550806019600082825461297591906155d2565b9091555061298590503386613409565b60408051828152602081018490526001600160a01b038b1691879133917faf10eb5876c114d027970b3131ea6479da41c88b7d3ba0d093aea9a4126444eb910160405180910390a4505050505080806129dd906155e5565b915050612866565b5050506126776001600655565b6060612a07612a0083613b15565b6004613275565b6021612a1283613b32565b6020604051602001612a2693929190615a89565b6040516020818303038152906040529050919050565b612a44613298565b602254612a569060ff16156001613275565b600060218054612a6590615572565b80601f0160208091040260200160405190810160405280929190818152602001828054612a9190615572565b8015612ade5780601f10612ab357610100808354040283529160200191612ade565b820191906000526020600020905b815481529060010190602001808311612ac157829003601f168201915b50505050509050848460219182612af6929190615abc565b506020612b04838583615abc565b508484604051612b159291906155ac565b604051809103902081604051612b2b9190615b7b565b60405180910390207fc354b4e8393ca297df0d60baaffdd112d7eaa0382a111cc8693009e8f404d9398585604051612b64929190615b97565b60405180910390a35050505050565b612b7b613298565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90612bcf9088908890889088908890600401615bab565b600060405180830381600087803b158015612be957600080fd5b505af1158015612bfd573d6000803e3d6000fd5b505050505050505050565b612c10613298565b60008111612c6c5760405162461bcd60e51b815260206004820152602360248201527f647374436861696e4964546f5472616e73666572476173206d7573742062652060448201526203e20360ec1b606482015260840161115d565b61ffff8216600081815260096020908152604091829020849055815192835282018390527fc46df2983228ac2d9754e94a0d565e6671665dc8ad38602bc8e544f0685a29fb910161254a565b61ffff86166000908152600560205260408082209051612cdb90889088906155ac565b90815260408051602092819003830190206001600160401b03871660009081529252902054905080612d5b5760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b606482015260840161115d565b808383604051612d6c9291906155ac565b604051809103902014612dcb5760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b606482015260840161115d565b61ffff87166000908152600560205260408082209051612dee90899089906155ac565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f88018290048202830182019052868252612e86918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061370292505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051612ebd959493929190615bd9565b60405180910390a150505050505050565b612ed6613298565b60008111612f1e5760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b604482015260640161115d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001612767565b612f88613298565b612f986127108211156008613275565b6001600160a01b0382166000818152601c602052604090819020839055517f081217f104a9c8ce8b5570732f898968cb602b62d54965af794344e689a62590906114489084815260200190565b612fed613298565b61ffff8316600090815260016020526040902061300b828483615abc565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab8383836040516127679392919061572a565b613047613298565b6016805490829055604051829082907fd8f648a37e4afe1c401d97caaa06358d2e2725ac008214ce9f5497991e65439690600090a35050565b6000806130908787878787613bc4565b60175491935091506130a290836155d2565b91509550959350505050565b6130b6613298565b6001600160a01b03811661311b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161115d565b6121a78161386b565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156131a4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131cc9190810190615c14565b90505b949350505050565b60008061323a5a60966366ad5c8a60e01b898989896040516024016131ff9493929190615c48565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190613c8f565b9150915081611ea857611ea88686868685613d19565b60006001600160e01b0319821663780e9d6360e01b1480611337575061133782613db6565b816126775760405163673b215f60e01b815260ff8216600482015260240161115d565b6000546001600160a01b0316331461188f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161115d565b6132fb81613b15565b6121a75760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161115d565b6000818152600f6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061337782611d74565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6002600654036134025760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161115d565b6002600655565b612677828260405180602001604052806000815250613dd3565b60185461188f906001600160a01b031633146007613275565b60008061344883611d74565b9050806001600160a01b0316846001600160a01b0316148061348f57506001600160a01b0380821660009081526010602090815260408083209388168352929052205460ff165b806131cf5750836001600160a01b03166134a88461156f565b6001600160a01b031614949350505050565b826001600160a01b03166134cd82611d74565b6001600160a01b0316146134f35760405162461bcd60e51b815260040161115d90615c86565b6001600160a01b0382166135555760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161115d565b6135628383836001613e06565b826001600160a01b031661357582611d74565b6001600160a01b03161461359b5760405162461bcd60e51b815260040161115d90615c86565b6000818152600f6020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652600e8552838620805460001901905590871680865283862080546001019055868652600d90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061366557613665615748565b602090810291909101015292915050565b601754600061368582346158b6565b9050816019600082825461369991906155d2565b909155506136af90508989898989898988613e12565b8761ffff16896001600160a01b03167f81124ef096134d3d08199ac5bc8e55569b17dcbe54f085c78b63a8da7f789bac846040516136ef91815260200190565b60405180910390a3505050505050505050565b6000808280602001905181019061371991906157fc565b601482015191935091506000613731888383866138bb565b905082518110156138055784516020808701919091206040805160808101825261ffff808d1682526001600160a01b038088168387019081528385018881526001606086018181526000898152600a909a529887902095518654935190941662010000026001600160b01b03199093169390941692909217178355519082015592516002909301805493151560ff199094169390931790925590517f10e0b70d256bccc84b7027506978bd8b68984a870788b93b479def144c839ad7906137fb9083908990615ccb565b60405180910390a1505b816001600160a01b03168760405161381d9190615b7b565b60405180910390208961ffff167f5b821db8a46f8ecbe1941ba2f51cfeea9643268b56631f70d45e2a745d990265866040516138599190615ce4565b60405180910390a45050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000825b82518110156131cc576007545a106131cc576138f586868584815181106138e8576138e8615748565b6020026020010151613fe7565b806138ff816155e5565b9150506138bf565b60608161391581601f6155d2565b10156139545760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161115d565b61395e82846155d2565b845110156139a25760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161115d565b6060821580156139c15760405191506000825260208201604052613a0b565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156139fa5780518352602092830192016139e2565b5050858452601f01601f1916604052505b50949350505050565b816001600160a01b0316836001600160a01b031603613a755760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161115d565b6001600160a01b03838116600081815260106020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b613aed8484846134ba565b613af984848484614047565b6127b55760405162461bcd60e51b815260040161115d90615cf7565b6000908152600d60205260409020546001600160a01b0316151590565b60606000613b3f83614145565b60010190506000816001600160401b03811115613b5e57613b5e614d9f565b6040519080825280601f01601f191660200182016040528015613b88576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613b9257509392505050565b60008060008686604051602001613bdc929190615d49565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb1090613c40908b90309086908b908b90600401615d77565b6040805180830381865afa158015613c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c8091906156dd565b92509250509550959350505050565b6000606060008060008661ffff166001600160401b03811115613cb457613cb4614d9f565b6040519080825280601f01601f191660200182016040528015613cde576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115613d00578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051613d4a9190615b7b565b9081526040805191829003602090810183206001600160401b0388166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90613da79087908790879087908790615dbf565b60405180910390a15050505050565b60006001600160e01b03198216158061133757506113378261421d565b613ddd838361425d565b613dea6000848484614047565b6116a65760405162461bcd60e51b815260040161115d90615cf7565b6127b5848484846143d8565b6000855111613e595760405162461bcd60e51b8152602060048201526013602482015272746f6b656e4964735b5d20697320656d70747960681b604482015260640161115d565b845160011480613e7d575061ffff8716600090815260086020526040902054855111155b613ed45760405162461bcd60e51b815260206004820152602260248201527f62617463682073697a65206578636565647320647374206261746368206c696d6044820152611a5d60f21b606482015260840161115d565b60005b8551811015613f1757613f05898989898581518110613ef857613ef8615748565b6020026020010151614505565b80613f0f816155e5565b915050613ed7565b5060008686604051602001613f2d929190615d49565b6040516020818303038152906040529050613f72886001858951600960008e61ffff1661ffff16815260200190815260200160002054613f6d91906157a0565b6145f0565b613f808882878787876146cf565b86604051613f8e9190615b7b565b6040518091039020896001600160a01b03168961ffff167fe1b87c47fdeb4f9cbadbca9df3af7aba453bb6e501075d0440d88125b711522a89604051613fd49190615ce4565b60405180910390a4505050505050505050565b613ff081613b15565b158061401c575061400081613b15565b801561401c57503061401182611d74565b6001600160a01b0316145b61402557600080fd5b61402e81613b15565b61403c576116a68282613409565b6116a63083836134ba565b60006001600160a01b0384163b1561413d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061408b903390899088908890600401615e11565b6020604051808303816000875af19250505080156140c6575060408051601f3d908101601f191682019092526140c391810190615e4e565b60015b614123573d8080156140f4576040519150601f19603f3d011682016040523d82523d6000602084013e6140f9565b606091505b50805160000361411b5760405162461bcd60e51b815260040161115d90615cf7565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506131cf565b5060016131cf565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106141845772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106141b0576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106141ce57662386f26fc10000830492506010015b6305f5e10083106141e6576305f5e100830492506008015b61271083106141fa57612710830492506004015b6064831061420c576064830492506002015b600a83106113375760010192915050565b60006001600160e01b031982166380ac58cd60e01b148061424e57506001600160e01b03198216635b5e139f60e01b145b80611337575061133782614874565b6001600160a01b0382166142b35760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161115d565b6142bc81613b15565b156143095760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161115d565b614317600083836001613e06565b61432081613b15565b1561436d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161115d565b6001600160a01b0382166000818152600e6020908152604080832080546001019055848352600d90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60018111156144475760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b606482015260840161115d565b816001600160a01b0385166144a35761449e81601380546000838152601460205260408120829055600182018355919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0900155565b6144c6565b836001600160a01b0316856001600160a01b0316146144c6576144c685826148a9565b6001600160a01b0384166144e2576144dd81614946565b611568565b846001600160a01b0316846001600160a01b0316146115685761156884826149f5565b61450e336119c5565b6145715760405162461bcd60e51b815260206004820152602e60248201527f4f4e46543732313a2073656e642063616c6c6572206973206e6f74206f776e6560448201526d1c881b9bdc88185c1c1c9bdd995960921b606482015260840161115d565b836001600160a01b031661458482611d74565b6001600160a01b0316146145e55760405162461bcd60e51b815260206004820152602260248201527f4f4e46543732313a2073656e642066726f6d20696e636f7272656374206f776e60448201526132b960f11b606482015260840161115d565b6127b58430836134ba565b60006145fb83614a39565b61ffff80871660009081526002602090815260408083209389168352929052908120549192509061462d9084906155d2565b90506000811161467f5760405162461bcd60e51b815260206004820152601a60248201527f4c7a4170703a206d696e4761734c696d6974206e6f7420736574000000000000604482015260640161115d565b80821015611ea85760405162461bcd60e51b815260206004820152601b60248201527f4c7a4170703a20676173206c696d697420697320746f6f206c6f770000000000604482015260640161115d565b61ffff8616600090815260016020526040812080546146ed90615572565b80601f016020809104026020016040519081016040528092919081815260200182805461471990615572565b80156147665780601f1061473b57610100808354040283529160200191614766565b820191906000526020600020905b81548152906001019060200180831161474957829003601f168201915b5050505050905080516000036147d75760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b606482015260840161115d565b6147e2878751614a95565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490614839908b9086908c908c908c908c90600401615e6b565b6000604051808303818588803b15801561485257600080fd5b505af1158015614866573d6000803e3d6000fd5b505050505050505050505050565b60006001600160e01b031982166322bac5d960e01b148061133757506301ffc9a760e01b6001600160e01b0319831614611337565b600060016148b684611f7b565b6148c091906158b6565b600083815260126020526040902054909150808214614913576001600160a01b03841660009081526011602090815260408083208584528252808320548484528184208190558352601290915290208190555b5060009182526012602090815260408084208490556001600160a01b039094168352601181528383209183525290812055565b601354600090614958906001906158b6565b6000838152601460205260408120546013805493945090928490811061498057614980615748565b9060005260206000200154905080601383815481106149a1576149a1615748565b60009182526020808320909101929092558281526014909152604080822084905585825281205560138054806149d9576149d9615ed2565b6001900381819060005260206000200160009055905550505050565b6000614a0083611f7b565b6001600160a01b039093166000908152601160209081526040808320868452825280832085905593825260129052919091209190915550565b6000602282511015614a8d5760405162461bcd60e51b815260206004820152601c60248201527f4c7a4170703a20696e76616c69642061646170746572506172616d7300000000604482015260640161115d565b506022015190565b61ffff821660009081526003602052604081205490819003614ab657506127105b808211156116a65760405162461bcd60e51b815260206004820181905260248201527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c61726765604482015260640161115d565b803561ffff81168114614b1857600080fd5b919050565b60008083601f840112614b2f57600080fd5b5081356001600160401b03811115614b4657600080fd5b602083019150836020828501011115614b5e57600080fd5b9250929050565b80356001600160401b0381168114614b1857600080fd5b60008060008060008060808789031215614b9557600080fd5b614b9e87614b06565b955060208701356001600160401b0380821115614bba57600080fd5b614bc68a838b01614b1d565b9097509550859150614bda60408a01614b65565b94506060890135915080821115614bf057600080fd5b50614bfd89828a01614b1d565b979a9699509497509295939492505050565b6001600160e01b0319811681146121a757600080fd5b600060208284031215614c3757600080fd5b813561266581614c0f565b60005b83811015614c5d578181015183820152602001614c45565b50506000910152565b60008151808452614c7e816020860160208601614c42565b601f01601f19169290920160200192915050565b6020815260006126656020830184614c66565b600060208284031215614cb757600080fd5b61266582614b06565b600060208284031215614cd257600080fd5b5035919050565b6001600160a01b03811681146121a757600080fd5b8035614b1881614cd9565b60008060408385031215614d0c57600080fd5b8235614d1781614cd9565b946020939093013593505050565b600060208284031215614d3757600080fd5b813561266581614cd9565b60008060408385031215614d5557600080fd5b614d1783614b06565b600080600060608486031215614d7357600080fd5b8335614d7e81614cd9565b92506020840135614d8e81614cd9565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614ddd57614ddd614d9f565b604052919050565b60006001600160401b03821115614dfe57614dfe614d9f565b50601f01601f191660200190565b600082601f830112614e1d57600080fd5b8135614e30614e2b82614de5565b614db5565b818152846020838601011115614e4557600080fd5b816020850160208301376000918101602001919091529392505050565b80358015158114614b1857600080fd5b600080600080600060a08688031215614e8a57600080fd5b614e9386614b06565b945060208601356001600160401b0380821115614eaf57600080fd5b614ebb89838a01614e0c565b955060408801359450614ed060608901614e62565b93506080880135915080821115614ee657600080fd5b50614ef388828901614e0c565b9150509295509295909350565b600080600060408486031215614f1557600080fd5b614f1e84614b06565b925060208401356001600160401b03811115614f3957600080fd5b614f4586828701614b1d565b9497909650939450505050565b600080600080600080600060e0888a031215614f6d57600080fd5b8735614f7881614cd9565b9650614f8660208901614b06565b955060408801356001600160401b0380821115614fa257600080fd5b614fae8b838c01614e0c565b965060608a0135955060808a01359150614fc782614cd9565b90935060a089013590614fd982614cd9565b90925060c08901359080821115614fef57600080fd5b50614ffc8a828b01614e0c565b91505092959891949750929550565b60008060006060848603121561502057600080fd5b61502984614b06565b925060208401356001600160401b0381111561504457600080fd5b61505086828701614e0c565b92505061505f60408501614b65565b90509250925092565b60008060006040848603121561507d57600080fd5b83356001600160401b038082111561509457600080fd5b818601915086601f8301126150a857600080fd5b8135818111156150b757600080fd5b8760208260051b85010111156150cc57600080fd5b6020928301989097509590910135949350505050565b600080604083850312156150f557600080fd5b6150fe83614b06565b915061510c60208401614b06565b90509250929050565b60006020828403121561512757600080fd5b61266582614e62565b60006020828403121561514257600080fd5b81356001600160401b0381111561515857600080fd5b6131cf84828501614e0c565b6000806040838503121561517757600080fd5b823561518281614cd9565b915061510c60208401614e62565b60006001600160401b038211156151a9576151a9614d9f565b5060051b60200190565b600082601f8301126151c457600080fd5b813560206151d4614e2b83615190565b82815260059290921b840181019181810190868411156151f357600080fd5b8286015b8481101561520e57803583529183019183016151f7565b509695505050505050565b600080600080600080600060e0888a03121561523457600080fd5b873561523f81614cd9565b965061524d60208901614b06565b955060408801356001600160401b038082111561526957600080fd5b6152758b838c01614e0c565b965060608a013591508082111561528b57600080fd5b6152978b838c016151b3565b955060808a013591506152a982614cd9565b8194506152b860a08b01614cee565b935060c08a0135915080821115614fef57600080fd5b600080600080608085870312156152e457600080fd5b84356152ef81614cd9565b935060208501356152ff81614cd9565b92506040850135915060608501356001600160401b0381111561532157600080fd5b61532d87828801614e0c565b91505092959194509250565b6000806040838503121561534c57600080fd5b82359150602083013561535e81614cd9565b809150509250929050565b6000806000806040858703121561537f57600080fd5b84356001600160401b038082111561539657600080fd5b6153a288838901614b1d565b909650945060208701359150808211156153bb57600080fd5b506153c887828801614b1d565b95989497509550505050565b6000806000806000608086880312156153ec57600080fd5b6153f586614b06565b945061540360208701614b06565b93506040860135925060608601356001600160401b0381111561542557600080fd5b61543188828901614b1d565b969995985093965092949392505050565b60008060006060848603121561545757600080fd5b61546084614b06565b925061546e60208501614b06565b9150604084013590509250925092565b6000806040838503121561549157600080fd5b823561549c81614cd9565b9150602083013561535e81614cd9565b600080600080600060a086880312156154c457600080fd5b6154cd86614b06565b945060208601356001600160401b03808211156154e957600080fd5b6154f589838a01614e0c565b9550604088013591508082111561550b57600080fd5b61551789838a016151b3565b9450614ed060608901614e62565b6000806000806080858703121561553b57600080fd5b61554485614b06565b935061555260208601614b06565b9250604085013561556281614cd9565b9396929550929360600135925050565b600181811c9082168061558657607f821691505b6020821081036155a657634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115611337576113376155bc565b6000600182016155f7576155f76155bc565b5060010190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b600081518084526020808501945080840160005b8381101561567b5781518752958201959082019060010161565f565b509495945050505050565b61ffff8616815260a0602082015260006156a360a0830187614c66565b82810360408401526156b5818761564b565b9050841515606084015282810360808401526156d18185614c66565b98975050505050505050565b600080604083850312156156f057600080fd5b505080516020909101519092909150565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006131cc604083018486615701565b634e487b7160e01b600052603260045260246000fd5b60008184825b8581101561579557813561577781614cd9565b6001600160a01b031683526020928301929190910190600101615764565b509095945050505050565b8082028115828204841417611337576113376155bc565b600082601f8301126157c857600080fd5b81516157d6614e2b82614de5565b8181528460208386010111156157eb57600080fd5b6131cf826020830160208701614c42565b6000806040838503121561580f57600080fd5b82516001600160401b038082111561582657600080fd5b615832868387016157b7565b935060209150818501518181111561584957600080fd5b85019050601f8101861361585c57600080fd5b805161586a614e2b82615190565b81815260059190911b8201830190838101908883111561588957600080fd5b928401925b828410156158a75783518252928401929084019061588e565b80955050505050509250929050565b81810381811115611337576113376155bc565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b601f8211156116a657600081815260208120601f850160051c810160208610156159165750805b601f850160051c820191505b81811015611ea857828155600101615922565b81516001600160401b0381111561594e5761594e614d9f565b6159628161595c8454615572565b846158ef565b602080601f831160018114615997576000841561597f5750858301515b600019600386901b1c1916600185901b178555611ea8565b600085815260208120601f198616915b828110156159c6578886015182559484019460019091019084016159a7565b50858210156159e45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082615a1157634e487b7160e01b600052601260045260246000fd5b500490565b60008154615a2381615572565b60018281168015615a3b5760018114615a5057615a7f565b60ff1984168752821515830287019450615a7f565b8560005260208060002060005b85811015615a765781548a820152908401908201615a5d565b50505082870194505b5050505092915050565b6000615a958286615a16565b8451615aa5818360208901614c42565b615ab181830186615a16565b979650505050505050565b6001600160401b03831115615ad357615ad3614d9f565b615ae783615ae18354615572565b836158ef565b6000601f841160018114615b1b5760008515615b035750838201355b600019600387901b1c1916600186901b178355611568565b600083815260209020601f19861690835b82811015615b4c5786850135825560209485019460019092019101615b2c565b5086821015615b695760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60008251615b8d818460208701614c42565b9190910192915050565b6020815260006131cf602083018486615701565b600061ffff808816835280871660208401525084604083015260806060830152615ab1608083018486615701565b61ffff86168152608060208201526000615bf7608083018688615701565b6001600160401b0394909416604083015250606001529392505050565b600060208284031215615c2657600080fd5b81516001600160401b03811115615c3c57600080fd5b6131cf848285016157b7565b61ffff85168152608060208201526000615c656080830186614c66565b6001600160401b03851660408401528281036060840152615ab18185614c66565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b8281526040602082015260006131cf6040830184614c66565b602081526000612665602083018461564b565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b604081526000615d5c6040830185614c66565b8281036020840152615d6e818561564b565b95945050505050565b61ffff861681526001600160a01b038516602082015260a060408201819052600090615da590830186614c66565b841515606084015282810360808401526156d18185614c66565b61ffff8616815260a060208201526000615ddc60a0830187614c66565b6001600160401b03861660408401528281036060840152615dfd8186614c66565b905082810360808401526156d18185614c66565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615e4490830184614c66565b9695505050505050565b600060208284031215615e6057600080fd5b815161266581614c0f565b61ffff8716815260c060208201526000615e8860c0830188614c66565b8281036040840152615e9a8188614c66565b6001600160a01b0387811660608601528616608085015283810360a08501529050615ec58185614c66565b9998505050505050505050565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209704bcae18291186a9023d2ee2a8858da8e73ffcd1b5c588bd6b92a33048162564736f6c6343000813003300000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000b6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70000000000000000000000000000000000000000000000000000000002160ec10000000000000000000000000000000000000000000000000000000002625a00000000000000000000000000000000000000000000000000000051dac207a00000000000000000000000000000000000000000000000000000002d79883d20000000000000000000000000002e593087cffed0dc5b651ececacf3c66a95300000000000000000000000000000000000000000000000000000000000000000000