[ { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "serviceManager", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AethosClient_IsRateLimited", "type": "error" }, { "inputs": [], "name": "AethosClient__Unauthorized", "type": "error" }, { "inputs": [], "name": "RateLimiter_InvalidToken", "type": "error" }, { "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": "_from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "SYMBOL", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balances", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "bypassRateLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "tokenID", "type": "string" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "checkIfLimitExceeds", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableRateLimiter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableRateLimiter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "tokenID", "type": "string" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "evaluateRateLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "getBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "token", "type": "string" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ], "name": "getPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRateLimitParams", "outputs": [ { "components": [ { "internalType": "uint256", "name": "maxAmount", "type": "uint256" }, { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint64", "name": "batchSize", "type": "uint64" } ], "internalType": "struct RateLimitParams", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getTxHistory", "outputs": [ { "components": [ { "internalType": "uint256", "name": "total", "type": "uint256" }, { "internalType": "uint256", "name": "ptr", "type": "uint256" }, { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "startBlockNumber", "type": "uint256" }, { "internalType": "uint256", "name": "endBlockNumber", "type": "uint256" } ], "internalType": "struct TxBatch[]", "name": "txBatches", "type": "tuple[]" } ], "internalType": "struct TxHistory", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isRateLimiterEnabled", "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": "policyID", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "priceOracle", "outputs": [ { "internalType": "contract IPriceAggregator", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rateLimitParams", "outputs": [ { "internalType": "uint256", "name": "maxAmount", "type": "uint256" }, { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint64", "name": "batchSize", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "removeRateLimitBypass", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "components": [ { "internalType": "string", "name": "taskId", "type": "string" }, { "internalType": "uint256", "name": "expireByBlockNumber", "type": "uint256" }, { "internalType": "address[]", "name": "signerAddresses", "type": "address[]" }, { "internalType": "bytes[]", "name": "signatures", "type": "bytes[]" } ], "internalType": "struct AethosMessage", "name": "aethosMessage", "type": "tuple" } ], "name": "sendCoin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "serviceManager", "outputs": [ { "internalType": "contract IServiceManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_policyID", "type": "string" } ], "name": "setPolicy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_priceOracle", "type": "address" } ], "name": "setPriceOracle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "setRateLimitBypass", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "maxAmount", "type": "uint256" }, { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint64", "name": "batchSize", "type": "uint64" } ], "internalType": "struct RateLimitParams", "name": "paramsForRateLimiting", "type": "tuple" } ], "name": "setRateLimitParams", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "txHistory", "outputs": [ { "internalType": "uint256", "name": "total", "type": "uint256" }, { "internalType": "uint256", "name": "ptr", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620020ca380380620020ca833981016040819052620000349162000178565b6200003f336200007e565b6001600160a01b03821660009081526009602052604090206509184e72a00090556200006b81620000ce565b62000076826200007e565b5050620001b0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620000d8620000fa565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620001595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b565b80516001600160a01b03811681146200017357600080fd5b919050565b600080604083850312156200018c57600080fd5b62000197836200015b565b9150620001a7602084016200015b565b90509250929050565b611f0a80620001c06000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638da5cb5b116100de578063c6cf634b11610097578063ee2453c611610071578063ee2453c61461047a578063f2fde38b1461048d578063f76f8d78146104a0578063f8b2cb4f146104c357600080fd5b8063c6cf634b1461042f578063daf42d6c14610444578063ed5f43b71461045757600080fd5b80638da5cb5b14610368578063a8ca896414610379578063b5b76dd6146103ac578063b74437a5146103d6578063c47f1ac3146103e8578063c60c06461461040057600080fd5b80632f53036e1161014b5780635e89c3f4116101255780635e89c3f41461031a5780636b4c991b1461032d5780637012b1d414610340578063715018a61461036057600080fd5b80632f53036e146102b35780633998fdd3146102d7578063530e784f146102ea57600080fd5b80630a6d4d58146101935780632630c12f146101d457806327e235e3146101ff578063286df6b71461022d5780632e6c02e3146102615780632ef3accc146102a0575b600080fd5b6101ba6101a13660046115fb565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6008546101e7906001600160a01b031681565b6040516001600160a01b0390911681526020016101cb565b61021f61020d3660046115fb565b60096020526000908152604090205481565b6040519081526020016101cb565b61025f61023b3660046115fb565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b005b60045460055460065461027c9291906001600160401b031683565b6040805193845260208401929092526001600160401b0316908201526060016101cb565b61021f6102ae366004611616565b6104ec565b6008546102c790600160a01b900460ff1681565b60405190151581526020016101cb565b6001546101e7906001600160a01b031681565b61025f6102f83660046115fb565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6102c7610328366004611780565b6105fa565b61025f61033b3660046117c4565b6106bd565b61035361034e3660046115fb565b61073e565b6040516101cb91906117f8565b61025f610829565b6000546001600160a01b03166101e7565b61038161083d565b604080518251815260208084015190820152918101516001600160401b0316908201526060016101cb565b6103bf6103ba366004611616565b610898565b6040805192151583526020830191909152016101cb565b61025f6008805460ff60a01b19169055565b61025f6008805460ff60a01b1916600160a01b179055565b61025f61040e3660046115fb565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6104376108e8565b6040516101cb91906118cd565b61025f6104523660046118e0565b610976565b6102c76104653660046115fb565b60076020526000908152604090205460ff1681565b61025f6104883660046118f8565b61099b565b61025f61049b3660046115fb565b610b43565b610437604051806040016040528060048152602001634d45544160e01b81525081565b61021f6104d13660046115fb565b6001600160a01b031660009081526009602052604090205490565b60085460405163034d94bb60e21b81526000916001600160a01b031690630d3652ec9061051f908790879060040161197e565b602060405180830381865afa15801561053c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105609190611992565b61057d576040516354db30c360e11b815260040160405180910390fd5b600854604051630bbceb3360e21b81526001600160a01b0390911690632ef3accc906105b1908790879087906004016119b4565b602060405180830381865afa1580156105ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f291906119d8565b949350505050565b6000806106078484610bbc565b509050801561061a5760009150506106b7565b604051630bbceb3360e21b81526000903090632ef3accc9061064290889088906004016119f1565b602060405180830381865afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068391906119d8565b61068d9085611a29565b9050600061069a43610e78565b90506106a581610e9e565b6106af4383610f49565b600193505050505b92915050565b6106c5611093565b80516106d8906002906020840190611546565b50600154604051636b4c991b60e01b81526001600160a01b0390911690636b4c991b906107099084906004016118cd565b600060405180830381600087803b15801561072357600080fd5b505af1158015610737573d6000803e3d6000fd5b5050505050565b61076260405180606001604052806000815260200160008152602001606081525090565b60036000836001600160a01b03166001600160a01b03168152602001908152602001600020604051806060016040529081600082015481526020016001820154815260200160028201805480602002602001604051908101604052809291908181526020016000905b8282101561081b57838290600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050815260200190600101906107cb565b505050915250909392505050565b610831611093565b61083b60006110ed565b565b61086a6040518060600160405280600081526020016000815260200160006001600160401b031681525090565b5060408051606081018252600454815260055460208201526006546001600160401b03169181019190915290565b6000806108dc85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250610bbc915050565b91509150935093915050565b600280546108f590611a48565b80601f016020809104026020016040519081016040528092919081815260200182805461092190611a48565b801561096e5780601f106109435761010080835404028352916020019161096e565b820191906000526020600020905b81548152906001019060200180831161095157829003601f168201915b505050505081565b8060046109838282611a7d565b50506008805460ff60a01b1916600160a01b17905550565b6040805180820182526004808252634d45544160e01b602083015291516317a270fd60e21b81523092635e89c3f4926109d89290918791016119f1565b6020604051808303816000875af11580156109f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1b9190611992565b610a7f5760405162461bcd60e51b815260206004820152602a60248201527f4d657461436f696e57697468526174654c696d69743a2072617465206c696d696044820152691d08195e18d95959195960b21b60648201526084015b60405180910390fd5b6040516001600160a01b03841660248201526044810183905260009060640160408051601f198184030181529190526020810180516001600160e01b03166353e45cb560e11b1790529050610adc610ad683611b82565b8261113d565b610b335760405162461bcd60e51b815260206004820152602260248201527f4d657461436f696e3a20756e617574686f72697a6564207472616e736163746960448201526137b760f11b6064820152608401610a76565b610b3d8484611285565b50505050565b610b4b611093565b6001600160a01b038116610bb05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a76565b610bb9816110ed565b50565b6008546000908190600160a01b900460ff16610c285760405162461bcd60e51b815260206004820152602560248201527f526174654c696d697465723a2072617465206c696d69746572206e6f7420656e60448201526418589b195960da1b6064820152608401610a76565b600554610c885760405162461bcd60e51b815260206004820152602860248201527f526174654c696d697465723a2072617465206c696d6974206475726174696f6e604482015267081b9bdd081cd95d60c21b6064820152608401610a76565b6008546001600160a01b0316610cea5760405162461bcd60e51b815260206004820152602160248201527f526174654c696d697465723a207072696365206f7261636c65206e6f742073656044820152601d60fa1b6064820152608401610a76565b60085460405163034d94bb60e21b81526001600160a01b0390911690630d3652ec90610d1a9087906004016118cd565b602060405180830381865afa158015610d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5b9190611992565b610dc05760405162461bcd60e51b815260206004820152603060248201527f526174654c696d697465723a20746f6b656e206e6f7420737570706f7274656460448201526f206279207072696365206f7261636c6560801b6064820152608401610a76565b604051630bbceb3360e21b81526000903090632ef3accc90610de890889088906004016119f1565b602060405180830381865afa158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2991906119d8565b610e339085611a29565b90506000610e4043610e78565b90506000610e4d82611379565b90506000610e5b82856114ad565b90506000610e698386611516565b99919850909650505050505050565b6005546000908210610e9657600554610e919083611c77565b6106b7565b600092915050565b336000908152600360205260409020805460018201545b600283015481108015610eee575083836002018281548110610ed957610ed9611c8e565b90600052602060002090600302016002015411155b15610f3d5782600201836001015481548110610f0c57610f0c611c8e565b90600052602060002090600302016000015482610f299190611c77565b915080610f3581611ca4565b915050610eb5565b90825560019091015550565b336000908152600360205260409020600281015415801590610f9d5750600281018054610f7890600190611c77565b81548110610f8857610f88611c8e565b90600052602060002090600302016002015483105b1561100b57600281018054839190610fb790600190611c77565b81548110610fc757610fc7611c8e565b90600052602060002090600302016000016000828254610fe79190611cbf565b9091555050805482908290600090611000908490611cbf565b9091555061108e9050565b604080516060810182528381526020810185905260065460009282019061103b906001600160401b031687611cbf565b9052600280840180546001818101835560009283526020808420865160039094020192835585015190820155604084015192019190915583549192508491849190611087908490611cbf565b9091555050505b505050565b6000546001600160a01b0316331461083b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a76565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060405180610100016040528085600001518152602001336001600160a01b03168152602001306001600160a01b03168152602001348152602001848152602001306001600160a01b031663c6cf634b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156111be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111e69190810190611cd7565b8152604080870180515163ffffffff1660208085019190915288015192820192909252600154915160608801519151636cf8c26d60e01b81529394506001600160a01b0390921692636cf8c26d92611242928692600401611de9565b6020604051808303816000875af1158015611261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f29190611992565b336000908152600960205260409020548111156112e45760405162461bcd60e51b815260206004820152601e60248201527f4d657461436f696e3a20696e73756666696369656e742062616c616e636500006044820152606401610a76565b3360009081526009602052604081208054839290611303908490611c77565b90915550506001600160a01b03821660009081526009602052604081208054839290611330908490611cbf565b90915550506040518181526001600160a01b0383169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b33600090815260036020908152604080832081516060810183528154815260018201548185015260028201805484518187028101870186528181528796939586019390929190879084015b8282101561141457838290600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050815260200190600101906113c4565b5050509152505080516020820151919250905b8260400151518110801561145b5750848360400151828151811061144d5761144d611c8e565b602002602001015160400151105b156114a557826040015183602001518151811061147a5761147a611c8e565b602002602001015160000151826114919190611c77565b91508061149d81611ca4565b915050611427565b509392505050565b3360009081526007602052604081205460ff16156114ce57506004546106b7565b6004546114db8385611cbf565b116115015760045482906114f0908590611c77565b6114fa9190611c77565b90506106b7565b60045461150f908490611c77565b9392505050565b3360009081526007602052604081205460ff1615801561150f575060045461153e8385611cbf565b119392505050565b82805461155290611a48565b90600052602060002090601f01602090048101928261157457600085556115ba565b82601f1061158d57805160ff19168380011785556115ba565b828001600101855582156115ba579182015b828111156115ba57825182559160200191906001019061159f565b506115c69291506115ca565b5090565b5b808211156115c657600081556001016115cb565b80356001600160a01b03811681146115f657600080fd5b919050565b60006020828403121561160d57600080fd5b61150f826115df565b60008060006040848603121561162b57600080fd5b83356001600160401b038082111561164257600080fd5b818601915086601f83011261165657600080fd5b81358181111561166557600080fd5b87602082850101111561167757600080fd5b6020928301989097509590910135949350505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156116c5576116c561168d565b60405290565b604051601f8201601f191681016001600160401b03811182821017156116f3576116f361168d565b604052919050565b60006001600160401b038211156117145761171461168d565b50601f01601f191660200190565b6000611735611730846116fb565b6116cb565b905082815283838301111561174957600080fd5b828260208301376000602084830101529392505050565b600082601f83011261177157600080fd5b61150f83833560208501611722565b6000806040838503121561179357600080fd5b82356001600160401b038111156117a957600080fd5b6117b585828601611760565b95602094909401359450505050565b6000602082840312156117d657600080fd5b81356001600160401b038111156117ec57600080fd5b6105f284828501611760565b600060208083526080830184518285015281850151604081818701528087015191506060808188015283835180865260a0890191508685019550600094505b8085101561186857855180518352878101518884015284015184830152948601946001949094019390820190611837565b5098975050505050505050565b60005b83811015611890578181015183820152602001611878565b83811115610b3d5750506000910152565b600081518084526118b9816020860160208601611875565b601f01601f19169290920160200192915050565b60208152600061150f60208301846118a1565b6000606082840312156118f257600080fd5b50919050565b60008060006060848603121561190d57600080fd5b611916846115df565b92506020840135915060408401356001600160401b0381111561193857600080fd5b84016080818703121561194a57600080fd5b809150509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006105f2602083018486611955565b6000602082840312156119a457600080fd5b8151801515811461150f57600080fd5b6040815260006119c8604083018587611955565b9050826020830152949350505050565b6000602082840312156119ea57600080fd5b5051919050565b604081526000611a0460408301856118a1565b90508260208301529392505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611a4357611a43611a13565b500290565b600181811c90821680611a5c57607f821691505b602082108114156118f257634e487b7160e01b600052602260045260246000fd5b81358155602082013560018201556002810160408301356001600160401b038116808214611aaa57600080fd5b825467ffffffffffffffff191617909155505050565b60006001600160401b03821115611ad957611ad961168d565b5060051b60200190565b600082601f830112611af457600080fd5b81356020611b0461173083611ac0565b82815260059290921b84018101918181019086841115611b2357600080fd5b8286015b84811015611b775780356001600160401b03811115611b465760008081fd5b8701603f81018913611b585760008081fd5b611b69898683013560408401611722565b845250918301918301611b27565b509695505050505050565b600060808236031215611b9457600080fd5b611b9c6116a3565b82356001600160401b0380821115611bb357600080fd5b611bbf36838701611760565b8352602091508185013582840152604085013581811115611bdf57600080fd5b850136601f820112611bf057600080fd5b8035611bfe61173082611ac0565b81815260059190911b82018401908481019036831115611c1d57600080fd5b928501925b82841015611c4257611c33846115df565b82529285019290850190611c22565b60408701525050506060850135915080821115611c5e57600080fd5b50611c6b36828601611ae3565b60608301525092915050565b600082821015611c8957611c89611a13565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611cb857611cb8611a13565b5060010190565b60008219821115611cd257611cd2611a13565b500190565b600060208284031215611ce957600080fd5b81516001600160401b03811115611cff57600080fd5b8201601f81018413611d1057600080fd5b8051611d1e611730826116fb565b818152856020838501011115611d3357600080fd5b611d44826020830160208601611875565b95945050505050565b600081518084526020808501945080840160005b83811015611d865781516001600160a01b031687529582019590820190600101611d61565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b84811015611ddc57601f19868403018952611dca8383516118a1565b98840198925090830190600101611dae565b5090979650505050505050565b6060815260008451610100806060850152611e086101608501836118a1565b91506020870151611e2460808601826001600160a01b03169052565b5060408701516001600160a01b031660a0850152606087015160c08501526080870151848303605f1990810160e0870152611e5f84836118a1565b935060a0890151915080868503018387015250611e7c83826118a1565b9250505060c0860151611e9861012085018263ffffffff169052565b5060e08601516101408401528281036020840152611eb68186611d4d565b90508281036040840152611eca8185611d91565b969550505050505056fea26469706673582212201878015d5b8a9166a709cdc895f71c17bdfaa6b29bb92b792226a3294dd5114464736f6c634300080c003300000000000000000000000038f6001e8ac11240f903cba56aff72a1425ae371000000000000000000000000ba54ae6056f3eeff31651c5e1fdb8b3b0efb8862