/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, utils, Contract, ContractFactory, Overrides, BigNumberish, } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { LazyNFT, LazyNFTInterface } from "../LazyNFT"; const _abi = [ { inputs: [ { internalType: "address payable", name: "_controlCenter", type: "address", }, { internalType: "string", name: "_name", type: "string", }, { internalType: "string", name: "_symbol", type: "string", }, { internalType: "address", name: "_trustedForwarder", type: "address", }, { internalType: "string", name: "_contractUri", type: "string", }, { internalType: "string", name: "_baseTokenUri", type: "string", }, { internalType: "uint256", name: "_maxSupply", type: "uint256", }, { internalType: "uint256", name: "_royaltyBps", type: "uint256", }, { internalType: "uint256", name: "_feeBps", type: "uint256", }, { internalType: "address", name: "_saleRecipient", type: "address", }, ], stateMutability: "nonpayable", type: "constructor", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "approved", type: "address", }, { indexed: true, internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "Approval", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "operator", type: "address", }, { indexed: false, internalType: "bool", name: "approved", type: "bool", }, ], name: "ApprovalForAll", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "string", name: "uri", type: "string", }, ], name: "BaseTokenURIUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "startTokenId", type: "uint256", }, { indexed: false, internalType: "uint256", name: "quantity", type: "uint256", }, { indexed: false, internalType: "uint256", name: "mintConditionIndex", type: "uint256", }, ], name: "Claimed", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "feeBps", type: "uint256", }, ], name: "FeeUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "FundsWithdrawn", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "prevOwner", type: "address", }, { indexed: false, internalType: "address", name: "newOwner", type: "address", }, ], name: "NewOwner", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Paused", type: "event", }, { anonymous: false, inputs: [ { components: [ { internalType: "uint256", name: "startTimestamp", type: "uint256", }, { internalType: "uint256", name: "maxMintSupply", type: "uint256", }, { internalType: "uint256", name: "currentMintSupply", type: "uint256", }, { internalType: "uint256", name: "quantityLimitPerTransaction", type: "uint256", }, { internalType: "uint256", name: "waitTimeSecondsLimitPerTransaction", type: "uint256", }, { internalType: "bytes32", name: "merkleRoot", type: "bytes32", }, { internalType: "uint256", name: "pricePerToken", type: "uint256", }, { internalType: "address", name: "currency", type: "address", }, ], indexed: false, internalType: "struct LazyNFT.PublicMintCondition[]", name: "mintConditions", type: "tuple[]", }, ], name: "PublicMintConditionUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "bool", name: "transferable", type: "bool", }, ], name: "RestrictedTransferUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "previousAdminRole", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "newAdminRole", type: "bytes32", }, ], name: "RoleAdminChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "RoleGranted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "RoleRevoked", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "royaltyBps", type: "uint256", }, ], name: "RoyaltyUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "supply", type: "uint256", }, ], name: "TotalSupplyUpdated", 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", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Unpaused", type: "event", }, { inputs: [], name: "DEFAULT_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "MINTER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "TRANSFER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], 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: "tokenId", type: "uint256", }, ], name: "burn", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "quantity", type: "uint256", }, { internalType: "bytes32[]", name: "proofs", type: "bytes32[]", }, ], name: "claim", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [], name: "contractURI", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "feeBps", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "getApproved", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getLastStartedMintConditionIndex", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getMintConditionCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, ], name: "getRoleAdmin", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "uint256", name: "index", type: "uint256", }, ], name: "getRoleMember", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, ], name: "getRoleMemberCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "grantRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "hasRole", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, { internalType: "address", name: "operator", type: "address", }, ], name: "isApprovedForAll", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "forwarder", type: "address", }, ], name: "isTrustedForwarder", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "lazyMintAmount", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "string[]", name: "_uris", type: "string[]", }, ], name: "lazyMintBatch", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "maxTotalSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], name: "mintConditions", outputs: [ { internalType: "uint256", name: "startTimestamp", type: "uint256", }, { internalType: "uint256", name: "maxMintSupply", type: "uint256", }, { internalType: "uint256", name: "currentMintSupply", type: "uint256", }, { internalType: "uint256", name: "quantityLimitPerTransaction", type: "uint256", }, { internalType: "uint256", name: "waitTimeSecondsLimitPerTransaction", type: "uint256", }, { internalType: "bytes32", name: "merkleRoot", type: "bytes32", }, { internalType: "uint256", name: "pricePerToken", type: "uint256", }, { internalType: "address", name: "currency", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes[]", name: "data", type: "bytes[]", }, ], name: "multicall", outputs: [ { internalType: "bytes[]", name: "results", type: "bytes[]", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "name", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "uint256", name: "", type: "uint256", }, ], name: "nextMintTimestampByCondition", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "nextMintTokenId", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "nextTokenId", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "owner", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "ownerOf", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "paused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "renounceRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "revokeRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "royaltyBps", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "", 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: "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: [], name: "saleRecipient", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "operator", type: "address", }, { internalType: "bool", name: "approved", type: "bool", }, ], name: "setApprovalForAll", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "string", name: "_uri", type: "string", }, ], name: "setBaseTokenURI", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "string", name: "_URI", type: "string", }, ], name: "setContractURI", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_feeBps", type: "uint256", }, ], name: "setFeeBps", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "maxSupply", type: "uint256", }, ], name: "setMaxTotalSupply", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "_newOwner", type: "address", }, ], name: "setOwner", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { components: [ { internalType: "uint256", name: "startTimestamp", type: "uint256", }, { internalType: "uint256", name: "maxMintSupply", type: "uint256", }, { internalType: "uint256", name: "currentMintSupply", type: "uint256", }, { internalType: "uint256", name: "quantityLimitPerTransaction", type: "uint256", }, { internalType: "uint256", name: "waitTimeSecondsLimitPerTransaction", type: "uint256", }, { internalType: "bytes32", name: "merkleRoot", type: "bytes32", }, { internalType: "uint256", name: "pricePerToken", type: "uint256", }, { internalType: "address", name: "currency", type: "address", }, ], internalType: "struct LazyNFT.PublicMintCondition[]", name: "conditions", type: "tuple[]", }, ], name: "setPublicMintConditions", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bool", name: "_restrictedTransfer", type: "bool", }, ], name: "setRestrictedTransfer", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_royaltyBps", type: "uint256", }, ], name: "setRoyaltyBps", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "_saleRecipient", type: "address", }, ], name: "setSaleRecipient", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes4", name: "interfaceId", type: "bytes4", }, ], name: "supportsInterface", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "symbol", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "index", type: "uint256", }, ], name: "tokenByIndex", 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: [], name: "transfersRestricted", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, ]; const _bytecode = "0x60806040523480156200001157600080fd5b50604051620054c1380380620054c18339810160408190526200003491620006cb565b86898981600290805190602001906200004f9291906200053b565b508051620000659060039060208401906200053b565b5050600c80546001600160a81b0319166101006001600160a01b039485168102919091179091556001600d5560178054610100600160a81b031916938e1690910292909217909155508551620000c39060199060208901906200053b565b508451620000d990601a9060208801906200053b565b50600f849055601880546001600160a01b0319166001600160a01b03831617905562000104620001be565b600e80546001600160a01b0319166001600160a01b03929092169190911790556200013a600062000134620001be565b620001da565b620001697f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a662000134620001be565b620001987f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c62000134620001be565b620001a382620001ea565b620001ae83620002c5565b5050505050505050505062000819565b6000620001d56200039060201b620028d41760201c565b905090565b620001e68282620003cf565b5050565b620002006000620001fa620001be565b62000412565b620002465760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b60448201526064015b60405180910390fd5b612710811115620002895760405162461bcd60e51b815260206004820152600c60248201526b0627073203c3d2031303030360a41b60448201526064016200023d565b60168190556040518181527f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76906020015b60405180910390a150565b620002d56000620001fa620001be565b620003175760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b60448201526064016200023d565b6127108111156200035a5760405162461bcd60e51b815260206004820152600c60248201526b0627073203c3d2031303030360a41b60448201526064016200023d565b60158190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b390602001620002ba565b600c546000906001600160a01b0361010090910416331415620003ba575060131936013560601c90565b620001d56200043d60201b620029011760201c565b620003e682826200044160201b620029051760201c565b60008281526001602090815260409091206200040d918390620029a4620004cb821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b3390565b6200044d828262000412565b620001e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905562000487620001be565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620004e2836001600160a01b038416620004e9565b9392505050565b6000818152600183016020526040812054620005325750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000437565b50600062000437565b8280546200054990620007dc565b90600052602060002090601f0160209004810192826200056d5760008555620005b8565b82601f106200058857805160ff1916838001178555620005b8565b82800160010185558215620005b8579182015b82811115620005b85782518255916020019190600101906200059b565b50620005c6929150620005ca565b5090565b5b80821115620005c65760008155600101620005cb565b80516001600160a01b0381168114620005f957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200062657600080fd5b81516001600160401b0380821115620006435762000643620005fe565b604051601f8301601f19908116603f011681019082821181831017156200066e576200066e620005fe565b816040528381526020925086838588010111156200068b57600080fd5b600091505b83821015620006af578582018301518183018401529082019062000690565b83821115620006c15760008385830101525b9695505050505050565b6000806000806000806000806000806101408b8d031215620006ec57600080fd5b620006f78b620005e1565b60208c0151909a506001600160401b03808211156200071557600080fd5b620007238e838f0162000614565b9a5060408d01519150808211156200073a57600080fd5b620007488e838f0162000614565b99506200075860608e01620005e1565b985060808d01519150808211156200076f57600080fd5b6200077d8e838f0162000614565b975060a08d01519150808211156200079457600080fd5b50620007a38d828e0162000614565b95505060c08b0151935060e08b015192506101008b01519150620007cb6101208c01620005e1565b90509295989b9194979a5092959850565b600181811c90821680620007f157607f821691505b602082108114156200081357634e487b7160e01b600052602260045260246000fd5b50919050565b614c9880620008296000396000f3fe60806040526004361061036b5760003560e01c80635b019b76116101c6578063a217fddf116100f7578063ca15c87311610095578063e88fbd411161006f578063e88fbd4114610a5a578063e8a3d48514610a70578063e985e9c514610a85578063fd59855014610ace57600080fd5b8063ca15c873146109e6578063d539139314610a06578063d547741f14610a3a57600080fd5b8063b7cdd0bc116100d1578063b7cdd0bc14610970578063b88d4fde14610990578063c63adb2b146109b0578063c87b56dd146109c657600080fd5b8063a217fddf1461090e578063a22cb46514610923578063ac9650d81461094357600080fd5b80638423df79116101645780639010d07c1161013e5780639010d07c1461087557806391d1485414610895578063938e3d7b146108d957806395d89b41146108f957600080fd5b80638423df79146108265780638ba448c2146108405780638da5cb5b1461086057600080fd5b80636352211e116101a05780636352211e146107b057806370a08231146107d057806372c27b62146107f057806375794a3c1461081057600080fd5b80635b019b76146107635780635c975abb146107835780635da53d581461079b57600080fd5b80632a55205a116102a05780633f3e4c111161023e57806342966c681161021857806342966c68146106cf5780634ce40a32146106ef5780634f6ccce71461070f578063572b6c051461072f57600080fd5b80633f3e4c111461066f578063428131081461068f57806342842e0e146106af57600080fd5b80632f52ebb71161027a5780632f52ebb7146105fc5780632f745c591461060f57806330176e131461062f57806336568abe1461064f57600080fd5b80632a55205a146105875780632ab4d052146105c65780632f2ff15d146105dc57600080fd5b80631df952db1161030d578063206b60f9116102e7578063206b60f9146104ed57806323b872dd14610521578063248a9ca31461054157806324a9d8531461057157600080fd5b80631df952db146104805780631edab081146104955780631f72d831146104cd57600080fd5b8063095ea7b311610349578063095ea7b3146103ff57806313af40351461042157806318160ddd146104415780631c908d981461046057600080fd5b806301ffc9a71461037057806306fdde03146103a5578063081812fc146103c7575b600080fd5b34801561037c57600080fd5b5061039061038b3660046143a0565b610b32565b60405190151581526020015b60405180910390f35b3480156103b157600080fd5b506103ba610b5e565b60405161039c9190614415565b3480156103d357600080fd5b506103e76103e2366004614428565b610bf0565b6040516001600160a01b03909116815260200161039c565b34801561040b57600080fd5b5061041f61041a366004614456565b610c8a565b005b34801561042d57600080fd5b5061041f61043c366004614482565b610db2565b34801561044d57600080fd5b50600a545b60405190815260200161039c565b34801561046c57600080fd5b5061041f61047b366004614482565b610ee8565b34801561048c57600080fd5b50601254610452565b3480156104a157600080fd5b506104526104b0366004614456565b601360209081526000928352604080842090915290825290205481565b3480156104d957600080fd5b5061041f6104e8366004614428565b610f57565b3480156104f957600080fd5b506104527f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b34801561052d57600080fd5b5061041f61053c36600461449f565b611021565b34801561054d57600080fd5b5061045261055c366004614428565b60009081526020819052604090206001015490565b34801561057d57600080fd5b5061045260165481565b34801561059357600080fd5b506105a76105a23660046144e0565b6110af565b604080516001600160a01b03909316835260208301919091520161039c565b3480156105d257600080fd5b50610452600f5481565b3480156105e857600080fd5b5061041f6105f7366004614502565b61115a565b61041f61060a36600461457e565b611187565b34801561061b57600080fd5b5061045261062a366004614456565b611761565b34801561063b57600080fd5b5061041f61064a3660046145ca565b611809565b34801561065b57600080fd5b5061041f61066a366004614502565b611894565b34801561067b57600080fd5b5061041f61068a366004614428565b611930565b34801561069b57600080fd5b5061041f6106aa36600461463c565b6119b2565b3480156106bb57600080fd5b5061041f6106ca36600461449f565b611db9565b3480156106db57600080fd5b5061041f6106ea366004614428565b611dd4565b3480156106fb57600080fd5b5061041f61070a36600461469f565b611e5d565b34801561071b57600080fd5b5061045261072a366004614428565b611f95565b34801561073b57600080fd5b5061039061074a366004614482565b600c5461010090046001600160a01b0390811691161490565b34801561076f57600080fd5b506018546103e7906001600160a01b031681565b34801561078f57600080fd5b50600c5460ff16610390565b3480156107a757600080fd5b50610452612039565b3480156107bc57600080fd5b506103e76107cb366004614428565b612136565b3480156107dc57600080fd5b506104526107eb366004614482565b6121c1565b3480156107fc57600080fd5b5061041f61080b366004614428565b61225b565b34801561081c57600080fd5b5061045260105481565b34801561083257600080fd5b506017546103909060ff1681565b34801561084c57600080fd5b5061041f61085b3660046146ef565b61231e565b34801561086c57600080fd5b506103e76123ac565b34801561088157600080fd5b506103e76108903660046144e0565b612405565b3480156108a157600080fd5b506103906108b0366004614502565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156108e557600080fd5b5061041f6108f43660046145ca565b612424565b34801561090557600080fd5b506103ba61247d565b34801561091a57600080fd5b50610452600081565b34801561092f57600080fd5b5061041f61093e36600461470c565b61248c565b34801561094f57600080fd5b5061096361095e36600461469f565b61249e565b60405161039c919061473a565b34801561097c57600080fd5b5061041f61098b366004614428565b612593565b34801561099c57600080fd5b5061041f6109ab3660046147b2565b612672565b3480156109bc57600080fd5b5061045260155481565b3480156109d257600080fd5b506103ba6109e1366004614428565b612707565b3480156109f257600080fd5b50610452610a01366004614428565b612827565b348015610a1257600080fd5b506104527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b348015610a4657600080fd5b5061041f610a55366004614502565b61283e565b348015610a6657600080fd5b5061045260115481565b348015610a7c57600080fd5b506103ba612866565b348015610a9157600080fd5b50610390610aa0366004614892565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b348015610ada57600080fd5b50610aee610ae9366004614428565b612875565b604080519889526020890197909752958701949094526060860192909252608085015260a084015260c08301526001600160a01b031660e08201526101000161039c565b6000610b3d826129b9565b80610b5857506001600160e01b0319821663152a902d60e11b145b92915050565b606060028054610b6d906148c0565b80601f0160208091040260200160405190810160405280929190818152602001828054610b99906148c0565b8015610be65780601f10610bbb57610100808354040283529160200191610be6565b820191906000526020600020905b815481529060010190602001808311610bc957829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b0316610c6e5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610c9582612136565b9050806001600160a01b0316836001600160a01b03161415610d035760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610c65565b806001600160a01b0316610d156129de565b6001600160a01b03161480610d315750610d3181610aa06129de565b610da35760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610c65565b610dad83836129e8565b505050565b610dbf60006108b06129de565b610dff5760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b6001600160a01b03811660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16610e865760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e00000000006044820152606401610c65565b600e80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b236491015b60405180910390a15050565b610ef560006108b06129de565b610f355760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b610f6460006108b06129de565b610fa45760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b612710811115610fe55760405162461bcd60e51b815260206004820152600c60248201526b0627073203c3d2031303030360a41b6044820152606401610c65565b60158190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b61103261102c6129de565b82612a56565b6110a45760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610c65565b610dad838383612b4d565b60175460405163f2aab4b360e01b815230600482015260009182916101009091046001600160a01b03169063f2aab4b39060240160206040518083038186803b1580156110fb57600080fd5b505afa15801561110f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113391906148fb565b60155490925061271090611147908561492e565b6111519190614963565b90509250929050565b60008281526020819052604090206001015461117d816111786129de565b612d0c565b610dad8383612d8a565b6002600d5414156111da5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c65565b6002600d5560006111e9612039565b905060006012828154811061120057611200614977565b600091825260209182902060408051610100810182526008909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c08201526007909101546001600160a01b031660e08201529050846112c25760405162461bcd60e51b815260206004820152600d60248201527f6e656564207175616e74697479000000000000000000000000000000000000006044820152606401610c65565b600f54856011546112d3919061498d565b11156113215760405162461bcd60e51b815260206004820152601760248201527f657863656564206d617820737570706c79206c696d69740000000000000000006044820152606401610c65565b60105485601154611332919061498d565b11156113805760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f7420636c61696d20756e6d696e74656420746f6b656e00000000006044820152606401610c65565b80606001518511156113d45760405162461bcd60e51b815260206004820152600f60248201527f657863656564207478206c696d697400000000000000000000000000000000006044820152606401610c65565b80602001518582604001516113e9919061498d565b11156114375760405162461bcd60e51b815260206004820152601660248201527f657863656564206d6178206d696e7420737570706c79000000000000000000006044820152606401610c65565b600060145483611447919061498d565b90506000601360006114576129de565b6001600160a01b0316815260208082019290925260409081016000908120858252909252902054905080158061148d5750804210155b6114d95760405162461bcd60e51b815260206004820152600f60248201527f63616e6e6f74206d696e742079657400000000000000000000000000000000006044820152606401610c65565b60a0830151156115bc5760006114ed6129de565b604051602001611515919060609190911b6bffffffffffffffffffffffff1916815260140190565b60405160208183030381529060405280519060200120905061156e87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060a086015183612dac565b6115ba5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c69642070726f6f66730000000000000000000000000000000000006044820152606401610c65565b505b86601285815481106115d0576115d0614977565b906000526020600020906008020160020160008282546115f0919061498d565b909155505060808301514281019081101561160a57506000195b80601360006116176129de565b6001600160a01b031681526020808201929092526040908101600090812087825290925290205560c0840151156116ae5760008460c001518961165a919061492e565b905060006127106fffffffffffffffffffffffffffffffff1660165483611681919061492e565b61168b9190614963565b9050600061169982846149a5565b90506116aa8760e001518284612dc2565b5050505b60115460005b898110156116fa576116cf6116c76129de565b6011546130b4565b6001601160008282546116e2919061498d565b909155508190506116f2816149bc565b9150506116b4565b506117036129de565b60408051838152602081018c90529081018890526001600160a01b0391909116907f9cdcf2f7714cca3508c7f0110b04a90a80a3a8dd0e35de99689db74d28c5383e9060600160405180910390a250506001600d5550505050505050565b600061176c836121c1565b82106117e05760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610c65565b506001600160a01b03919091166000908152600860209081526040808320938352929052205490565b61181660006108b06129de565b6118565760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b611862601a8383614280565b507fe6e4cd5c2dc7d2c20519b41832cd550fd3ea1186bf299d108179bf71fb8e00e58282604051610edc9291906149d7565b61189c6129de565b6001600160a01b0316816001600160a01b0316146119225760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610c65565b61192c82826130ce565b5050565b61193d60006108b06129de565b61197d5760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b600f8190556040518181527ff8cbdbee6d402ad22cddbc250098e39cd0d24f0fad122f64794577167c605df990602001611016565b6119bf60006108b06129de565b6119ff5760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b60125415611a2e5760125460148054600090611a1c90849061498d565b90915550611a2e905060126000614304565b6000805b82811015611d7b578115611ad157838382818110611a5257611a52614977565b90506101000201600001358210611ad15760405162461bcd60e51b815260206004820152602960248201527f737461727454696d657374616d70206d75737420626520696e20617363656e6460448201527f696e67206f7264657200000000000000000000000000000000000000000000006064820152608401610c65565b6000848483818110611ae557611ae5614977565b905061010002016020013511611b3d5760405162461bcd60e51b815260206004820152601b60248201527f6d6178206d696e7420737570706c792063616e6e6f74206265203000000000006044820152606401610c65565b6000848483818110611b5157611b51614977565b905061010002016060013511611ba95760405162461bcd60e51b815260206004820152601a60248201527f7175616e74697479206c696d69742063616e6e6f7420626520300000000000006044820152606401610c65565b6012604051806101000160405280868685818110611bc957611bc9614977565b611bdd92610100909102013590504261498d565b8152602001868685818110611bf457611bf4614977565b9050610100020160200135815260200160008152602001868685818110611c1d57611c1d614977565b90506101000201606001358152602001868685818110611c3f57611c3f614977565b90506101000201608001358152602001868685818110611c6157611c61614977565b9050610100020160a001358152602001868685818110611c8357611c83614977565b9050610100020160c001358152602001868685818110611ca557611ca5614977565b9050610100020160e0016020810190611cbe9190614482565b6001600160a01b0390811690915282546001808201855560009485526020948590208451600890930201918255938301519381019390935560408201516002840155606082015160038401556080820151600484015560a0820151600584015560c0820151600684015560e090910151600790920180546001600160a01b03191692909116919091179055838382818110611d5b57611d5b614977565b905061010002016000013591508080611d73906149bc565b915050611a32565b507f0d81786d9719fff6cc2cf3c64025550dbba243da255d6c5fa0879e8ad6af83cc6012604051611dac9190614a06565b60405180910390a1505050565b610dad83838360405180602001604052806000815250612672565b611ddf61102c6129de565b611e515760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f766564000000000000000000000000000000006064820152608401610c65565b611e5a816130f0565b50565b611e897f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66108b06129de565b611ec35760405162461bcd60e51b815260206004820152600b60248201526a37b7363c9036b4b73a32b960a91b6044820152606401610c65565b600f54601054611ed490839061498d565b1115611f225760405162461bcd60e51b815260206004820152601560248201527f657863656564206d6178546f74616c537570706c7900000000000000000000006044820152606401610c65565b60105460005b82811015611f8d57838382818110611f4257611f42614977565b9050602002810190611f549190614aa4565b6000848152601b60205260409020611f6d929091614280565b50611f7960018361498d565b915080611f85816149bc565b915050611f28565b506010555050565b6000611fa0600a5490565b82106120145760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610c65565b600a828154811061202757612027614977565b90600052602060002001549050919050565b60125460009061208b5760405162461bcd60e51b815260206004820152601860248201527f6e6f207075626c6963206d696e7420636f6e646974696f6e00000000000000006044820152606401610c65565b6012545b80156120ed5760126120a26001836149a5565b815481106120b2576120b2614977565b90600052602060002090600802016000015442106120db576120d56001826149a5565b91505090565b806120e581614aeb565b91505061208f565b5060405162461bcd60e51b815260206004820152601860248201527f6e6f20616374697665206d696e7420636f6e646974696f6e00000000000000006044820152606401610c65565b6000818152600460205260408120546001600160a01b031680610b585760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610c65565b60006001600160a01b03821661223f5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610c65565b506001600160a01b031660009081526005602052604090205490565b61226860006108b06129de565b6122a85760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b6127108111156122e95760405162461bcd60e51b815260206004820152600c60248201526b0627073203c3d2031303030360a41b6044820152606401610c65565b60168190556040518181527f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c7690602001611016565b61232b60006108b06129de565b61236b5760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b6017805460ff19168215159081179091556040519081527ffb4ba02cee22486df888d7ffb97c6100ec3193781e025cb9a4bc6fc358d626cc90602001611016565b600e546001600160a01b031660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff166123f35750600090565b600e546001600160a01b03165b905090565b600082815260016020526040812061241d9083613197565b9392505050565b61243160006108b06129de565b6124715760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b610dad60198383614280565b606060038054610b6d906148c0565b61192c6124976129de565b83836131a3565b60608167ffffffffffffffff8111156124b9576124b961479c565b6040519080825280602002602001820160405280156124ec57816020015b60608152602001906001900390816124d75790505b50905060005b8281101561258c5761255c3085858481811061251057612510614977565b90506020028101906125229190614aa4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061327292505050565b82828151811061256e5761256e614977565b60200260200101819052508080612584906149bc565b9150506124f2565b5092915050565b6125bf7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66108b06129de565b6125f95760405162461bcd60e51b815260206004820152600b60248201526a37b7363c9036b4b73a32b960a91b6044820152606401610c65565b600f548160105461260a919061498d565b11156126585760405162461bcd60e51b815260206004820152601560248201527f657863656564206d6178546f74616c537570706c7900000000000000000000006044820152606401610c65565b806010600082825461266a919061498d565b909155505050565b61268361267d6129de565b83612a56565b6126f55760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610c65565b61270184848484613297565b50505050565b60606000612713613315565b6000848152601b6020526040812080549293509091612731906148c0565b905011156127d8576000838152601b602052604090208054612752906148c0565b80601f016020809104026020016040519081016040528092919081815260200182805461277e906148c0565b80156127cb5780601f106127a0576101008083540402835291602001916127cb565b820191906000526020600020905b8154815290600101906020018083116127ae57829003601f168201915b5050505050915050919050565b80511561281157806127e984613324565b6040516020016127fa929190614b02565b604051602081830303815290604052915050919050565b5050604080516020810190915260008152919050565b6000818152600160205260408120610b5890613422565b60008281526020819052604090206001015461285c816111786129de565b610dad83836130ce565b606060198054610b6d906148c0565b6012818154811061288557600080fd5b600091825260209091206008909102018054600182015460028301546003840154600485015460058601546006870154600790970154959750939592949193909290916001600160a01b031688565b600c5460009061010090046001600160a01b03163314156128fc575060131936013560601c90565b503390565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661192c576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556129606129de565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061241d836001600160a01b03841661342c565b60006001600160e01b0319821663780e9d6360e01b1480610b585750610b588261347b565b60006124006128d4565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612a1d82612136565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b0316612acf5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610c65565b6000612ada83612136565b9050806001600160a01b0316846001600160a01b03161480612b155750836001600160a01b0316612b0a84610bf0565b6001600160a01b0316145b80612b4557506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316612b6082612136565b6001600160a01b031614612bdc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610c65565b6001600160a01b038216612c3e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c65565b612c498383836134bb565b612c546000826129e8565b6001600160a01b0383166000908152600560205260408120805460019290612c7d9084906149a5565b90915550506001600160a01b0382166000908152600560205260408120805460019290612cab90849061498d565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661192c57612d48816001600160a01b031660146135ce565b612d538360206135ce565b604051602001612d64929190614b31565b60408051601f198184030181529082905262461bcd60e51b8252610c6591600401614415565b612d948282612905565b6000828152600160205260409020610dad90826129a4565b600082612db98584613777565b14949350505050565b60185460175460405163f2aab4b360e01b81523060048201526001600160a01b03928316926000926101009004169063f2aab4b39060240160206040518083038186803b158015612e1257600080fd5b505afa158015612e26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4a91906148fb565b90506001600160a01b038516612ed157612e64838561498d565b3414612eb25760405162461bcd60e51b815260206004820152600f60248201527f76616c756520213d20616d6f756e7400000000000000000000000000000000006044820152606401610c65565b612ebc8285613823565b8215612ecc57612ecc8184613823565b6130ad565b846001600160a01b03166323b872dd612ee86129de565b6040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908516602482015260448101879052606401602060405180830381600087803b158015612f3857600080fd5b505af1158015612f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f709190614bb2565b612fbc5760405162461bcd60e51b815260206004820152601a60248201527f6661696c656420746f207472616e73666572207061796d656e740000000000006044820152606401610c65565b82156130ad57846001600160a01b03166323b872dd612fd96129de565b6040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908416602482015260448101869052606401602060405180830381600087803b15801561302957600080fd5b505af115801561303d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130619190614bb2565b6130ad5760405162461bcd60e51b815260206004820152601660248201527f6661696c656420746f207472616e7366657220666565000000000000000000006044820152606401610c65565b5050505050565b61192c82826040518060200160405280600081525061393c565b6130d882826139ba565b6000828152600160205260409020610dad9082613a57565b60006130fb82612136565b9050613109816000846134bb565b6131146000836129e8565b6001600160a01b038116600090815260056020526040812080546001929061313d9084906149a5565b909155505060008281526004602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600061241d8383613a6c565b816001600160a01b0316836001600160a01b031614156132055760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c65565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b606061241d8383604051806060016040528060278152602001614c6560279139613a96565b6132a2848484612b4d565b6132ae84848484613b81565b6127015760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610c65565b6060601a8054610b6d906148c0565b6060816133485750506040805180820190915260018152600360fc1b602082015290565b8160005b8115613372578061335c816149bc565b915061336b9050600a83614963565b915061334c565b60008167ffffffffffffffff81111561338d5761338d61479c565b6040519080825280601f01601f1916602001820160405280156133b7576020820181803683370190505b5090505b8415612b45576133cc6001836149a5565b91506133d9600a86614bcf565b6133e490603061498d565b60f81b8183815181106133f9576133f9614977565b60200101906001600160f81b031916908160001a90535061341b600a86614963565b94506133bb565b6000610b58825490565b600081815260018301602052604081205461347357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b58565b506000610b58565b60006001600160e01b031982166380ac58cd60e01b14806134ac57506001600160e01b03198216635b5e139f60e01b145b80610b585750610b5882613ce0565b6134c6838383613d05565b60175460ff1680156134e057506001600160a01b03831615155b80156134f457506001600160a01b03821615155b15610dad576001600160a01b03831660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff168061357657506001600160a01b03821660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff165b610dad5760405162461bcd60e51b815260206004820152602360248201527f7265737472696374656420746f205452414e534645525f524f4c4520686f6c6460448201526265727360e81b6064820152608401610c65565b606060006135dd83600261492e565b6135e890600261498d565b67ffffffffffffffff8111156136005761360061479c565b6040519080825280601f01601f19166020018201604052801561362a576020820181803683370190505b509050600360fc1b8160008151811061364557613645614977565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061367457613674614977565b60200101906001600160f81b031916908160001a905350600061369884600261492e565b6136a390600161498d565b90505b6001811115613728577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106136e4576136e4614977565b1a60f81b8282815181106136fa576136fa614977565b60200101906001600160f81b031916908160001a90535060049490941c9361372181614aeb565b90506136a6565b50831561241d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c65565b600081815b845181101561381b57600085828151811061379957613799614977565b602002602001015190508083116137db576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250613808565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b5080613813816149bc565b91505061377c565b509392505050565b804710156138735760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610c65565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146138c0576040519150601f19603f3d011682016040523d82523d6000602084013e6138c5565b606091505b5050905080610dad5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610c65565b6139468383613d89565b6139536000848484613b81565b610dad5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610c65565b6000828152602081815260408083206001600160a01b038516845290915290205460ff161561192c576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055613a136129de565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600061241d836001600160a01b038416613ed7565b6000826000018281548110613a8357613a83614977565b9060005260206000200154905092915050565b6060833b613b0c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610c65565b600080856001600160a01b031685604051613b279190614be3565b600060405180830381855af49150503d8060008114613b62576040519150601f19603f3d011682016040523d82523d6000602084013e613b67565b606091505b5091509150613b77828286613fca565b9695505050505050565b60006001600160a01b0384163b15613cd557836001600160a01b031663150b7a02613baa6129de565b8786866040518563ffffffff1660e01b8152600401613bcc9493929190614bff565b602060405180830381600087803b158015613be657600080fd5b505af1925050508015613c16575060408051601f3d908101601f19168201909252613c1391810190614c31565b60015b613cbb573d808015613c44576040519150601f19603f3d011682016040523d82523d6000602084013e613c49565b606091505b508051613cb35760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610c65565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612b45565b506001949350505050565b60006001600160e01b03198216635a05180f60e01b1480610b585750610b5882614003565b613d10838383614038565b600c5460ff1615610dad5760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201527f68696c65207061757365640000000000000000000000000000000000000000006064820152608401610c65565b6001600160a01b038216613ddf5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c65565b6000818152600460205260409020546001600160a01b031615613e445760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c65565b613e50600083836134bb565b6001600160a01b0382166000908152600560205260408120805460019290613e7990849061498d565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008181526001830160205260408120548015613fc0576000613efb6001836149a5565b8554909150600090613f0f906001906149a5565b9050818114613f74576000866000018281548110613f2f57613f2f614977565b9060005260206000200154905080876000018481548110613f5257613f52614977565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613f8557613f85614c4e565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b58565b6000915050610b58565b60608315613fd957508161241d565b825115613fe95782518084602001fd5b8160405162461bcd60e51b8152600401610c659190614415565b60006001600160e01b03198216637965db0b60e01b1480610b5857506301ffc9a760e01b6001600160e01b0319831614610b58565b6001600160a01b0383166140935761408e81600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b6140b6565b816001600160a01b0316836001600160a01b0316146140b6576140b683826140f0565b6001600160a01b0382166140cd57610dad8161418d565b826001600160a01b0316826001600160a01b031614610dad57610dad828261423c565b600060016140fd846121c1565b61410791906149a5565b60008381526009602052604090205490915080821461415a576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a5460009061419f906001906149a5565b6000838152600b6020526040812054600a80549394509092849081106141c7576141c7614977565b9060005260206000200154905080600a83815481106141e8576141e8614977565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a80548061422057614220614c4e565b6001900381819060005260206000200160009055905550505050565b6000614247836121c1565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b82805461428c906148c0565b90600052602060002090601f0160209004810192826142ae57600085556142f4565b82601f106142c75782800160ff198235161785556142f4565b828001600101855582156142f4579182015b828111156142f45782358255916020019190600101906142d9565b50614300929150614325565b5090565b5080546000825560080290600052602060002090810190611e5a919061433a565b5b808211156143005760008155600101614326565b5b80821115614300576000808255600182018190556002820181905560038201819055600482018190556005820181905560068201556007810180546001600160a01b031916905560080161433b565b6001600160e01b031981168114611e5a57600080fd5b6000602082840312156143b257600080fd5b813561241d8161438a565b60005b838110156143d85781810151838201526020016143c0565b838111156127015750506000910152565b600081518084526144018160208601602086016143bd565b601f01601f19169290920160200192915050565b60208152600061241d60208301846143e9565b60006020828403121561443a57600080fd5b5035919050565b6001600160a01b0381168114611e5a57600080fd5b6000806040838503121561446957600080fd5b823561447481614441565b946020939093013593505050565b60006020828403121561449457600080fd5b813561241d81614441565b6000806000606084860312156144b457600080fd5b83356144bf81614441565b925060208401356144cf81614441565b929592945050506040919091013590565b600080604083850312156144f357600080fd5b50508035926020909101359150565b6000806040838503121561451557600080fd5b82359150602083013561452781614441565b809150509250929050565b60008083601f84011261454457600080fd5b50813567ffffffffffffffff81111561455c57600080fd5b6020830191508360208260051b850101111561457757600080fd5b9250929050565b60008060006040848603121561459357600080fd5b83359250602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701614532565b9497909650939450505050565b600080602083850312156145dd57600080fd5b823567ffffffffffffffff808211156145f557600080fd5b818501915085601f83011261460957600080fd5b81358181111561461857600080fd5b86602082850101111561462a57600080fd5b60209290920196919550909350505050565b6000806020838503121561464f57600080fd5b823567ffffffffffffffff8082111561466757600080fd5b818501915085601f83011261467b57600080fd5b81358181111561468a57600080fd5b8660208260081b850101111561462a57600080fd5b600080602083850312156146b257600080fd5b823567ffffffffffffffff8111156146c957600080fd5b6146d585828601614532565b90969095509350505050565b8015158114611e5a57600080fd5b60006020828403121561470157600080fd5b813561241d816146e1565b6000806040838503121561471f57600080fd5b823561472a81614441565b91506020830135614527816146e1565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561478f57603f1988860301845261477d8583516143e9565b94509285019290850190600101614761565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156147c857600080fd5b84356147d381614441565b935060208501356147e381614441565b925060408501359150606085013567ffffffffffffffff8082111561480757600080fd5b818701915087601f83011261481b57600080fd5b81358181111561482d5761482d61479c565b604051601f8201601f19908116603f011681019083821181831017156148555761485561479c565b816040528281528a602084870101111561486e57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156148a557600080fd5b82356148b081614441565b9150602083013561452781614441565b600181811c908216806148d457607f821691505b602082108114156148f557634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561490d57600080fd5b815161241d81614441565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561494857614948614918565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826149725761497261494d565b500490565b634e487b7160e01b600052603260045260246000fd5b600082198211156149a0576149a0614918565b500190565b6000828210156149b7576149b7614918565b500390565b60006000198214156149d0576149d0614918565b5060010190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020808301818452808554808352604092508286019150866000528360002060005b82811015614a975781548452600180830154878601526002830154868601526003830154606086015260048301546080860152600583015460a0860152600683015460c086015260078301546001600160a01b031660e08601526101009094019360089092019101614a2a565b5091979650505050505050565b6000808335601e19843603018112614abb57600080fd5b83018035915067ffffffffffffffff821115614ad657600080fd5b60200191503681900382131561457757600080fd5b600081614afa57614afa614918565b506000190190565b60008351614b148184602088016143bd565b835190830190614b288183602088016143bd565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614b698160178501602088016143bd565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614ba68160288401602088016143bd565b01602801949350505050565b600060208284031215614bc457600080fd5b815161241d816146e1565b600082614bde57614bde61494d565b500690565b60008251614bf58184602087016143bd565b9190910192915050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152613b7760808301846143e9565b600060208284031215614c4357600080fd5b815161241d8161438a565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a"; type LazyNFTConstructorParams = | [signer?: Signer] | ConstructorParameters; const isSuperArgs = ( xs: LazyNFTConstructorParams ): xs is ConstructorParameters => xs.length > 1; export class LazyNFT__factory extends ContractFactory { constructor(...args: LazyNFTConstructorParams) { if (isSuperArgs(args)) { super(...args); } else { super(_abi, _bytecode, args[0]); } } deploy( _controlCenter: string, _name: string, _symbol: string, _trustedForwarder: string, _contractUri: string, _baseTokenUri: string, _maxSupply: BigNumberish, _royaltyBps: BigNumberish, _feeBps: BigNumberish, _saleRecipient: string, overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy( _controlCenter, _name, _symbol, _trustedForwarder, _contractUri, _baseTokenUri, _maxSupply, _royaltyBps, _feeBps, _saleRecipient, overrides || {} ) as Promise; } getDeployTransaction( _controlCenter: string, _name: string, _symbol: string, _trustedForwarder: string, _contractUri: string, _baseTokenUri: string, _maxSupply: BigNumberish, _royaltyBps: BigNumberish, _feeBps: BigNumberish, _saleRecipient: string, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction( _controlCenter, _name, _symbol, _trustedForwarder, _contractUri, _baseTokenUri, _maxSupply, _royaltyBps, _feeBps, _saleRecipient, overrides || {} ); } attach(address: string): LazyNFT { return super.attach(address) as LazyNFT; } connect(signer: Signer): LazyNFT__factory { return super.connect(signer) as LazyNFT__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): LazyNFTInterface { return new utils.Interface(_abi) as LazyNFTInterface; } static connect( address: string, signerOrProvider: Signer | Provider ): LazyNFT { return new Contract(address, _abi, signerOrProvider) as LazyNFT; } }