[ { "inputs": [ { "internalType": "contract IAIOracle", "name": "_aiOracle", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "contract IAIOracle", "name": "expected", "type": "address" }, { "internalType": "contract IAIOracle", "name": "found", "type": "address" } ], "name": "UnauthorizedCallbackSource", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "bytes", "name": "prompt", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "aigcData", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "proof", "type": "bytes" } ], "name": "AigcData", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "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": "uint256", "name": "requestId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "nestedRequestId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "modelId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "prompt", "type": "string" } ], "name": "promptRequest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "modelId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "input", "type": "string" }, { "indexed": false, "internalType": "string", "name": "output", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "callbackData", "type": "bytes" } ], "name": "promptsUpdated", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "prompt", "type": "bytes" }, { "internalType": "bytes", "name": "aigcData", "type": "bytes" }, { "internalType": "bytes", "name": "proof", "type": "bytes" } ], "name": "addAigcData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "aiOracle", "outputs": [ { "internalType": "contract IAIOracle", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" }, { "internalType": "bytes", "name": "output", "type": "bytes" }, { "internalType": "bytes", "name": "callbackData", "type": "bytes" } ], "name": "aiOracleCallback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "aigcData", "outputs": [ { "internalType": "bytes", "name": "fortune", "type": "bytes" }, { "internalType": "bytes", "name": "imageCID", "type": "bytes" }, { "internalType": "address", "name": "author", "type": "address" } ], "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": "string", "name": "prompt", "type": "string" } ], "name": "calculateAIResult", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "callbackGasLimit", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "modelId", "type": "uint256" } ], "name": "estimateFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "modelId", "type": "uint256" }, { "internalType": "string", "name": "prompt", "type": "string" } ], "name": "getAIResult", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "uint256", "name": "requestId", "type": "uint256" } ], "name": "isFinalized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "llamaId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ownedTokens", "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": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "promptToTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "string", "name": "", "type": "string" } ], "name": "prompts", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "requestOutputs", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "requests", "outputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "modelId", "type": "uint256" }, { "internalType": "bytes", "name": "input", "type": "bytes" }, { "internalType": "bytes", "name": "output", "type": "bytes" } ], "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": "sdId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "modelId", "type": "uint256" }, { "internalType": "uint64", "name": "gasLimit", "type": "uint64" } ], "name": "setCallbackGasLimit", "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": "", "type": "uint256" } ], "name": "tokenIdToPrompt", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "prompt", "type": "bytes" }, { "internalType": "bytes", "name": "aigcData", "type": "bytes" }, { "internalType": "bytes", "name": "proof", "type": "bytes" } ], "name": "verify", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60a060405234801561001057600080fd5b50604051612db0380380612db083398101604081905261002f9161012e565b60408051808201825260128152714f6e2d636861696e204149204f7261636c6560701b602080830191909152825180840190935260038352624f414f60e81b908301526001600160a01b03831660805290600061008c83826101fd565b50600161009982826101fd565b5050600b80546001600160a01b03191633178155600c5550506101f7600d819055600f6020527f0db0e9d5a07148aa3e0acc10f721b78526b53a3f4f3d07794be76568de7347c580546001600160401b0319908116624c4b40179091556000919091527f87f739e929d7e291bc6d7485affd847354810e9e1ce72a9c290de92663c527d380549091166207a1201790556102bb565b60006020828403121561014057600080fd5b81516001600160a01b038116811461015757600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061018857607f821691505b6020821081036101a857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101f857806000526020600020601f840160051c810160208510156101d55750805b601f840160051c820191505b818110156101f557600081556001016101e1565b50505b505050565b81516001600160401b038111156102165761021661015e565b61022a816102248454610174565b846101ae565b6020601f82116001811461025e57600083156102465750848201515b600019600385901b1c1916600184901b1784556101f5565b600084815260208120601f198516915b8281101561028e578785015182556020948501946001909201910161026e565b50848210156102ac5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b608051612ab0610300600039600081816103930152818161082a01528181610a0a01528181610fcf015281816110f30152818161113001526112640152612ab06000f3fe6080604052600436106101f95760003560e01c806381d12c581161010d578063aa22cf01116100a0578063b88d4fde1161006f578063b88d4fde14610624578063c87b56dd14610644578063de8f50a114610664578063e149f0361461068b578063e985e9c5146106ab57600080fd5b8063aa22cf0114610592578063aa2e084e146105a8578063aea30507146105e0578063b03478141461060457600080fd5b806395d89b41116100dc57806395d89b4114610534578063964eb50e14610549578063a22cb4651461055f578063a26777541461057f57600080fd5b806381d12c58146104955780638a86a6c3146104c55780638cbc52d9146104f45780638da5cb5b1461051457600080fd5b80632c6296b71161019057806342842e0e1161015f57806342842e0e146103f557806362349de9146104155780636352211e1461043557806370a0823114610455578063813d1e151461047557600080fd5b80632c6296b71461036157806331b221cd1461038157806333727c4d146103b55780633d837bf8146103d557600080fd5b8063127e8e4d116101cc578063127e8e4d146102af57806318160ddd146102dd57806320f38718146102f357806323b872dd1461034157600080fd5b806301ffc9a7146101fe57806306fdde0314610233578063081812fc14610255578063095ea7b31461028d575b600080fd5b34801561020a57600080fd5b5061021e610219366004611e28565b6106cb565b60405190151581526020015b60405180910390f35b34801561023f57600080fd5b5061024861072c565b60405161022a9190611e9c565b34801561026157600080fd5b50610275610270366004611eaf565b6107be565b6040516001600160a01b03909116815260200161022a565b34801561029957600080fd5b506102ad6102a8366004611ee4565b6107e7565b005b3480156102bb57600080fd5b506102cf6102ca366004611eaf565b6107f6565b60405190815260200161022a565b3480156102e957600080fd5b506102cf60065481565b3480156102ff57600080fd5b5061032961030e366004611eaf565b600f602052600090815260409020546001600160401b031681565b6040516001600160401b03909116815260200161022a565b34801561034d57600080fd5b506102ad61035c366004611f0e565b61089c565b34801561036d57600080fd5b5061024861037c366004611f93565b61092c565b34801561038d57600080fd5b506102757f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c157600080fd5b5061021e6103d0366004611eaf565b6109f1565b3480156103e157600080fd5b506102486103f0366004611eaf565b610a7d565b34801561040157600080fd5b506102ad610410366004611f0e565b610b17565b34801561042157600080fd5b50610248610430366004611eaf565b610b37565b34801561044157600080fd5b50610275610450366004611eaf565b610b50565b34801561046157600080fd5b506102cf610470366004611fde565b610b5b565b34801561048157600080fd5b506102ad610490366004611ff9565b610ba3565b3480156104a157600080fd5b506104b56104b0366004611eaf565b610c19565b60405161022a9493929190612035565b3480156104d157600080fd5b506104e56104e0366004612127565b610d5c565b60405161022a9392919061215b565b34801561050057600080fd5b5061024861050f366004612199565b610ea2565b34801561052057600080fd5b50600b54610275906001600160a01b031681565b34801561054057600080fd5b50610248610ed7565b34801561055557600080fd5b506102cf600c5481565b34801561056b57600080fd5b506102ad61057a366004612201565b610ee6565b6102cf61058d36600461222d565b610ef1565b34801561059e57600080fd5b506102cf600d5481565b3480156105b457600080fd5b506102cf6105c3366004612127565b8051602081830181018051600a8252928201919093012091525481565b3480156105ec57600080fd5b506102ad6105fb36600461226e565b50505050505050565b34801561061057600080fd5b506102ad61061f36600461231b565b6110e8565b34801561063057600080fd5b506102ad61063f366004612398565b611504565b34801561065057600080fd5b5061024861065f366004611eaf565b61151b565b34801561067057600080fd5b5061021e61067f3660046123ff565b60009695505050505050565b34801561069757600080fd5b506102cf6106a6366004611ee4565b6116cc565b3480156106b757600080fd5b5061021e6106c63660046124a2565b6116fd565b60006001600160e01b031982166301ffc9a760e01b14806106fc57506001600160e01b0319821663da0d82f560e01b145b8061071757506001600160e01b03198216635b5e139f60e01b145b8061072657506107268261172b565b92915050565b60606000805461073b906124d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610767906124d5565b80156107b45780601f10610789576101008083540402835291602001916107b4565b820191906000526020600020905b81548152906001019060200180831161079757829003601f168201915b5050505050905090565b60006107c98261177b565b506000828152600460205260409020546001600160a01b0316610726565b6107f28282336117b4565b5050565b6000818152600f6020526040808220549051620e1d8d60e41b8152600481018490526001600160401b0390911660248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169062e1d8d090604401602060405180830381865afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610726919061250f565b6001600160a01b0382166108cb57604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006108d88383336117c1565b9050836001600160a01b0316816001600160a01b031614610926576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016108c2565b50505050565b6060601060008581526020019081526020016000208383604051610951929190612528565b9081526020016040518091039020805461096a906124d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610996906124d5565b80156109e35780601f106109b8576101008083540402835291602001916109e3565b820191906000526020600020905b8154815290600101906020018083116109c657829003601f168201915b505050505090509392505050565b6040516333727c4d60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333727c4d90602401602060405180830381865afa158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107269190612538565b60086020526000908152604090208054610a96906124d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac2906124d5565b8015610b0f5780601f10610ae457610100808354040283529160200191610b0f565b820191906000526020600020905b815481529060010190602001808311610af257829003601f168201915b505050505081565b610b3283838360405180602001604052806000815250611504565b505050565b60116020526000908152604090208054610a96906124d5565b60006107268261177b565b60006001600160a01b038216610b87576040516322718ad960e21b8152600060048201526024016108c2565b506001600160a01b031660009081526003602052604090205490565b600b546001600160a01b03163314610bea5760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b60448201526064016108c2565b6000918252600f6020526040909120805467ffffffffffffffff19166001600160401b03909216919091179055565b600e602052600090815260409020805460018201546002830180546001600160a01b03909316939192610c4b906124d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c77906124d5565b8015610cc45780601f10610c9957610100808354040283529160200191610cc4565b820191906000526020600020905b815481529060010190602001808311610ca757829003601f168201915b505050505090806003018054610cd9906124d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d05906124d5565b8015610d525780601f10610d2757610100808354040283529160200191610d52565b820191906000526020600020905b815481529060010190602001808311610d3557829003601f168201915b5050505050905084565b8051602081830181018051600782529282019190930120915280548190610d82906124d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610dae906124d5565b8015610dfb5780601f10610dd057610100808354040283529160200191610dfb565b820191906000526020600020905b815481529060010190602001808311610dde57829003601f168201915b505050505090806001018054610e10906124d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3c906124d5565b8015610e895780601f10610e5e57610100808354040283529160200191610e89565b820191906000526020600020905b815481529060010190602001808311610e6c57829003601f168201915b505050600290930154919250506001600160a01b031683565b6010602090815260009283526040909220815180830184018051928152908401929093019190912091528054610a96906124d5565b60606001805461073b906124d5565b6107f23383836118ba565b60008083838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250600c5494955093610f3b935091506107f69050565b90506000610f4a600d546107f6565b9050610f56818361256b565b3411610fa45760405162461bcd60e51b815260206004820152601f60248201527f466f7274756e6554656c6c65723a20496e73756666696369656e74206665650060448201526064016108c2565b600c546000818152600f6020526040808220549051632dca9c0360e11b815291926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692635b9538069287926110149290918a9130916001600160401b03169060040161257e565b60206040518083038185885af1158015611032573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611057919061250f565b90506110638787611959565b6000818152600e602052604090206002810161107f8682612617565b5080546001600160a01b031916339081178255600c54600183018190556040517f483692d839733bfb07b2d29b4df6fbf290ff389290da74e018a21180f1269aab926110d592869260009291908e908e906126fe565b60405180910390a1509695505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681146111655760405163432e033760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152821660248201526044016108c2565b6000868152600e6020526040902080546001600160a01b03166111c35760405162461bcd60e51b81526020600482015260166024820152751c995c5d595cdd08191bd95cc81b9bdd08195e1a5cdd60521b60448201526064016108c2565b600381016111d286888361273e565b5085856010600084600101548152602001908152602001600020836002016040516111fd919061286f565b9081526020016040518091039020918261121892919061273e565b50821561146e578585600783600201604051611234919061286f565b9081526040519081900360200190209161124f91908361273e565b50600061125d600d546107f6565b90506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031683600d548b8b30600f6000600d54815260200190815260200160002060009054906101000a90046001600160401b03168a6002016040516020016112d091906128fd565b60408051601f19818403018152908290526112f2969594939291602401612910565b60408051601f198184030181529181526020820180516001600160e01b0316632dca9c0360e11b179052516113279190612967565b60006040518083038185875af1925050503d8060008114611364576040519150601f19603f3d011682016040523d82523d6000602084013e611369565b606091505b5091509150816113bb5760405162461bcd60e51b815260206004820152601f60248201527f6661696c656420746f2063616c6c206e657374656420696e666572656e63650060448201526064016108c2565b6000818060200190518101906113d1919061250f565b6000818152600e60205260409020909150600281016113f18b8d8361273e565b5080546001600160a01b031916339081178255600d5460018301819055604080518f81526020810186905290810192909252606082015260a0608082018190526000908201527f483692d839733bfb07b2d29b4df6fbf290ff389290da74e018a21180f1269aab9060c00160405180910390a150505050506114b1565b600061147c84860186612127565b905086866007836040516114909190612967565b908152602001604051809103902060010191826114ae92919061273e565b50505b7faf2b2381ddcb18a2b18a7826186fd216acdd9c852a8c7a9a49e7eab127f96ccf87826001015483600201898989896040516114f39796959493929190612983565b60405180910390a150505050505050565b61150f84848461089c565b61092684848484611a80565b60606115268261177b565b5060008281526008602052604081208054611540906124d5565b80601f016020809104026020016040519081016040528092919081815260200182805461156c906124d5565b80156115b95780601f1061158e576101008083540402835291602001916115b9565b820191906000526020600020905b81548152906001019060200180831161159c57829003601f168201915b5050505050905060006007826040516115d29190612967565b908152602001604051809103902060010180546115ee906124d5565b80601f016020809104026020016040519081016040528092919081815260200182805461161a906124d5565b80156116675780601f1061163c57610100808354040283529160200191611667565b820191906000526020600020905b81548152906001019060200180831161164a57829003601f168201915b505060408051808201909152601581527468747470733a2f2f697066732e696f2f697066732f60581b60208201529394506116a192505050565b80826040516020016116b49291906129d8565b60405160208183030381529060405295945050505050565b600960205281600052604060002081815481106116e857600080fd5b90600052602060002001600091509150505481565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061175c57506001600160e01b03198216635b5e139f60e01b145b8061072657506301ffc9a760e01b6001600160e01b0319831614610726565b6000818152600260205260408120546001600160a01b03168061072657604051637e27328960e01b8152600481018490526024016108c2565b610b328383836001611ba9565b6000828152600260205260408120546001600160a01b03908116908316156117ee576117ee818486611caf565b6001600160a01b0381161561182c5761180b600085600080611ba9565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b0385161561185b576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b0382166118ec57604051630b61174360e31b81526001600160a01b03831660048201526024016108c2565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600a828260405161196b929190612528565b9081526020016040518091039020546000146119c95760405162461bcd60e51b815260206004820152601860248201527f70726f6d707420697320616c7265616479206d696e746564000000000000000060448201526064016108c2565b600654600a83836040516119de929190612528565b9081526020016040518091039020819055503360078383604051611a03929190612528565b908152604080516020928190038301902060020180546001600160a01b0319166001600160a01b039490941693909317909255336000818152600983529283206006805482546001810184559286529390942001919091559054611a679190611d13565b60068054906000611a7783612a07565b91905055505050565b6001600160a01b0383163b1561092657604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611ac2903390889087908790600401612a20565b6020604051808303816000875af1925050508015611afd575060408051601f3d908101601f19168201909252611afa91810190612a5d565b60015b611b66573d808015611b2b576040519150601f19603f3d011682016040523d82523d6000602084013e611b30565b606091505b508051600003611b5e57604051633250574960e11b81526001600160a01b03851660048201526024016108c2565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14611ba257604051633250574960e11b81526001600160a01b03851660048201526024016108c2565b5050505050565b8080611bbd57506001600160a01b03821615155b15611c7f576000611bcd8461177b565b90506001600160a01b03831615801590611bf95750826001600160a01b0316816001600160a01b031614155b8015611c0c5750611c0a81846116fd565b155b15611c355760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016108c2565b8115611c7d5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b611cba838383611d2d565b610b32576001600160a01b038316611ce857604051637e27328960e01b8152600481018290526024016108c2565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016108c2565b6107f2828260405180602001604052806000815250611d93565b60006001600160a01b03831615801590611d8b5750826001600160a01b0316846001600160a01b03161480611d675750611d6784846116fd565b80611d8b57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b611d9d8383611daa565b610b326000848484611a80565b6001600160a01b038216611dd457604051633250574960e11b8152600060048201526024016108c2565b6000611de2838360006117c1565b90506001600160a01b03811615610b32576040516339e3563760e11b8152600060048201526024016108c2565b6001600160e01b031981168114611e2557600080fd5b50565b600060208284031215611e3a57600080fd5b8135611e4581611e0f565b9392505050565b60005b83811015611e67578181015183820152602001611e4f565b50506000910152565b60008151808452611e88816020860160208601611e4c565b601f01601f19169290920160200192915050565b602081526000611e456020830184611e70565b600060208284031215611ec157600080fd5b5035919050565b80356001600160a01b0381168114611edf57600080fd5b919050565b60008060408385031215611ef757600080fd5b611f0083611ec8565b946020939093013593505050565b600080600060608486031215611f2357600080fd5b611f2c84611ec8565b9250611f3a60208501611ec8565b929592945050506040919091013590565b60008083601f840112611f5d57600080fd5b5081356001600160401b03811115611f7457600080fd5b602083019150836020828501011115611f8c57600080fd5b9250929050565b600080600060408486031215611fa857600080fd5b8335925060208401356001600160401b03811115611fc557600080fd5b611fd186828701611f4b565b9497909650939450505050565b600060208284031215611ff057600080fd5b611e4582611ec8565b6000806040838503121561200c57600080fd5b8235915060208301356001600160401b038116811461202a57600080fd5b809150509250929050565b60018060a01b038516815283602082015260806040820152600061205c6080830185611e70565b828103606084015261206e8185611e70565b979650505050505050565b634e487b7160e01b600052604160045260246000fd5b6000806001600160401b038411156120a9576120a9612079565b50604051601f19601f85018116603f011681018181106001600160401b03821117156120d7576120d7612079565b6040528381529050808284018510156120ef57600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261211857600080fd5b611e458383356020850161208f565b60006020828403121561213957600080fd5b81356001600160401b0381111561214f57600080fd5b611d8b84828501612107565b60608152600061216e6060830186611e70565b82810360208401526121808186611e70565b91505060018060a01b0383166040830152949350505050565b600080604083850312156121ac57600080fd5b8235915060208301356001600160401b038111156121c957600080fd5b8301601f810185136121da57600080fd5b6121e98582356020840161208f565b9150509250929050565b8015158114611e2557600080fd5b6000806040838503121561221457600080fd5b61221d83611ec8565b9150602083013561202a816121f3565b6000806020838503121561224057600080fd5b82356001600160401b0381111561225657600080fd5b61226285828601611f4b565b90969095509350505050565b60008060008060008060006080888a03121561228957600080fd5b8735965060208801356001600160401b038111156122a657600080fd5b6122b28a828b01611f4b565b90975095505060408801356001600160401b038111156122d157600080fd5b6122dd8a828b01611f4b565b90955093505060608801356001600160401b038111156122fc57600080fd5b6123088a828b01611f4b565b989b979a50959850939692959293505050565b60008060008060006060868803121561233357600080fd5b8535945060208601356001600160401b0381111561235057600080fd5b61235c88828901611f4b565b90955093505060408601356001600160401b0381111561237b57600080fd5b61238788828901611f4b565b969995985093965092949392505050565b600080600080608085870312156123ae57600080fd5b6123b785611ec8565b93506123c560208601611ec8565b92506040850135915060608501356001600160401b038111156123e757600080fd5b6123f387828801612107565b91505092959194509250565b6000806000806000806060878903121561241857600080fd5b86356001600160401b0381111561242e57600080fd5b61243a89828a01611f4b565b90975095505060208701356001600160401b0381111561245957600080fd5b61246589828a01611f4b565b90955093505060408701356001600160401b0381111561248457600080fd5b61249089828a01611f4b565b979a9699509497509295939492505050565b600080604083850312156124b557600080fd5b6124be83611ec8565b91506124cc60208401611ec8565b90509250929050565b600181811c908216806124e957607f821691505b60208210810361250957634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561252157600080fd5b5051919050565b8183823760009101908152919050565b60006020828403121561254a57600080fd5b8151611e45816121f3565b634e487b7160e01b600052601160045260246000fd5b8082018082111561072657610726612555565b84815260a06020820152600061259760a0830186611e70565b6001600160a01b03949094166040830152506001600160401b039190911660608201528082036080909101526000815260200192915050565b601f821115610b3257806000526020600020601f840160051c810160208510156125f75750805b601f840160051c820191505b81811015611ba25760008155600101612603565b81516001600160401b0381111561263057612630612079565b6126448161263e84546124d5565b846125d0565b6020601f82116001811461267857600083156126605750848201515b600019600385901b1c1916600184901b178455611ba2565b600084815260208120601f198516915b828110156126a85787850151825560209485019460019092019101612688565b50848210156126c65786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b86815285602082015260018060a01b038516604082015283606082015260a06080820152600061273260a0830184866126d5565b98975050505050505050565b6001600160401b0383111561275557612755612079565b6127698361276383546124d5565b836125d0565b6000601f84116001811461279d57600085156127855750838201355b600019600387901b1c1916600186901b178355611ba2565b600083815260209020601f19861690835b828110156127ce57868501358255602094850194600190920191016127ae565b50868210156127eb5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000815461280a816124d5565b600182168015612821576001811461283657612866565b60ff1983168652811515820286019350612866565b84600052602060002060005b8381101561285e57815488820152600190910190602001612842565b505081860193505b50505092915050565b6000611e4582846127fd565b60008154612888816124d5565b8085526001821680156128a257600181146128be57612866565b60ff1983166020870152602082151560051b8701019350612866565b84600052602060002060005b838110156128ec5781546020828a0101526001820191506020810190506128ca565b870160200194505050505092915050565b602081526000611e45602083018461287b565b86815260a06020820152600061292a60a0830187896126d5565b6001600160a01b03861660408401526001600160401b0385166060840152828103608084015261295a8185611e70565b9998505050505050505050565b60008251612979818460208701611e4c565b9190910192915050565b87815286602082015260a0604082015260006129a260a083018861287b565b82810360608401526129b58187896126d5565b905082810360808401526129ca8185876126d5565b9a9950505050505050505050565b600083516129ea818460208801611e4c565b8351908301906129fe818360208801611e4c565b01949350505050565b600060018201612a1957612a19612555565b5060010190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612a5390830184611e70565b9695505050505050565b600060208284031215612a6f57600080fd5b8151611e4581611e0f56fea26469706673582212206163248357cb04d3517af77d8d5ae61b7cdb7b8052869466734a792545441ddd64736f6c634300081a00330000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a0
0x0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a0
----Decoded View------------Arg [0] : _aiOracle (address): 0x0A0f4321214BB6C7811dD8a71cF587bdaF03f0A0
----Encoded View------------Arg [0] : 0x0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a0