Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccountBalanceOverflow", "type": "error" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "ArrayLengthsMismatch", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "MaxSupplyReached", "type": "error" }, { "inputs": [], "name": "NewOwnerIsZeroAddress", "type": "error" }, { "inputs": [], "name": "NoHandoverRequest", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [ { "internalType": "uint64", "name": "opensAt_", "type": "uint64" }, { "internalType": "uint64", "name": "closesAt_", "type": "uint64" } ], "name": "NotOpen", "type": "error" }, { "inputs": [], "name": "NotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "RoyaltyOverflow", "type": "error" }, { "inputs": [], "name": "RoyaltyReceiverIsZeroAddress", "type": "error" }, { "inputs": [], "name": "TransferToNonERC1155ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isApproved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "collection", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "author", "type": "address" }, { "indexed": false, "internalType": "string", "name": "comment", "type": "string" } ], "name": "Comment", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "collection", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "collection", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint112", "name": "mintFee", "type": "uint112" }, { "internalType": "uint16", "name": "revshareBps", "type": "uint16" }, { "internalType": "uint16", "name": "royaltyBps", "type": "uint16" } ], "indexed": false, "internalType": "struct Strategy", "name": "strategy", "type": "tuple" } ], "name": "Published", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "RolesUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "collection", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint64", "name": "opensAt", "type": "uint64" }, { "indexed": false, "internalType": "uint64", "name": "closesAt", "type": "uint64" } ], "name": "TimeframeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "collection", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "WorkTransferred", "type": "event" }, { "inputs": [], "name": "REGISTRY", "outputs": [ { "internalType": "contract TitlesRegistry", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROUTER", "outputs": [ { "internalType": "contract TitlesRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "_metadata", "outputs": [ { "internalType": "string", "name": "label", "type": "string" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "owners", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "balances", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cancelOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "completeOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "publisher_", "type": "address" } ], "name": "grantPublisherRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user_", "type": "address" }, { "internalType": "uint256", "name": "roles_", "type": "uint256" } ], "name": "grantRoles", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user_", "type": "address" }, { "internalType": "uint256", "name": "roles_", "type": "uint256" } ], "name": "hasAllRoles", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user_", "type": "address" }, { "internalType": "uint256", "name": "roles_", "type": "uint256" } ], "name": "hasAnyRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "router_", "type": "address" }, { "internalType": "address", "name": "registry_", "type": "address" }, { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "controller_", "type": "address" }, { "components": [ { "internalType": "string", "name": "label", "type": "string" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Metadata", "name": "metadata_", "type": "tuple" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "result", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "metadata", "outputs": [ { "components": [ { "internalType": "string", "name": "label", "type": "string" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Metadata", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "tokenId_", "type": "uint256" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" }, { "internalType": "address", "name": "referrer_", "type": "address" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256[]", "name": "tokenIds_", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts_", "type": "uint256[]" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "mintBatch", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "receivers_", "type": "address[]" }, { "internalType": "uint256", "name": "tokenId_", "type": "uint256" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "mintBatch", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "mintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "mintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "tokenId_", "type": "uint256" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" }, { "internalType": "address", "name": "referrer_", "type": "address" }, { "internalType": "bytes", "name": "data_", "type": "bytes" }, { "internalType": "string", "name": "comment_", "type": "string" } ], "name": "mintWithComment", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "node", "outputs": [ { "components": [ { "internalType": "enum NodeType", "name": "nodeType", "type": "uint8" }, { "components": [ { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" } ], "internalType": "struct Target", "name": "entity", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" } ], "internalType": "struct Target", "name": "creator", "type": "tuple" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Node", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "node", "outputs": [ { "components": [ { "internalType": "enum NodeType", "name": "nodeType", "type": "uint8" }, { "components": [ { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" } ], "internalType": "struct Target", "name": "entity", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" } ], "internalType": "struct Target", "name": "creator", "type": "tuple" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Node", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "ownershipHandoverExpiresAt", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "receivers_", "type": "address[]" }, { "internalType": "uint256", "name": "tokenId_", "type": "uint256" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "promoMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "creator_", "type": "address" }, { "internalType": "uint256", "name": "maxSupply_", "type": "uint256" }, { "internalType": "uint64", "name": "opensAt_", "type": "uint64" }, { "internalType": "uint64", "name": "closesAt_", "type": "uint64" }, { "components": [ { "internalType": "enum NodeType", "name": "nodeType", "type": "uint8" }, { "components": [ { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" } ], "internalType": "struct Target", "name": "entity", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" } ], "internalType": "struct Target", "name": "creator", "type": "tuple" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Node[]", "name": "attributions_", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint112", "name": "mintFee", "type": "uint112" }, { "internalType": "uint16", "name": "revshareBps", "type": "uint16" }, { "internalType": "uint16", "name": "royaltyBps", "type": "uint16" } ], "internalType": "struct Strategy", "name": "strategy_", "type": "tuple" }, { "components": [ { "internalType": "string", "name": "label", "type": "string" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Metadata", "name": "metadata_", "type": "tuple" } ], "name": "publish", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "renounceRoles", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "requestOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "publisher_", "type": "address" } ], "name": "revokePublisherRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user_", "type": "address" }, { "internalType": "uint256", "name": "roles_", "type": "uint256" } ], "name": "revokeRoles", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user_", "type": "address" } ], "name": "rolesOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "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": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "isApproved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id_", "type": "uint256" }, { "components": [ { "internalType": "string", "name": "label", "type": "string" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Metadata", "name": "metadata_", "type": "tuple" } ], "name": "setMetadata", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" } ], "name": "setRoyaltyTarget", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint112", "name": "mintFee", "type": "uint112" }, { "internalType": "uint16", "name": "revshareBps", "type": "uint16" }, { "internalType": "uint16", "name": "royaltyBps", "type": "uint16" } ], "internalType": "struct Strategy", "name": "strategy_", "type": "tuple" } ], "name": "setStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint64", "name": "opensAt", "type": "uint64" }, { "internalType": "uint64", "name": "closesAt", "type": "uint64" } ], "name": "setTimeframe", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "strategy", "outputs": [ { "components": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint112", "name": "mintFee", "type": "uint112" }, { "internalType": "uint16", "name": "revshareBps", "type": "uint16" }, { "internalType": "uint16", "name": "royaltyBps", "type": "uint16" } ], "internalType": "struct Strategy", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalWorks", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "transferWork", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "works", "outputs": [ { "internalType": "address", "name": "creator", "type": "address" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "uint64", "name": "opensAt", "type": "uint64" }, { "internalType": "uint64", "name": "closesAt", "type": "uint64" }, { "components": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint112", "name": "mintFee", "type": "uint112" }, { "internalType": "uint16", "name": "revshareBps", "type": "uint16" }, { "internalType": "uint16", "name": "royaltyBps", "type": "uint16" } ], "internalType": "struct Strategy", "name": "strategy", "type": "tuple" } ], "stateMutability": "view", "type": "function" } ]
6080604052348015600f57600080fd5b506016601a565b607a565b63409feecd198054600181161560385763f92ee8a96000526004601cfd5b8160c01c808260011c146075578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b614254806100896000396000f3fe60806040526004361061034e5760003560e01c8063514e62fc116101c6578063c046c69a116100f7578063e985e9c511610095578063f242432a1161006f578063f242432a14610aef578063f2fde38b14610b0f578063f826dcec14610b22578063fee81cf414610b4257600080fd5b8063e985e9c514610a8e578063eac989f814610ac7578063f04e283e14610adc57600080fd5b8063d138be19116100d1578063d138be1914610a17578063d70754ec14610a37578063e3684e3914610a4c578063e8a3d48514610a7957600080fd5b8063c046c69a14610915578063c66e1dd514610935578063d00b38fd146109f757600080fd5b80638da5cb5b11610164578063a22cb4651161013e578063a22cb465146107fc578063b60655381461081c578063bc88d7e41461083c578063bd85b039146108e557600080fd5b80638da5cb5b146107c1578063904868b2146107d6578063972f9e94146107e957600080fd5b8063715018a6116101a0578063715018a614610748578063830c495214610750578063869f7594146107705780638a35ace3146107a157600080fd5b8063514e62fc1461070057806354d1f13d1461072057806357a818471461072857600080fd5b80631a1d4ba8116102a05780632de948071161023e57806332fe7b261161021857806332fe7b261461066a5780634a4ee7b11461068a5780634e1273f41461069d578063510b5158146106ca57600080fd5b80632de94807146106145780632eb2c2d6146106345780632f457e0a1461065457600080fd5b80631f7fdffa1161027a5780631f7fdffa1461058d578063220e44d5146105a057806325692962146105cd5780632a55205a146105d557600080fd5b80631a1d4ba8146105475780631c10893f1461055a5780631cd64df41461056d57600080fd5b80630dc816531161030d57806313859f46116102e757806313859f46146104c5578063170f221a146104f457806317b1566d14610514578063183a4f6e1461053457600080fd5b80630dc81653146104635780630e89341c146104855780630efd898a146104a557600080fd5b8062ad800c14610353578062fdd58e1461038957806301ffc9a7146103d157806302d05d3f1461040157806306433b1b1461042e57806306fdde031461044e575b600080fd5b34801561035f57600080fd5b5061037361036e366004612f8a565b610b75565b6040516103809190612ff3565b60405180910390f35b34801561039557600080fd5b506103c36103a436600461301b565b679a31110384e0b0c96020526014919091526000908152604090205490565b604051908152602001610380565b3480156103dd57600080fd5b506103f16103ec366004613047565b610c17565b6040519015158152602001610380565b34801561040d57600080fd5b50610416610c7d565b6040516001600160a01b039091168152602001610380565b34801561043a57600080fd5b50600454610416906001600160a01b031681565b34801561045a57600080fd5b50610373610c8c565b34801561046f57600080fd5b5061048361047e366004613089565b610d48565b005b34801561049157600080fd5b506103736104a0366004612f8a565b610df0565b3480156104b157600080fd5b506103c36104c03660046130cf565b610e10565b3480156104d157600080fd5b506104e56104e0366004612f8a565b610ebb565b604051610380939291906130f1565b34801561050057600080fd5b5061048361050f366004613134565b611075565b34801561052057600080fd5b5061048361052f366004613151565b611091565b610483610542366004612f8a565b611113565b610483610555366004613220565b611120565b61048361056836600461301b565b611262565b34801561057957600080fd5b506103f161058836600461301b565b61127d565b61048361059b36600461330b565b611290565b3480156105ac57600080fd5b506105c06105bb366004612f8a565b6114a8565b604051610380919061344d565b61048361152a565b3480156105e157600080fd5b506105f56105f03660046130cf565b611579565b604080516001600160a01b039093168352602083019190915201610380565b34801561062057600080fd5b506103c361062f366004613134565b6115ce565b34801561064057600080fd5b5061048361064f366004613460565b6115e8565b34801561066057600080fd5b506103c360005481565b34801561067657600080fd5b50600354610416906001600160a01b031681565b61048361069836600461301b565b611804565b3480156106a957600080fd5b506106bd6106b83660046134fd565b61181a565b6040516103809190613568565b3480156106d657600080fd5b506104166106e5366004612f8a565b6000908152600160205260409020546001600160a01b031690565b34801561070c57600080fd5b506103f161071b36600461301b565b61188a565b610483611896565b34801561073457600080fd5b506104836107433660046135be565b6118d2565b610483611a11565b34801561075c57600080fd5b506103c361076b366004613607565b611a25565b34801561077c57600080fd5b506103c361078b366004612f8a565b6000908152600160208190526040909120015490565b3480156107ad57600080fd5b506103c36107bc366004612f8a565b611e33565b3480156107cd57600080fd5b50610416611e40565b6104836107e43660046136c3565b611e4f565b6104836107f7366004613745565b611f2d565b34801561080857600080fd5b506104836108173660046137bc565b611fcb565b34801561082857600080fd5b506104836108373660046137f5565b612021565b34801561084857600080fd5b506108d8610857366004612f8a565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152600185528390208351918201845260048101546001600160a01b03168252600501546001600160701b0381169482019490945261ffff600160701b8504811693820193909352600160801b9093049091169082015290565b6040516103809190613859565b3480156108f157600080fd5b506103c3610900366004612f8a565b60009081526001602052604090206002015490565b34801561092157600080fd5b5061048361093036600461301b565b612037565b34801561094157600080fd5b506109e5610950366004612f8a565b60016020818152600092835260409283902080549281015460028201546003830154865160808101885260048501546001600160a01b0390811682526005909501546001600160701b0381169682019690965261ffff600160701b8704811698820198909852600160801b9095049096166060850152919093169390916001600160401b0380831692600160401b9004169086565b60405161038096959493929190613867565b348015610a0357600080fd5b50610483610a12366004613134565b612136565b348015610a2357600080fd5b50610483610a323660046138b5565b61214e565b348015610a4357600080fd5b506105c06121f7565b348015610a5857600080fd5b50610a6c610a67366004612f8a565b612273565b60405161038091906138f1565b348015610a8557600080fd5b5061037361246c565b348015610a9a57600080fd5b506103f1610aa9366004613952565b679a31110384e0b0c96020526014919091526000526034600c205490565b348015610ad357600080fd5b50610373612472565b610483610aea366004613134565b6124ab565b348015610afb57600080fd5b50610483610b0a366004613980565b612532565b610483610b1d366004613134565b612692565b348015610b2e57600080fd5b50610483610b3d3660046139dd565b6126af565b348015610b4e57600080fd5b506103c3610b5d366004613134565b63389a75e1600c908152600091909152602090205490565b6000818152600260205260409020805460609190610b9290613a56565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbe90613a56565b8015610c0b5780601f10610be057610100808354040283529160200191610c0b565b820191906000526020600020905b815481529060010190602001808311610bee57829003601f168201915b50505050509050919050565b6000630e116aad60e31b6001600160e01b031983161480610c595750610c59826301ffc9a760e09190911c90811463d9b67a26821417630e89341c9091141790565b80610c775750632a55205a60e083901c9081146301ffc9a791909114175b92915050565b6000610c87611e40565b905090565b6000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b805460609190610cc590613a56565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf190613a56565b8015610d3e5780601f10610d1357610100808354040283529160200191610d3e565b820191906000526020600020905b815481529060010190602001808311610d2157829003601f168201915b5050505050905090565b81158015610d6f5750610d59611e40565b6001600160a01b0316336001600160a01b031614155b15610d8c576040516282b42960e81b815260040160405180910390fd5b600082118015610db357506000828152600160205260409020546001600160a01b03163314155b15610dd0576040516282b42960e81b815260040160405180910390fd5b60008281526002602052604090208190610dea8282613bed565b50505050565b6000818152600260205260409020600101805460609190610b9290613a56565b6000821580610e20575060005483115b15610e2d57506000610c77565b60035460008481526001602052604090819020905163142ff78960e01b81526001600160a01b039092169163142ff78991610e7091600491820191879101613d2a565b6040805180830381865afa158015610e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb09190613d9d565b602001519392505050565b600260205260009081526040902080548190610ed690613a56565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0290613a56565b8015610f4f5780601f10610f2457610100808354040283529160200191610f4f565b820191906000526020600020905b815481529060010190602001808311610f3257829003601f168201915b505050505090806001018054610f6490613a56565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9090613a56565b8015610fdd5780601f10610fb257610100808354040283529160200191610fdd565b820191906000526020600020905b815481529060010190602001808311610fc057829003601f168201915b505050505090806002018054610ff290613a56565b80601f016020809104026020016040519081016040528092919081815260200182805461101e90613a56565b801561106b5780601f106110405761010080835404028352916020019161106b565b820191906000526020600020905b81548152906001019060200180831161104e57829003601f168201915b5050505050905083565b61080061108181612702565b61108d82612000612735565b5050565b63409feecd1980546003825580156110c85760018160011c14303b106110bf5763f92ee8a96000526004601cfd5b818160ff1b1b91505b506110d68686868686612741565b801561110b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050505050565b61111d3382612735565b50565b600087815260016020908152604091829020825160808101845260048201546001600160a01b0390811682526005909201546001600160701b0381169382019390935261ffff600160701b8404811694820194909452600160801b909204909216606082015260035490911663706261c361119b8a8a610e10565b308b8b338c886040518863ffffffff1660e01b81526004016111c296959493929190613df4565b6000604051808303818588803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b505050505061120189898988886127cf565b6112096128a3565b886001600160a01b031688306001600160a01b03167f8dbb4a330d987fc63ba8cd2cc05a0e33d88ad0dd5c599b8b40bd9962a59efd60868660405161124f929190613e59565b60405180910390a4505050505050505050565b61080061126e816128c2565b61127883836128e8565b505050565b600061128983836128f4565b9392505050565b60005b858110156113f4576000600160008989858181106112b3576112b3613e6d565b602090810292909201358352508101919091526040016000206003549091506001600160a01b031663706261c361131a8a8a868181106112f5576112f5613e6d565b9050602002013589898781811061130e5761130e613e6d565b90506020020135610e10565b308b8b8781811061132d5761132d613e6d565b905060200201358a8a8881811061134657611346613e6d565b90506020020135336000886004016040518863ffffffff1660e01b815260040161137596959493929190613e83565b6000604051808303818588803b15801561138e57600080fd5b505af11580156113a2573d6000803e3d6000fd5b5050505060038201546113c991506001600160401b0380821691600160401b90041661290a565b6113eb818787858181106113df576113df613e6d565b90506020020135612971565b50600101611293565b506114978787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82529093508a92508991829185019084908082843760009201919091525050604080516020601f8a0181900481028201810190925288815292508891508790819084018382808284376000920191909152506129af92505050565b61149f6128a3565b50505050505050565b6114b0612f19565b60408051608081018252600481528151808301835246808252306020808401919091528084019290925283518085018552908152600086815260018352849020546001600160a01b031681830152828401528251908101859052909160608301910160408051601f19818403018152919052905292915050565b60006202a3006001600160401b03164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600082815268aa4ec00224afccfdb76020526040812054606081901c919061271090836115ad576020515490508060601c93505b606084901b1884600019829004811182023d3d3e9396930204935090915050565b638b78c6d8600c9081526000828152602090912054610c77565b8285146115fd57633b800a466000526004601cfd5b8760601b679a31110384e0b0c9178760601b679a31110384e0b0c917816020528160601c99508060601c98508861163c5763ea553b346000526004601cfd5b89331461165f57336000526034600c205461165f57634b6e7f186000526004601cfd5b8660051b5b80156116d1576020810390508087013583602052818a0135600052604060002080548083111561169c5763f4d678b86000526004601cfd5b8290039055602083905260406000208054808301818110156116c6576301336cea6000526004601cfd5b909155506116649050565b505050604051604081528560051b602001604082018160208a03823781604001602084015281602088038383013750888a337f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb60408586010186a45050611736600090565b1561174b5761174b8888888888888888612ac2565b863b156117fa578660005260405163bc197c81815233602082015288604082015260a060608201528560051b60200160c082018160208a0382378160a001806080850152826020890384840137820160a084015260208401601f19860183800183013750808101830160c401905060208282601c8501600080515af16117da573d156117da573d6000833e3d82fd5b50805163bc197c8160e01b146117f857639c05499b6000526004601cfd5b505b5050505050505050565b610800611810816128c2565b6112788383612735565b606083821461183157633b800a466000526004601cfd5b6040519050818152602081018260051b8181016040525b801561188057602081039050808701358060601b679a31110384e0b0c917602052508085013560005260406000205481830152611848565b5050949350505050565b60006112898383612ac7565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b6000828152600160205260409020546001600160a01b03163314611908576040516282b42960e81b815260040160405180910390fd5b60035460405163a308c4a160e01b81526001600160a01b039091169063a308c4a190611938908490600401613ee4565b608060405180830381865afa158015611955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119799190613f52565b60008381526001602090815260409182902083516004820180546001600160a01b0319166001600160a01b0392831617905591840151600582018054948601516060909601516001600160701b039092166001600160801b031990951694909417600160701b61ffff968716021761ffff60801b1916600160801b959091169490940293909317909155905461108d91849116612add565b611a19612b07565b611a236000612b22565b565b6000610800611a33816128c2565b6000808154611a4190613fcf565b918290555060035460405163a308c4a160e01b81529193506000916001600160a01b039091169063a308c4a190611a7c908890600401613ee4565b608060405180830381865afa158015611a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abd9190613f52565b60008481526002602052604090209091508490611ada8282613bed565b9050506040518060c001604052808c6001600160a01b031681526020018b8152602001600081526020018a6001600160401b03168152602001896001600160401b03168152602001828152506001600085815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550602082015181600101556040820151816002015560608201518160030160006101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160030160086101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160040160008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160701b0302191690836001600160701b03160217905550604082015181600101600e6101000a81548161ffff021916908361ffff16021790555060608201518160010160106101000a81548161ffff021916908361ffff16021790555050509050506000611c8d846114a8565b90506000879003611cfe5760048054604051630259fb4f60e01b81526001600160a01b0390911691630259fb4f91611cc79185910161344d565b600060405180830381600087803b158015611ce157600080fd5b505af1158015611cf5573d6000803e3d6000fd5b50505050611de2565b60005b87811015611de0576004546001600160a01b031663139fca60838b8b85818110611d2d57611d2d613e6d565b9050602002810190611d3f9190613fe8565b8c8c86818110611d5157611d51613e6d565b9050602002810190611d639190613fe8565b611d719060a0810190613a8a565b6040518563ffffffff1660e01b8152600401611d909493929190614030565b6000604051808303816000875af1158015611daf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd791908101906140f3565b50600101611d01565b505b83306001600160a01b03167f32c6391be8bb4149a9e840fd1e12fbfe9d410e348f8289ed75cd4a0fcbf0916884604051611e1c9190613859565b60405180910390a350505098975050505050505050565b6000610c77826001610e10565b6000610c87638b78c6d8195490565b6000611e5f856104c088876141da565b600354600087815260016020526040808220905163706261c360e01b81529394506001600160a01b039092169263706261c3928592611eac9230928c928c92339260049081019101613e83565b6000604051808303818588803b158015611ec557600080fd5b505af1158015611ed9573d6000803e3d6000fd5b505050505060005b86811015611f2457611f1c888883818110611efe57611efe613e6d565b9050602002016020810190611f139190613134565b878787876127cf565b600101611ee1565b5061149f6128a3565b6003546001600160a01b031663706261c3611f488787610e10565b3088883389600160008e81526020019081526020016000206004016040518863ffffffff1660e01b8152600401611f8496959493929190613e83565b6000604051808303818588803b158015611f9d57600080fd5b505af1158015611fb1573d6000803e3d6000fd5b5050505050611fc386868685856127cf565b61110b6128a3565b8015159050679a31110384e0b0c96020523360145281600052806034600c2055806000528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206000a35050565b61080061202d816128c2565b6112788383612add565b600081815260016020526040902080546001600160a01b0316331461206e576040516282b42960e81b815260040160405180910390fd5b80546001600160a01b0319166001600160a01b0384161781556120918284612add565b6004546001600160a01b0316630259fb4f6120ab846114a8565b6040518263ffffffff1660e01b81526004016120c7919061344d565b600060405180830381600087803b1580156120e157600080fd5b505af11580156120f5573d6000803e3d6000fd5b50506040516001600160a01b038616925084915030907f546752fd78938d620aa374626a8bae3bd6b3a8adaf0e3370aa094b66f67e5ffc90600090a4505050565b61080061214281612702565b61108d826120006128e8565b600083815260016020526040902080546001600160a01b03163314612185576040516282b42960e81b815260040160405180910390fd5b6003810180546001600160401b038581166001600160801b03199092168217600160401b91861691820217909255604080519182526020820192909252859130917faae76c64ae42a2c6ca16657e13284e2a344614e101b4a52836f37e487ae4126b910160405180910390a350505050565b6121ff612f19565b604080516080810190915280600281526020016040518060400160405280468152602001306001600160a01b03168152508152602001604051806040016040528046815260200161224e611e40565b6001600160a01b03169052815260408051602081810190925260008152910152919050565b61229760405180606001604052806060815260200160608152602001606081525090565b600082815260026020526040908190208151606081019092528054829082906122bf90613a56565b80601f01602080910402602001604051908101604052809291908181526020018280546122eb90613a56565b80156123385780601f1061230d57610100808354040283529160200191612338565b820191906000526020600020905b81548152906001019060200180831161231b57829003601f168201915b5050505050815260200160018201805461235190613a56565b80601f016020809104026020016040519081016040528092919081815260200182805461237d90613a56565b80156123ca5780601f1061239f576101008083540402835291602001916123ca565b820191906000526020600020905b8154815290600101906020018083116123ad57829003601f168201915b505050505081526020016002820180546123e390613a56565b80601f016020809104026020016040519081016040528092919081815260200182805461240f90613a56565b801561245c5780601f106124315761010080835404028352916020019161245c565b820191906000526020600020905b81548152906001019060200180831161243f57829003601f168201915b5050505050815250509050919050565b6060610c875b6000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077c805460609190610cc590613a56565b6124b3612b07565b6124bf81612000612b60565b6124c881612b74565b6004546001600160a01b0316630259fb4f6124e16121f7565b6040518263ffffffff1660e01b81526004016124fd919061344d565b600060405180830381600087803b15801561251757600080fd5b505af115801561252b573d6000803e3d6000fd5b5050505050565b8560601b679a31110384e0b0c9178560601b679a31110384e0b0c917816020528160601c97508060601c9650866125715763ea553b346000526004601cfd5b87331461259457336000526034600c205461259457634b6e7f186000526004601cfd5b85600052604060002091508154808611156125b75763f4d678b86000526004601cfd5b85810383555080602052604060002091508154858101818110156125e3576301336cea6000526004601cfd5b909255505060208390528486337fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6260406000a4843b1561110b5760405163f23a6e61815233602082015286604082015284606082015283608082015260a080820152816020016020840360c08301376020818360c401601c840160008a5af1612675573d15612675573d6000823e3d81fd5b805163f23a6e6160e01b1461149f57639c05499b6000526004601cfd5b61269a612b07565b6126a681612000612b60565b6124c881612bb1565b6118006126bb81612bd8565b60005b8581101561149f576126fa8787838181106126db576126db613e6d565b90506020020160208101906126f09190613134565b86600187876127cf565b6001016126be565b638b78c6d8600c5233600052806020600c20541661111d57638b78c6d81954331461111d576382b429006000526004601cfd5b61108d82826000612c0b565b612749612c64565b61275283612c81565b600380546001600160a01b038088166001600160a01b031992831617909255600480549287169290911691909117905561278e826108006128e8565b61279a836120006128e8565b600080526002602052807fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b61149f8282613bed565b600084815260016020526040902060038101546127ff906001600160401b0380821691600160401b90041661290a565b6128098185612971565b61284b86868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cbd92505050565b856001600160a01b031685306001600160a01b03167f551d74261d03633041c121c69bd68e77805b9d7e5959a8f11e18443ba3711b9f878787604051612893939291906141f1565b60405180910390a4505050505050565b6000341180156128b35750600047115b15611a2357611a233347612d55565b638b78c6d8600c5233600052806020600c20541661111d576382b429006000526004601cfd5b61108d82826001612c0b565b60008182612901856115ce565b16149392505050565b816001600160401b031642108061293c57506001600160401b0381161580159061293c5750806001600160401b031642115b1561108d57604051636447645760e11b81526001600160401b0380841660048301528216602482015260440160405180910390fd5b81600101548183600201600082825461298a919061420b565b925050819055111561108d5760405163d05cb60960e01b815260040160405180910390fd5b81518351146129c657633b800a466000526004601cfd5b8360601b806129dd5763ea553b346000526004601cfd5b80679a31110384e0b0c917602052835160051b5b8015612a305780840151818601516000526040600020805482810181811015612a22576301336cea6000526004601cfd5b9091555050601f19016129f1565b5060405160408152845160051b602001604082018181838960045afa503d60400160208401523d81019050855160051b60200191508181838860045afa50823d8201039150508260601c6000337f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8486a4505050612aac600090565b50833b15610dea57610dea600085858585612d71565b6117fa565b600081612ad3846115ce565b1615159392505050565b60008281526001602052604090206005015461108d9083908390600160801b900461ffff16612e2d565b638b78c6d819543314611a23576382b429006000526004601cfd5b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b612b6a3382612735565b61108d82826128e8565b612b7c612b07565b63389a75e1600c52806000526020600c208054421115612ba457636f5e88186000526004601cfd5b6000905561111d81612b22565b612bb9612b07565b8060601b612bcf57637448fbae6000526004601cfd5b61111d81612b22565b638b78c6d81954331461111d57638b78c6d8600c5233600052806020600c20541661111d576382b429006000526004601cfd5b638b78c6d8600c52826000526020600c20805483811783612c2d575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3505050505050565b63409feecd19805460011661111d5763d7e6bcf86000526004601cfd5b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b8360601b80612cd45763ea553b346000526004601cfd5b679a31110384e0b0c960205284601452836000526040600020805484810181811015612d08576301336cea6000526004601cfd5b808355505050826020528060601c6000337fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6260406000a450833b15610dea57610dea600085858585612e8c565b60003860003884865af161108d5763b12d13eb6000526004601cfd5b60405163bc197c8181523360208201528560601b60601c604082015260a06060820152835160051b60200160c082018181838860045afa503d60a0018060808501523d82019150855160051b60200192508282848860045afa503d0160a0840152835160200191503d018181818660045afa50601c83013d82010391505060208282601c850160008a5af1612e0f573d15612e0f573d6000833e3d82fd5b50805163bc197c8160e01b1461110b57639c05499b6000526004601cfd5b6bffffffffffffffffffffffff1661271080821115612e545763350a88b36000526004601cfd5b8260601b80612e6b5763b4457eaa6000526004601cfd5b8460005268aa4ec00224afccfdb76020528281176040600020555050505050565b60405163f23a6e6181523360208201528560601b60601c604082015283606082015282608082015260a08082015281518060c08301528015612ed8578060e08301826020860160045afa505b6020828260c401601c850160008a5af1612efb573d15612efb573d6000833e3d82fd5b50805163f23a6e6160e01b1461110b57639c05499b6000526004601cfd5b60408051608081019091528060008152602001612f5260405180604001604052806000815260200160006001600160a01b031681525090565b8152602001612f7d60405180604001604052806000815260200160006001600160a01b031681525090565b8152602001606081525090565b600060208284031215612f9c57600080fd5b5035919050565b60005b83811015612fbe578181015183820152602001612fa6565b50506000910152565b60008151808452612fdf816020860160208601612fa3565b601f01601f19169290920160200192915050565b6020815260006112896020830184612fc7565b6001600160a01b038116811461111d57600080fd5b6000806040838503121561302e57600080fd5b823561303981613006565b946020939093013593505050565b60006020828403121561305957600080fd5b81356001600160e01b03198116811461128957600080fd5b60006060828403121561308357600080fd5b50919050565b6000806040838503121561309c57600080fd5b8235915060208301356001600160401b038111156130b957600080fd5b6130c585828601613071565b9150509250929050565b600080604083850312156130e257600080fd5b50508035926020909101359150565b6060815260006131046060830186612fc7565b82810360208401526131168186612fc7565b9050828103604084015261312a8185612fc7565b9695505050505050565b60006020828403121561314657600080fd5b813561128981613006565b600080600080600060a0868803121561316957600080fd5b853561317481613006565b9450602086013561318481613006565b9350604086013561319481613006565b925060608601356131a481613006565b915060808601356001600160401b038111156131bf57600080fd5b6131cb88828901613071565b9150509295509295909350565b60008083601f8401126131ea57600080fd5b5081356001600160401b0381111561320157600080fd5b60208301915083602082850101111561321957600080fd5b9250929050565b60008060008060008060008060c0898b03121561323c57600080fd5b883561324781613006565b97506020890135965060408901359550606089013561326581613006565b945060808901356001600160401b038082111561328157600080fd5b61328d8c838d016131d8565b909650945060a08b01359150808211156132a657600080fd5b506132b38b828c016131d8565b999c989b5096995094979396929594505050565b60008083601f8401126132d957600080fd5b5081356001600160401b038111156132f057600080fd5b6020830191508360208260051b850101111561321957600080fd5b60008060008060008060006080888a03121561332657600080fd5b873561333181613006565b965060208801356001600160401b038082111561334d57600080fd5b6133598b838c016132c7565b909850965060408a013591508082111561337257600080fd5b61337e8b838c016132c7565b909650945060608a013591508082111561339757600080fd5b506133a48a828b016131d8565b989b979a50959850939692959293505050565b600681106133d557634e487b7160e01b600052602160045260246000fd5b9052565b6133e48282516133b7565b6000602082015161340b6020850182805182526020908101516001600160a01b0316910152565b5060408201518051606085015260208101516001600160a01b0316608085015250606082015160c060a085015261344560c0850182612fc7565b949350505050565b60208152600061128960208301846133d9565b60008060008060008060008060a0898b03121561347c57600080fd5b883561348781613006565b9750602089013561349781613006565b965060408901356001600160401b03808211156134b357600080fd5b6134bf8c838d016132c7565b909850965060608b01359150808211156134d857600080fd5b6134e48c838d016132c7565b909650945060808b01359150808211156132a657600080fd5b6000806000806040858703121561351357600080fd5b84356001600160401b038082111561352a57600080fd5b613536888389016132c7565b9096509450602087013591508082111561354f57600080fd5b5061355c878288016132c7565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b818110156135a057835183529284019291840191600101613584565b50909695505050505050565b60006080828403121561308357600080fd5b60008060a083850312156135d157600080fd5b823591506135e284602085016135ac565b90509250929050565b80356001600160401b038116811461360257600080fd5b919050565b600080600080600080600080610140898b03121561362457600080fd5b883561362f81613006565b97506020890135965061364460408a016135eb565b955061365260608a016135eb565b945060808901356001600160401b038082111561366e57600080fd5b61367a8c838d016132c7565b909650945084915061368f8c60a08d016135ac565b93506101208b01359150808211156136a657600080fd5b506136b38b828c01613071565b9150509295985092959890939650565b600080600080600080608087890312156136dc57600080fd5b86356001600160401b03808211156136f357600080fd5b6136ff8a838b016132c7565b90985096506020890135955060408901359450606089013591508082111561372657600080fd5b5061373389828a016131d8565b979a9699509497509295939492505050565b60008060008060008060a0878903121561375e57600080fd5b863561376981613006565b95506020870135945060408701359350606087013561378781613006565b925060808701356001600160401b038111156137a257600080fd5b61373389828a016131d8565b801515811461111d57600080fd5b600080604083850312156137cf57600080fd5b82356137da81613006565b915060208301356137ea816137ae565b809150509250929050565b6000806040838503121561380857600080fd5b8235915060208301356137ea81613006565b80516001600160a01b031682526020808201516001600160701b03169083015260408082015161ffff9081169184019190915260609182015116910152565b60808101610c77828461381a565b6001600160a01b038716815260208101869052604081018590526001600160401b0384811660608301528316608082015261012081016138aa60a083018461381a565b979650505050505050565b6000806000606084860312156138ca57600080fd5b833592506138da602085016135eb565b91506138e8604085016135eb565b90509250925092565b60208152600082516060602084015261390d6080840182612fc7565b90506020840151601f198085840301604086015261392b8383612fc7565b92506040860151915080858403016060860152506139498282612fc7565b95945050505050565b6000806040838503121561396557600080fd5b823561397081613006565b915060208301356137ea81613006565b60008060008060008060a0878903121561399957600080fd5b86356139a481613006565b955060208701356139b481613006565b9450604087013593506060870135925060808701356001600160401b038111156137a257600080fd5b6000806000806000606086880312156139f557600080fd5b85356001600160401b0380821115613a0c57600080fd5b613a1889838a016132c7565b9097509550602088013594506040880135915080821115613a3857600080fd5b50613a45888289016131d8565b969995985093965092949392505050565b600181811c90821680613a6a57607f821691505b60208210810361308357634e487b7160e01b600052602260045260246000fd5b6000808335601e19843603018112613aa157600080fd5b8301803591506001600160401b03821115613abb57600080fd5b60200191503681900382131561321957600080fd5b634e487b7160e01b600052604160045260246000fd5b601f821115611278576000816000526020600020601f850160051c81016020861015613b0f5750805b601f850160051c820191505b8181101561110b57828155600101613b1b565b6001600160401b03831115613b4557613b45613ad0565b613b5983613b538354613a56565b83613ae6565b6000601f841160018114613b8d5760008515613b755750838201355b600019600387901b1c1916600186901b17835561252b565b600083815260209020601f19861690835b82811015613bbe5786850135825560209485019460019092019101613b9e565b5086821015613bdb5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b613bf78283613a8a565b6001600160401b03811115613c0e57613c0e613ad0565b613c2281613c1c8554613a56565b85613ae6565b6000601f821160018114613c565760008315613c3e5750838201355b600019600385901b1c1916600184901b178555613cb0565b600085815260209020601f19841690835b82811015613c875786850135825560209485019460019092019101613c67565b5084821015613ca45760001960f88660031b161c19848701351681555b505060018360011b0185555b50505050613cc16020830183613a8a565b613ccf818360018601613b2e565b5050613cde6040830183613a8a565b610dea818360028601613b2e565b80546001600160a01b03168252600101546001600160701b038116602083015261ffff607082901c8116604084015260809190911c16606090910152565b60a08101613d388285613cec565b8260808301529392505050565b604051608081016001600160401b0381118282101715613d6757613d67613ad0565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613d9557613d95613ad0565b604052919050565b600060408284031215613daf57600080fd5b604051604081018181106001600160401b0382111715613dd157613dd1613ad0565b6040528251613ddf81613006565b81526020928301519281019290925250919050565b6001600160a01b038781168252602082018790526040820186905284811660608301528316608082015261012081016138aa60a083018461381a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000613445602083018486613e30565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038781168252602082018790526040820186905284811660608301528316608082015261012081016138aa60a0830184613cec565b6001600160701b038116811461111d57600080fd5b61ffff8116811461111d57600080fd5b608081018235613ef381613006565b6001600160a01b031682526020830135613f0c81613ebf565b6001600160701b031660208301526040830135613f2881613ed4565b61ffff9081166040840152606084013590613f4282613ed4565b8082166060850152505092915050565b600060808284031215613f6457600080fd5b613f6c613d45565b8251613f7781613006565b81526020830151613f8781613ebf565b60208201526040830151613f9a81613ed4565b60408201526060830151613fad81613ed4565b60608201529392505050565b634e487b7160e01b600052601160045260246000fd5b600060018201613fe157613fe1613fb9565b5060010190565b6000823560be19833603018112613ffe57600080fd5b9190910192915050565b80358252602081013561401a81613006565b6001600160a01b03166020929092019190915250565b60608152600061404360608301876133d9565b828103602084015285356006811061405a57600080fd5b61406482826133b7565b506140756020820160208801614008565b6140856060820160608801614008565b60a0860135601e1987360301811261409c57600080fd5b86016020810190356001600160401b038111156140b857600080fd5b8036038213156140c757600080fd5b60c060a08401526140dc60c084018284613e30565b9250505082810360408401526138aa818587613e30565b6000602080838503121561410657600080fd5b82516001600160401b038082111561411d57600080fd5b908401906080828703121561413157600080fd5b614139613d45565b8251815283830151848201526040830151614153816137ae565b604082015260608301518281111561416a57600080fd5b80840193505086601f84011261417f57600080fd5b82518281111561419157614191613ad0565b6141a3601f8201601f19168601613d6d565b925080835287858286010111156141b957600080fd5b6141c881868501878701612fa3565b50606081019190915295945050505050565b8082028115828204841417610c7757610c77613fb9565b838152604060208201526000613949604083018486613e30565b80820180821115610c7757610c77613fb956fea26469706673582212205d4f4097c9239e9492968fe8c3aeb076caec6178bfffcb5dacde40eb285df7f564736f6c63430008190033