[ { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" }, { "internalType": "address", "name": "_aiDegenTokenAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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": "values", "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": "value", "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" }, { "inputs": [], "name": "COMMON", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "COMMON_RATE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "COMMON_WEIGHT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "EPIC", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "EPIC_RATE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "EPIC_WEIGHT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LEGENDARY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LEGENDARY_RATE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LEGENDARY_WEIGHT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RARE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RARE_RATE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RARE_WEIGHT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNCOMMON", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNCOMMON_RATE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNCOMMON_WEIGHT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "aiDegenToken", "outputs": [ { "internalType": "contract AIDegenToken", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getClaimableAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialAiDegenTokenBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintPerAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "mintedCountByAddress", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintingEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "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": "value", "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": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxMint", "type": "uint256" } ], "name": "setMaxMintPerAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_mintingEnabled", "type": "bool" } ], "name": "setMintingEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startClaim", "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": "totalMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalWeight", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040526005600455600060055560006006556001600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff0219169083151502179055503480156200005657600080fd5b5060405162003f3c38038062003f3c83398181016040528101906200007c919062000433565b33826200008f816200016060201b60201c565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001055760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000fc9190620004aa565b60405180910390fd5b62000116816200017560201b60201c565b5080600860026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620007f9565b806002908162000171919062000712565b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002a48262000259565b810181811067ffffffffffffffff82111715620002c657620002c56200026a565b5b80604052505050565b6000620002db6200023b565b9050620002e9828262000299565b919050565b600067ffffffffffffffff8211156200030c576200030b6200026a565b5b620003178262000259565b9050602081019050919050565b60005b838110156200034457808201518184015260208101905062000327565b60008484015250505050565b6000620003676200036184620002ee565b620002cf565b90508281526020810184848401111562000386576200038562000254565b5b6200039384828562000324565b509392505050565b600082601f830112620003b357620003b26200024f565b5b8151620003c584826020860162000350565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003fb82620003ce565b9050919050565b6200040d81620003ee565b81146200041957600080fd5b50565b6000815190506200042d8162000402565b92915050565b600080604083850312156200044d576200044c62000245565b5b600083015167ffffffffffffffff8111156200046e576200046d6200024a565b5b6200047c858286016200039b565b92505060206200048f858286016200041c565b9150509250929050565b620004a481620003ee565b82525050565b6000602082019050620004c1600083018462000499565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051a57607f821691505b60208210810362000530576200052f620004d2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200059a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200055b565b620005a686836200055b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005f3620005ed620005e784620005be565b620005c8565b620005be565b9050919050565b6000819050919050565b6200060f83620005d2565b620006276200061e82620005fa565b84845462000568565b825550505050565b600090565b6200063e6200062f565b6200064b81848462000604565b505050565b5b8181101562000673576200066760008262000634565b60018101905062000651565b5050565b601f821115620006c2576200068c8162000536565b62000697846200054b565b81016020851015620006a7578190505b620006bf620006b6856200054b565b83018262000650565b50505b505050565b600082821c905092915050565b6000620006e760001984600802620006c7565b1980831691505092915050565b6000620007028383620006d4565b9150826002028217905092915050565b6200071d82620004c7565b67ffffffffffffffff8111156200073957620007386200026a565b5b62000745825462000501565b6200075282828562000677565b600060209050601f8311600181146200078a576000841562000775578287015190505b620007818582620006f4565b865550620007f1565b601f1984166200079a8662000536565b60005b82811015620007c4578489015182556001820191506020850194506020810190506200079d565b86831015620007e45784890151620007e0601f891682620006d4565b8355505b6001600288020188555050505b505050505050565b61373380620008096000396000f3fe608060405234801561001057600080fd5b50600436106102525760003560e01c8063572849c411610146578063a22cb465116100c3578063e12f3a6111610087578063e12f3a6114610688578063e140d1e1146106b8578063e985e9c5146106d6578063ecbfc07714610706578063f242432a14610710578063f2fde38b1461072c57610252565b8063a22cb465146105f4578063a2309ff814610610578063b15bb8071461062e578063c2e0821b1461064c578063e0b8fd861461066a57610252565b80638da5cb5b1161010a5780638da5cb5b1461055e5780638e6cded11461057c5780639197773f1461059a57806396c82e57146105b85780639fd6db12146105d657610252565b8063572849c4146104dc5780635b89e639146104fa578063715018a614610518578063816171c0146105225780638467db1c1461054057610252565b80632866ed21116101d45780634048ecf2116101985780634048ecf21461044a57806346e6a86c146104685780634e1273f4146104865780634e71d92d146104b65780634ea3871a146104c057610252565b80632866ed21146103b65780632eb2c2d6146103d457806332cb6b0c146103f05780633614ba041461040e5780633a011e151461042c57610252565b80631249c58b1161021b5780631249c58b14610336578063146e3956146103405780631e14d44b1461035e578063208bf31f1461037a57806327daa3be1461039857610252565b8062fdd58e1461025757806301ffc9a714610287578063042c39f5146102b75780630811baec146102d55780630e89341c14610306575b600080fd5b610271600480360381019061026c9190612454565b610748565b60405161027e91906124a3565b60405180910390f35b6102a1600480360381019061029c9190612516565b6107a2565b6040516102ae919061255e565b60405180910390f35b6102bf610884565b6040516102cc91906124a3565b60405180910390f35b6102ef60048036038101906102ea9190612579565b610889565b6040516102fd9291906125a6565b60405180910390f35b610320600480360381019061031b91906125cf565b6108ad565b60405161032d919061268c565b60405180910390f35b61033e610941565b005b610348610bf9565b60405161035591906124a3565b60405180910390f35b610378600480360381019061037391906125cf565b610bfe565b005b610382610c10565b60405161038f91906124a3565b60405180910390f35b6103a0610c16565b6040516103ad91906124a3565b60405180910390f35b6103be610c1b565b6040516103cb919061255e565b60405180910390f35b6103ee60048036038101906103e991906128ab565b610c2e565b005b6103f8610cd6565b60405161040591906124a3565b60405180910390f35b610416610cdc565b60405161042391906124a3565b60405180910390f35b610434610ce1565b60405161044191906124a3565b60405180910390f35b610452610ce6565b60405161045f91906129d9565b60405180910390f35b610470610d0c565b60405161047d91906124a3565b60405180910390f35b6104a0600480360381019061049b9190612ab7565b610d11565b6040516104ad9190612bed565b60405180910390f35b6104be610e1a565b005b6104da60048036038101906104d59190612c3b565b610f5d565b005b6104e4610f82565b6040516104f191906124a3565b60405180910390f35b610502610f88565b60405161050f91906124a3565b60405180910390f35b610520610f8d565b005b61052a610fa1565b60405161053791906124a3565b60405180910390f35b610548610fa6565b60405161055591906124a3565b60405180910390f35b610566610fab565b6040516105739190612c77565b60405180910390f35b610584610fd5565b60405161059191906124a3565b60405180910390f35b6105a2610fda565b6040516105af91906124a3565b60405180910390f35b6105c0610fdf565b6040516105cd91906124a3565b60405180910390f35b6105de610fe5565b6040516105eb919061255e565b60405180910390f35b61060e60048036038101906106099190612c92565b610ff8565b005b61061861100e565b60405161062591906124a3565b60405180910390f35b610636611014565b60405161064391906124a3565b60405180910390f35b610654611019565b60405161066191906124a3565b60405180910390f35b61067261101e565b60405161067f91906124a3565b60405180910390f35b6106a2600480360381019061069d9190612579565b611023565b6040516106af91906124a3565b60405180910390f35b6106c0611154565b6040516106cd91906124a3565b60405180910390f35b6106f060048036038101906106eb9190612cd2565b611159565b6040516106fd919061255e565b60405180910390f35b61070e6111ed565b005b61072a60048036038101906107259190612d12565b61135d565b005b61074660048036038101906107419190612579565b611405565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061086d57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061087d575061087c8261148b565b5b9050919050565b603c81565b60096020528060005260406000206000915090508060000154908060010154905082565b6060600280546108bc90612dd8565b80601f01602080910402602001604051908101604052809291908181526020018280546108e890612dd8565b80156109355780601f1061090a57610100808354040283529160200191610935565b820191906000526020600020905b81548152906001019060200180831161091857829003601f168201915b50505050509050919050565b600860009054906101000a900460ff16610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790612e55565b60405180910390fd5b61138860055411156109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce90612ec1565b60405180910390fd5b600454600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5590612f2d565b60405180910390fd5b4262015180600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154610ab09190612f7c565b10610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae790612ffc565b60405180910390fd5b6000610afa6114f5565b90506000610b07826115e2565b9050610b253383600160405180602001604052806000815250611631565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000815480929190610b789061301c565b919050555042600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555060056000815480929190610bd79061301c565b91905055508060066000828254610bee9190612f7c565b925050819055505050565b600381565b610c066116ca565b8060048190555050565b60075481565b600a81565b600860019054906101000a900460ff1681565b6000610c38611751565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610c7d5750610c7b8682611159565b155b15610cc15780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610cb8929190613064565b60405180910390fd5b610cce8686868686611759565b505050505050565b61138881565b606481565b600181565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b60608151835114610d5d57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610d549291906125a6565b60405180910390fd5b6000835167ffffffffffffffff811115610d7a57610d796126b3565b5b604051908082528060200260200182016040528015610da85781602001602082028036833780820191505090505b50905060005b8451811015610e0f57610de5610dcd828761185190919063ffffffff16565b610de0838761186590919063ffffffff16565b610748565b828281518110610df857610df761308d565b5b602002602001018181525050806001019050610dae565b508091505092915050565b600860019054906101000a900460ff16610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090613108565b60405180910390fd5b6000610e7433611023565b905060008103610eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb090613174565b60405180910390fd5b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610f16929190613194565b6020604051808303816000875af1158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5991906131d2565b5050565b610f656116ca565b80600860006101000a81548160ff02191690831515021790555050565b60045481565b600181565b610f956116ca565b610f9f6000611879565b565b600281565b600381565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b81565b600381565b60065481565b600860009054906101000a900460ff1681565b61100a611003611751565b838361193f565b5050565b60055481565b601981565b601981565b600181565b6000600860019054906101000a900460ff16611074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b90613108565b60405180910390fd5b6000611081836000610748565b90506000611090846001610748565b9050600061109f856002610748565b905060006110ae866003610748565b905060006110bd876004610748565b905060006064826110ce91906131ff565b6019846110db91906131ff565b600a866110e891906131ff565b6003886110f591906131ff565b60018a61110291906131ff565b61110c9190612f7c565b6111169190612f7c565b6111209190612f7c565b61112a9190612f7c565b90506006546007548261113d91906131ff565b6111479190613270565b9650505050505050919050565b600481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111f56116ca565b6000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112529190612c77565b602060405180830381865afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129391906132b6565b9050600081036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90613355565b60405180910390fd5b60006006540361131d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611314906133c1565b60405180910390fd5b6000600860006101000a81548160ff0219169083151502179055506001600860016101000a81548160ff0219169083151502179055508060078190555050565b6000611367611751565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156113ac57506113aa8682611159565b155b156113f05780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016113e7929190613064565b60405180910390fd5b6113fd8686868686611aaf565b505050505050565b61140d6116ca565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361147f5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016114769190612c77565b60405180910390fd5b61148881611879565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000806064324260014361150991906133e1565b4060055460405160200161152094939291906134a9565b6040516020818303038152906040528051906020012060001c61154391906134f7565b9050603c8110156115585760009150506115df565b6019603c6115669190612f7c565b8110156115775760019150506115df565b600b6019603c6115879190612f7c565b6115919190612f7c565b8110156115a25760029150506115df565b6003600b6019603c6115b49190612f7c565b6115be9190612f7c565b6115c89190612f7c565b8110156115d95760039150506115df565b60049150505b90565b60008082036115f4576001905061162c565b60018203611605576003905061162c565b6002820361161657600a905061162c565b60038203611627576019905061162c565b606490505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036116a35760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161169a9190612c77565b60405180910390fd5b6000806116b08585611bba565b915091506116c2600087848487611bea565b505050505050565b6116d2611751565b73ffffffffffffffffffffffffffffffffffffffff166116f0610fab565b73ffffffffffffffffffffffffffffffffffffffff161461174f57611713611751565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117469190612c77565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117cb5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117c29190612c77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361183d5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016118349190612c77565b60405180910390fd5b61184a8585858585611bea565b5050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119b15760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016119a89190612c77565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611aa2919061255e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b215760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611b189190612c77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b935760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611b8a9190612c77565b60405180910390fd5b600080611ba08585611bba565b91509150611bb18787848487611bea565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b611bf685858585611c9c565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611c95576000611c34611751565b90506001845103611c84576000611c5560008661186590919063ffffffff16565b90506000611c6d60008661186590919063ffffffff16565b9050611c7d838989858589612044565b5050611c93565b611c928187878787876121f8565b5b505b5050505050565b8051825114611ce657815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611cdd9291906125a6565b60405180910390fd5b6000611cf0611751565b905060005b8351811015611eff576000611d13828661186590919063ffffffff16565b90506000611d2a838661186590919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611e5757600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611dff57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611df69493929190613528565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611ef2578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611eea9190612f7c565b925050819055505b5050806001019050611cf5565b506001835103611fbe576000611f1f60008561186590919063ffffffff16565b90506000611f3760008561186590919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611faf9291906125a6565b60405180910390a4505061203d565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161203492919061356d565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156121f0578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016120a59594939291906135f9565b6020604051808303816000875af19250505080156120e157506040513d601f19601f820116820180604052508101906120de9190613668565b60015b612165573d8060008114612111576040519150601f19603f3d011682016040523d82523d6000602084013e612116565b606091505b50600081510361215d57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016121549190612c77565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146121ee57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016121e59190612c77565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156123a4578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612259959493929190613695565b6020604051808303816000875af192505050801561229557506040513d601f19601f820116820180604052508101906122929190613668565b60015b612319573d80600081146122c5576040519150601f19603f3d011682016040523d82523d6000602084013e6122ca565b606091505b50600081510361231157846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016123089190612c77565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146123a257846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016123999190612c77565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123eb826123c0565b9050919050565b6123fb816123e0565b811461240657600080fd5b50565b600081359050612418816123f2565b92915050565b6000819050919050565b6124318161241e565b811461243c57600080fd5b50565b60008135905061244e81612428565b92915050565b6000806040838503121561246b5761246a6123b6565b5b600061247985828601612409565b925050602061248a8582860161243f565b9150509250929050565b61249d8161241e565b82525050565b60006020820190506124b86000830184612494565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124f3816124be565b81146124fe57600080fd5b50565b600081359050612510816124ea565b92915050565b60006020828403121561252c5761252b6123b6565b5b600061253a84828501612501565b91505092915050565b60008115159050919050565b61255881612543565b82525050565b6000602082019050612573600083018461254f565b92915050565b60006020828403121561258f5761258e6123b6565b5b600061259d84828501612409565b91505092915050565b60006040820190506125bb6000830185612494565b6125c86020830184612494565b9392505050565b6000602082840312156125e5576125e46123b6565b5b60006125f38482850161243f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561263657808201518184015260208101905061261b565b60008484015250505050565b6000601f19601f8301169050919050565b600061265e826125fc565b6126688185612607565b9350612678818560208601612618565b61268181612642565b840191505092915050565b600060208201905081810360008301526126a68184612653565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126eb82612642565b810181811067ffffffffffffffff8211171561270a576127096126b3565b5b80604052505050565b600061271d6123ac565b905061272982826126e2565b919050565b600067ffffffffffffffff821115612749576127486126b3565b5b602082029050602081019050919050565b600080fd5b600061277261276d8461272e565b612713565b905080838252602082019050602084028301858111156127955761279461275a565b5b835b818110156127be57806127aa888261243f565b845260208401935050602081019050612797565b5050509392505050565b600082601f8301126127dd576127dc6126ae565b5b81356127ed84826020860161275f565b91505092915050565b600080fd5b600067ffffffffffffffff821115612816576128156126b3565b5b61281f82612642565b9050602081019050919050565b82818337600083830152505050565b600061284e612849846127fb565b612713565b90508281526020810184848401111561286a576128696127f6565b5b61287584828561282c565b509392505050565b600082601f830112612892576128916126ae565b5b81356128a284826020860161283b565b91505092915050565b600080600080600060a086880312156128c7576128c66123b6565b5b60006128d588828901612409565b95505060206128e688828901612409565b945050604086013567ffffffffffffffff811115612907576129066123bb565b5b612913888289016127c8565b935050606086013567ffffffffffffffff811115612934576129336123bb565b5b612940888289016127c8565b925050608086013567ffffffffffffffff811115612961576129606123bb565b5b61296d8882890161287d565b9150509295509295909350565b6000819050919050565b600061299f61299a612995846123c0565b61297a565b6123c0565b9050919050565b60006129b182612984565b9050919050565b60006129c3826129a6565b9050919050565b6129d3816129b8565b82525050565b60006020820190506129ee60008301846129ca565b92915050565b600067ffffffffffffffff821115612a0f57612a0e6126b3565b5b602082029050602081019050919050565b6000612a33612a2e846129f4565b612713565b90508083825260208201905060208402830185811115612a5657612a5561275a565b5b835b81811015612a7f5780612a6b8882612409565b845260208401935050602081019050612a58565b5050509392505050565b600082601f830112612a9e57612a9d6126ae565b5b8135612aae848260208601612a20565b91505092915050565b60008060408385031215612ace57612acd6123b6565b5b600083013567ffffffffffffffff811115612aec57612aeb6123bb565b5b612af885828601612a89565b925050602083013567ffffffffffffffff811115612b1957612b186123bb565b5b612b25858286016127c8565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b648161241e565b82525050565b6000612b768383612b5b565b60208301905092915050565b6000602082019050919050565b6000612b9a82612b2f565b612ba48185612b3a565b9350612baf83612b4b565b8060005b83811015612be0578151612bc78882612b6a565b9750612bd283612b82565b925050600181019050612bb3565b5085935050505092915050565b60006020820190508181036000830152612c078184612b8f565b905092915050565b612c1881612543565b8114612c2357600080fd5b50565b600081359050612c3581612c0f565b92915050565b600060208284031215612c5157612c506123b6565b5b6000612c5f84828501612c26565b91505092915050565b612c71816123e0565b82525050565b6000602082019050612c8c6000830184612c68565b92915050565b60008060408385031215612ca957612ca86123b6565b5b6000612cb785828601612409565b9250506020612cc885828601612c26565b9150509250929050565b60008060408385031215612ce957612ce86123b6565b5b6000612cf785828601612409565b9250506020612d0885828601612409565b9150509250929050565b600080600080600060a08688031215612d2e57612d2d6123b6565b5b6000612d3c88828901612409565b9550506020612d4d88828901612409565b9450506040612d5e8882890161243f565b9350506060612d6f8882890161243f565b925050608086013567ffffffffffffffff811115612d9057612d8f6123bb565b5b612d9c8882890161287d565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612df057607f821691505b602082108103612e0357612e02612da9565b5b50919050565b7f4d696e74696e672069732064697361626c656400000000000000000000000000600082015250565b6000612e3f601383612607565b9150612e4a82612e09565b602082019050919050565b60006020820190508181036000830152612e6e81612e32565b9050919050565b7f4d6178696d756d20737570706c79207265616368656400000000000000000000600082015250565b6000612eab601683612607565b9150612eb682612e75565b602082019050919050565b60006020820190508181036000830152612eda81612e9e565b9050919050565b7f4d6178696d756d206d696e742070657220616464726573732072656163686564600082015250565b6000612f17602083612607565b9150612f2282612ee1565b602082019050919050565b60006020820190508181036000830152612f4681612f0a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f878261241e565b9150612f928361241e565b9250828201905080821115612faa57612fa9612f4d565b5b92915050565b7f43616e206d696e74206f6e6c79206f6e63652070657220646179000000000000600082015250565b6000612fe6601a83612607565b9150612ff182612fb0565b602082019050919050565b6000602082019050818103600083015261301581612fd9565b9050919050565b60006130278261241e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305957613058612f4d565b5b600182019050919050565b60006040820190506130796000830185612c68565b6130866020830184612c68565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f436c61696d206973206e6f7420656e61626c6564000000000000000000000000600082015250565b60006130f2601483612607565b91506130fd826130bc565b602082019050919050565b60006020820190508181036000830152613121816130e5565b9050919050565b7f4e6f7468696e6720746f20636c61696d00000000000000000000000000000000600082015250565b600061315e601083612607565b915061316982613128565b602082019050919050565b6000602082019050818103600083015261318d81613151565b9050919050565b60006040820190506131a96000830185612c68565b6131b66020830184612494565b9392505050565b6000815190506131cc81612c0f565b92915050565b6000602082840312156131e8576131e76123b6565b5b60006131f6848285016131bd565b91505092915050565b600061320a8261241e565b91506132158361241e565b92508282026132238161241e565b9150828204841483151761323a57613239612f4d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061327b8261241e565b91506132868361241e565b92508261329657613295613241565b5b828204905092915050565b6000815190506132b081612428565b92915050565b6000602082840312156132cc576132cb6123b6565b5b60006132da848285016132a1565b91505092915050565b7f4e65656420746f20746f70757020636f6e74726163742077697468204149446560008201527f67656e546f6b656e206669727374000000000000000000000000000000000000602082015250565b600061333f602e83612607565b915061334a826132e3565b604082019050919050565b6000602082019050818103600083015261336e81613332565b9050919050565b7f4e65656420746f206d696e7420736f6d65204e46547320666972737400000000600082015250565b60006133ab601c83612607565b91506133b682613375565b602082019050919050565b600060208201905081810360008301526133da8161339e565b9050919050565b60006133ec8261241e565b91506133f78361241e565b925082820390508181111561340f5761340e612f4d565b5b92915050565b60008160601b9050919050565b600061342d82613415565b9050919050565b600061343f82613422565b9050919050565b613457613452826123e0565b613434565b82525050565b6000819050919050565b6134786134738261241e565b61345d565b82525050565b6000819050919050565b6000819050919050565b6134a361349e8261347e565b613488565b82525050565b60006134b58287613446565b6014820191506134c58286613467565b6020820191506134d58285613492565b6020820191506134e58284613467565b60208201915081905095945050505050565b60006135028261241e565b915061350d8361241e565b92508261351d5761351c613241565b5b828206905092915050565b600060808201905061353d6000830187612c68565b61354a6020830186612494565b6135576040830185612494565b6135646060830184612494565b95945050505050565b600060408201905081810360008301526135878185612b8f565b9050818103602083015261359b8184612b8f565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135cb826135a4565b6135d581856135af565b93506135e5818560208601612618565b6135ee81612642565b840191505092915050565b600060a08201905061360e6000830188612c68565b61361b6020830187612c68565b6136286040830186612494565b6136356060830185612494565b818103608083015261364781846135c0565b90509695505050505050565b600081519050613662816124ea565b92915050565b60006020828403121561367e5761367d6123b6565b5b600061368c84828501613653565b91505092915050565b600060a0820190506136aa6000830188612c68565b6136b76020830187612c68565b81810360408301526136c98186612b8f565b905081810360608301526136dd8185612b8f565b905081810360808301526136f181846135c0565b9050969550505050505056fea2646970667358221220ddda28b7e56613498a6fae3ff429cca07047ba9f48b5d0071626c7355c56da0e64736f6c634300081800330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000094fba6dfdef5eb99c7db7422b92a7f91f64ee96000000000000000000000000000000000000000000000000000000000000006e68747470733a2f2f6f72616e67652d65786f7469632d77696c646361742d3530352e6d7970696e6174612e636c6f75642f697066732f516d576759466746483243394462565335413751714c72536b6a4e42655335617a5a72627743457a627666444b622f7b69647d2e6a736f6e000000000000000000000000000000000000