diff --git a/.gitignore b/.gitignore index 894fd27a..8df1f8ca 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,3 @@ /deploy/*.contracts.json !/deploy/sample.constants.json -!/deploy/mainnet.*.constants.json -!/deploy/mainnet.*.contracts.json -!/deploy/arbitrum.constants.json -!/deploy/arbitrum.contracts.json diff --git a/broadcast/arbitrum-production/GammaCamelotStrategyImplSetup.s.sol/42161/run-latest.json b/broadcast/arbitrum-production/GammaCamelotStrategyImplSetup.s.sol/42161/run-latest.json new file mode 100644 index 00000000..e1f305ad --- /dev/null +++ b/broadcast/arbitrum-production/GammaCamelotStrategyImplSetup.s.sol/42161/run-latest.json @@ -0,0 +1,59 @@ +{ + "transactions": [ + { + "hash": "0x9f33932ba1209969c5ec57151ae362a6976a8a91d74126b6d7bfaa93aa9f44c9", + "transactionType": "CREATE", + "contractName": "GammaCamelotStrategy", + "contractAddress": "0x6c2E2363393087Fdc493c0be59f5Db103c39f9c9", + "function": null, + "arguments": [ + "0xb3B8D7a4ef4C6C78699bDab42837383040a3752e", + "0x68306356f6dde2b8a731cD02F7466e75977EfCF9", + "0xd1F7495e9c3f01b8e36ddA05033b783e6d02FE90", + "0x1216944517eAffc8D31Bd238b2c56dd82b6bE534" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xc36975", + "value": "0x0", + "data": "0x6101206040523480156200001257600080fd5b506040516200618a3803806200618a83398101604081905262000035916200011f565b83836000816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508216620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038116620000ea5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0391821660e052166101005250620001879050565b6001600160a01b03811681146200011c57600080fd5b50565b600080600080608085870312156200013657600080fd5b8451620001438162000106565b6020860151909450620001568162000106565b6040860151909350620001698162000106565b60608601519092506200017c8162000106565b939692955090935050565b60805160a05160c05160e05161010051615f6a62000220600039600081816104670152818161430b0152614a1a01526000818161033701528181612e4801528181612ecf01528181612f0a0152613348015260008181610df101528181610e1f015261275e0152600081816108fa01528181610d0701526127ca01526000818161216f0152818161222501526126750152615f6a6000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c806395d89b411161013b578063c1a7d80e116100b8578063e2b36dc31161007c578063e2b36dc31461037b578063ebbd6bc71461056a578063fc195d8c1461057d578063fe18760f14610590578063fe4ee967146105a357600080fd5b8063c1a7d80e146104fa578063c6bc51821461050d578063c8d31e7414610516578063dd62ed3e14610529578063e173ad251461056257600080fd5b8063a63e8c4b116100ff578063a63e8c4b146104af578063a9059cbb146104b7578063abd70aa2146104ca578063beef8a71146104d2578063c1a0ff4c146104f257600080fd5b806395d89b41146104445780639b6aaa471461044c5780639ec5a89414610462578063a3ea6c9714610489578063a457c2d71461049c57600080fd5b8063313ce567116101c95780636c60d9e71161018d5780636c60d9e7146103cb57806370a08231146103de57806371a97305146104075780637817bf4a1461041c57806384ba89e31461043c57600080fd5b8063313ce5671461036c57806334677c7a1461037b578063395093511461039257806348080668146103a55780634d6446d9146103b857600080fd5b806316f0115b1161021057806316f0115b146102fa57806318160ddd1461030d57806323b872dd1461031f5780632b3297f9146103325780632ce5183f1461035957600080fd5b806306fdde031461024d5780630828862d1461026b578063095ea7b3146102965780631480fce3146102b9578063150b7a02146102ce575b600080fd5b6102556105bc565b6040516102629190614e63565b60405180910390f35b609a5461027e906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b6102a96102a4366004614e8e565b61064e565b6040519015158152602001610262565b6102cc6102c7366004614f06565b610668565b005b6102e16102dc366004614f52565b610764565b6040516001600160e01b03199091168152602001610262565b60995461027e906001600160a01b031681565b6035545b604051908152602001610262565b6102a961032d366004614ff1565b610776565b61027e7f000000000000000000000000000000000000000000000000000000000000000081565b6102cc610367366004614e8e565b61079c565b60405160128152602001610262565b6102a9610389366004615032565b60019392505050565b6102a96103a0366004614e8e565b6107d3565b6102cc6103b33660046150be565b610812565b609b5461027e906001600160a01b031681565b6102cc6103d936600461517e565b610ccc565b6103116103ec3660046151d5565b6001600160a01b031660009081526033602052604090205490565b61040f610d03565b6040516102629190615236565b61042f61042a366004615249565b610da4565b6040516102629190615305565b610311610dec565b610255610e41565b610454610e50565b604051610262929190615318565b61027e7f000000000000000000000000000000000000000000000000000000000000000081565b61031161049736600461533d565b610e6e565b6102a96104aa366004614e8e565b611206565b61042f6112a3565b6102a96104c5366004614e8e565b61136a565b610311611378565b6104e56104e0366004615418565b611382565b6040516102629190615454565b61042f611ef3565b6102cc610508366004615533565b611efd565b610311609c5481565b61031161052436600461558f565b6120a8565b6103116105373660046155e1565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6102556120eb565b6102cc610578366004614e8e565b6120fa565b61042f61058b366004615249565b612131565b60985461027e906001600160a01b031681565b6102a96105b136600461560f565b600195945050505050565b6060603680546105cb90615660565b80601f01602080910402602001604051908101604052809291908181526020018280546105f790615660565b80156106445780601f1061061957610100808354040283529160200191610644565b820191906000526020600020905b81548152906001019060200180831161062757829003601f168201915b5050505050905090565b60003361065c8185856122c9565b60019150505b92915050565b326106a5576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b60006002838360008181106106bc576106bc61569a565b9050602002013510156106ea57828260038181106106dc576106dc61569a565b905060200201359050610737565b828260008181106106fd576106fd61569a565b9050602002013560020361071e57828260018181106106dc576106dc61569a565b604051631ee8c23d60e21b815260040160405180910390fd5b61074181856123ed565b61075e57604051631ee8c23d60e21b815260040160405180910390fd5b50505050565b630a85bd0160e11b5b95945050505050565b600033610784858285612418565b61078f8585856124a4565b60019150505b9392505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336107c8828261264f565b61075e3085856124a4565b3360008181526034602090815260408083206001600160a01b038716845290915281205490919061065c908290869061080d9087906156c6565b6122c9565b600054610100900460ff16158080156108325750600054600160ff909116105b8061084c5750303b15801561084c575060005460ff166001145b6108b45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156108d7576000805461ff0019166101001790555b6108e18585612713565b604051636e87f18d60e11b8152600481018590526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063dd0fe31a90602401600060405180830381865afa158015610949573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097191908101906156d9565b90506000846001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190615768565b90506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f9190615768565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa79190615768565b905083516002141580610ae65750816001600160a01b031684600081518110610ad257610ad261569a565b60200260200101516001600160a01b031614155b80610b1d5750806001600160a01b031684600181518110610b0957610b0961569a565b60200260200101516001600160a01b031614155b15610b4657610b2a610dec565b604051634b1f57ad60e01b81526004016108ab91815260200190565b866001600160a01b03166386a290816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba89190615768565b609880546001600160a01b03199081166001600160a01b03938416179091556099805490911689831617905560408051630828862d60e01b8152905191881691630828862d9160048082019260209290919082900301816000875af1158015610c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c399190615768565b609a80546001600160a01b03199081166001600160a01b0393841617909155609b8054909116918816919091179055600019609c55610c766128b7565b609d55505082159150610cc59050576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610cf8828261264f565b610cc5858585612af5565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a610d3c610dec565b6040518263ffffffff1660e01b8152600401610d5a91815260200190565b600060405180830381865afa158015610d77573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9f91908101906156d9565b905090565b6060610dd07fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361264f565b610ddf87878888888888612cd8565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610e1c575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b6060603780546105cb90615660565b6060803215610e5e57600080fd5b610e66612d45565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610e9c828261264f565b60008b67ffffffffffffffff811115610eb757610eb7615067565b604051908082528060200260200182016040528015610ee0578160200160208202803683370190505b50905060005b8c811015610fac578d8d82818110610f0057610f0061569a565b9050602002016020810190610f1591906151d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f9190615785565b828281518110610f9157610f9161569a565b6020908102919091010152610fa58161579e565b9050610ee6565b50610fee8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508592508a9150899050612ec8565b60008c67ffffffffffffffff81111561100957611009615067565b604051908082528060200260200182016040528015611032578160200160208202803683370190505b50905060005b8d8110156110fe578e8e828181106110525761105261569a565b905060200201602081019061106791906151d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156110ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d19190615785565b8282815181106110e3576110e361569a565b60209081029190910101526110f78161579e565b9050611038565b50600061113f8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612f8e915050565b905061114e8f8f848d8d61300f565b600061119b8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612f8e565b905060006111a98383613162565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc816111d785856157b7565b87876040516111e994939291906157ca565b60405180910390a196505050505050509998505050505050505050565b3360008181526034602090815260408083206001600160a01b03871684529091528120549091908381101561128b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108ab565b61129882868684036122c9565b506001949350505050565b6040805160028082526060808301845292602083019080368337505060995460408051636253bb0f60e11b815281519495506001600160a01b039092169363c4a7761e93506004808401938290030181865afa158015611307573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132b91906157fb565b8260008151811061133e5761133e61569a565b60200260200101836001815181106113585761135861569a565b60209081029190910101919091525290565b60003361065c8185856124a4565b6000610d9f6131f0565b6113b46040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6113de7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361264f565b6000806113ee606085018561581f565b905067ffffffffffffffff81111561140857611408615067565b604051908082528060200260200182016040528015611431578160200160208202803683370190505b50905060005b611444606086018661581f565b90508110156115365761145a606086018661581f565b8281811061146a5761146a61569a565b905060200201602081019061147f91906151d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156114c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e99190615785565b8282815181106114fb576114fb61569a565b602002602001018181525050600082828151811061151b5761151b61569a565b6020026020010151111561152e57600192505b600101611437565b5061154881610508604087018761581f565b61155d60a08501356102c7604087018761581f565b611565614dd7565b611573856101000135613270565b604085015260006115a961158a606088018861581f565b61159760208a018a61581f565b6115a460408c018c61581f565b613295565b905064e8d4a510008560400151826115c19190615869565b6115cb91906158af565b6115d590826158dd565b856040018181516115e691906158dd565b9052505060408401516115fd90610120870161363a565b5061165661160e608087018761581f565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061165192505050610100880160e089016151d5565b612f8e565b81526000808060a0880135861561178157600061167a6101008b0160e08c016151d5565b6001600160a01b031663a2d2657f61169560608d018d61581f565b8a8e80608001906116a6919061581f565b6040518663ffffffff1660e01b81526004016116c695949392919061593b565b602060405180830381865afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190615785565b905064e8d4a5100061171860355490565b10156117315761172a816103e861599c565b935061176b565b85511561175257855160355461174890839061599c565b61172a91906159b3565b60405163483ecd2f60e11b815260040160405180910390fd5b8184101561177b5783945061177f565b8194505b505b600061179060608b018b61581f565b905067ffffffffffffffff8111156117aa576117aa615067565b6040519080825280602002602001820160405280156117d3578160200160208202803683370190505b509050600082851115611bfd5785156118945760005b6117f660608d018d61581f565b905081101561188e5785878a83815181106118135761181361569a565b6020026020010151028161182957611829615899565b0483828151811061183c5761183c61569a565b60200260200101818152505082818151811061185a5761185a61569a565b60200260200101518982815181106118745761187461569a565b6020908102919091010180519190910390526001016117e9565b50600190505b6000885167ffffffffffffffff8111156118b0576118b0615067565b6040519080825280602002602001820160405280156118d9578160200160208202803683370190505b50905060006118e88d8061581f565b90501115611a9d5761195661190060608e018e61581f565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e8060000190611951919061581f565b612ec8565b60005b61196660608e018e61581f565b9050811015611a97578981815181106119815761198161569a565b602002602001015182828151811061199b5761199b61569a565b6020026020010181815250508381815181106119b9576119b961569a565b60200260200101518d80606001906119d1919061581f565b838181106119e1576119e161569a565b90506020020160208101906119f691906151d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a609190615785565b611a6a91906157b7565b8a8281518110611a7c57611a7c61569a565b6020908102919091010152611a908161579e565b9050611959565b50611aff565b60005b611aad60608e018e61581f565b9050811015611afd57898181518110611ac857611ac861569a565b6020026020010151828281518110611ae257611ae261569a565b6020908102919091010152611af68161579e565b9050611aa0565b505b611b25611b0f60608e018e61581f565b8b8f8060400190611b20919061581f565b61300f565b611b88611b3560808e018e61581f565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e001602081019061165191906151d5565b602089018190528851611b9a91613162565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611bd1916157b7565b838c604051611be394939291906157ca565b60405180910390a1611bf587866156c6565b945050611e2e565b84831115611dbf578515611c145785830392508593505b611c3a611c2460608d018d61581f565b858e8060400190611c35919061581f565b6137a0565b611c4430846138b9565b506001611c9a611c5760808d018d61581f565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611651925050506101008e0160e08f016151d5565b602088015260005b611caf60608d018d61581f565b9050811015611d7957611cc560608d018d61581f565b82818110611cd557611cd561569a565b9050602002016020810190611cea91906151d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d549190615785565b838281518110611d6657611d6661569a565b6020908102919091010152600101611ca2565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611db29186919086906159c7565b60405180910390a1611e2e565b8515611e265782935060005b611dd860608d018d61581f565b9050811015611e2057888181518110611df357611df361569a565b6020026020010151838281518110611e0d57611e0d61569a565b6020908102919091010152600101611dcb565b50600190505b865160208801525b8015611ec95760005b611e4460608d018d61581f565b9050811015611ec757611ebf611e6060e08e0160c08f016151d5565b848381518110611e7257611e7261569a565b60200260200101518e8060600190611e8a919061581f565b85818110611e9a57611e9a61569a565b9050602002016020810190611eaf91906151d5565b6001600160a01b031691906139ed565b600101611e37565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b6060610d9f613a65565b32611fd45760408051600280825260608201835260009260208301908036833701905050905083600081518110611f3657611f3661569a565b602002602001015181600081518110611f5157611f5161569a565b60200260200101818152505083600181518110611f7057611f7061569a565b602002602001015181600181518110611f8b57611f8b61569a565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611fc69190615305565b60405180910390a150505050565b600282826000818110611fe957611fe961569a565b90506020020135111561200f57604051636bf3adef60e01b815260040160405180910390fd5b61204c828260018181106120255761202561569a565b905060200201358460008151811061203f5761203f61569a565b60200260200101516123ed565b15806120855750612083828260028181106120695761206961569a565b905060200201358460018151811061203f5761203f61569a565b155b156120a357604051636bf3adef60e01b815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336120d6828261264f565b6120e08585612f8e565b92505b505092915050565b6060609680546105cb90615660565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633612126828261264f565b61075e8430856124a4565b604051632474521560e21b81527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156121be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e291906159e6565b15801561229a5750604051632474521560e21b81527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015612274573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229891906159e6565b155b156122ba57604051637ab612a360e01b81523360048201526024016108ab565b610ddf87308888888888612cd8565b6001600160a01b03831661232b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ab565b6001600160a01b03821661238c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ab565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006123fe6001600160801b6157b7565b83168210806124105750608083901c82115b159392505050565b6001600160a01b03838116600090815260346020908152604080832093861683529290522054600019811461075e57818110156124975760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108ab565b61075e84848484036122c9565b6001600160a01b0383166125085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ab565b6001600160a01b03821661256a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ab565b6001600160a01b038316600090815260336020526040902054818110156125e25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108ab565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906126429086815260200190565b60405180910390a361075e565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa1580156126bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e091906159e6565b61270f576040516301d4003760e61b8152600481018390526001600160a01b03821660248201526044016108ab565b5050565b600054610100900460ff1661273a5760405162461bcd60e51b81526004016108ab90615a08565b815160000361275c5760405163c52a9bd360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006127a9578061279f576040516336307dff60e01b815260040160405180910390fd5b60978190556127c8565b80156127c8576040516336307dff60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e065ce6e6127ff610dec565b6040518263ffffffff1660e01b815260040161281d91815260200190565b60006040518083038186803b15801561283557600080fd5b505afa158015612849573d6000803e3d6000fd5b50505050816096908161285c9190615a99565b5061270f6040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020016214d4d560ea1b815250613beb565b609854609954604051635281a36d60e11b81526001600160a01b039283166004820152911660248201526000908190731847118d72d1c48c37c5927f7fe89a79bcce5b5f9063a50346da90604401602060405180830381865af4158015612922573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129469190615785565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663aaf5eb686040518163ffffffff1660e01b8152600401602060405180830381865afa15801561299d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c19190615785565b60995460408051636253bb0f60e11b8152815193945060009384936001600160a01b03169263c4a7761e92600480820193918290030181865afa158015612a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3091906157fb565b9092509050600083612a42868561599c565b612a4c91906159b3565b9050609960009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac59190615785565b612acf83836156c6565b612ae190670de0b6b3a764000061599c565b612aeb91906159b3565b9550505050505090565b600083836000818110612b0a57612b0a61569a565b90506020020135600303612b2057506001612b39565b604051632567efab60e21b815260040160405180910390fd5b612b4c612b446131f0565b858584613c1c565b6040805160028082526060820183526000926020830190803683370190505090506000612b77610d03565b905080600081518110612b8c57612b8c61569a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612bdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c009190615785565b82600081518110612c1357612c1361569a565b60200260200101818152505080600181518110612c3257612c3261569a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca69190615785565b82600181518110612cb957612cb961569a565b602002602001018181525050612cd0818386613fe4565b505050505050565b60606000612ce986868b878761408e565b9050612cf5888a6138b9565b60005b85811015612d3857612d3088838381518110612d1657612d1661569a565b6020026020010151898985818110611e9a57611e9a61569a565b600101612cf8565b5098975050505050505050565b606080600019609c5403612d57579091565b612d5f6142a3565b9150815167ffffffffffffffff811115612d7b57612d7b615067565b604051908082528060200260200182016040528015612da4578160200160208202803683370190505b50905060005b8251811015612ec3576000838281518110612dc757612dc761569a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612e17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3b9190615785565b90508015612eba57612e9a7f000000000000000000000000000000000000000000000000000000000000000082868581518110612e7a57612e7a61569a565b60200260200101516001600160a01b03166139ed9092919063ffffffff16565b80838381518110612ead57612ead61569a565b6020026020010181815250505b50600101612daa565b509091565b612ef384847f0000000000000000000000000000000000000000000000000000000000000000613fe4565b6040516333e0a93160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906367c1526290612f479087908690869083903090600401615c67565b6000604051808303816000875af1158015612f66573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cc59190810190615cbd565b6000816001600160a01b031663a2d2657f612fa7610d03565b612faf613a65565b866040518463ffffffff1660e01b8152600401612fce93929190615d43565b602060405180830381865afa158015612feb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190615785565b6000828260008181106130245761302461569a565b9050602002013560000361303a575060056130ae565b8282600081811061304d5761304d61569a565b90506020020135600203613063575060036130ae565b828260008181106130765761307661569a565b90506020020135600414801561308a575032155b156130955750610cc5565b604051638ad3741160e01b815260040160405180910390fd5b6000613108878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250889150879050868181106130fc576130fc61569a565b90506020020135614369565b90503261315957604080516001815260208101839052606081830181905260009082015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15b50505050505050565b60008061316e60355490565b905064e8d4a510008110156131b6576131896103e88461599c565b915064e8d4a510008190038083101561319f5750815b80830392506131b061dead826147b0565b506131df565b83156117525783816131c882866157b7565b6131d2919061599c565b6131dc91906159b3565b91505b6131e930836147b0565b5092915050565b609a54609c546040516308521f7960e01b815260048101919091526000916001600160a01b0316906308521f799060240161010060405180830381865afa15801561323f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132639190615d7c565b5095979650505050505050565b60008061327b6128b7565b9050613289609d5482614871565b609d9190915592915050565b6000806002848460008181106132ad576132ad61569a565b9050602002013510806132e25750838360008181106132ce576132ce61569a565b9050602002013560041480156132e2575032155b156132ef57506004613308565b6040516303d20e8960e11b815260040160405180910390fd5b600019609c541480613318575084155b156133235750610de2565b600061332d612d45565b506040516333e0a93160e11b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906367c15262906133879084908b908b908f908f903090600401615dd9565b6000604051808303816000875af11580156133a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133ce9190810190615cbd565b50604080516002808252606082018352600092602083019080368337019050509050898960008181106134035761340361569a565b905060200201602081019061341891906151d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561345e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134829190615785565b816000815181106134955761349561569a565b602002602001018181525050898960018181106134b4576134b461569a565b90506020020160208101906134c991906151d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561350f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135339190615785565b816001815181106135465761354661569a565b602002602001018181525050600061355c6131f0565b905060006135ac8c8c808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508792508c91508b9050898181106130fc576130fc61569a565b9050326135fd57604080516001815260208101839052606081830181905260009082015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15b81826136076131f0565b61361191906157b7565b6136209064e8d4a5100061599c565b61362a91906159b3565b9c9b505050505050505050505050565b6000808313156106625782600061365864e8d4a5100061271061599c565b6136686080860160608701615e31565b6001600160601b03166136816040870160208801615e31565b613696906001600160601b03166127106157b7565b6136a091906157b7565b6136aa908461599c565b6136b491906156c6565b90506000826136c260355490565b6136cc919061599c565b90506000826136e16040880160208901615e31565b6136f4906001600160601b03168461599c565b6136fe91906159b3565b905061371661371060208801886151d5565b826147b0565b6000836137296080890160608a01615e31565b61373c906001600160601b03168561599c565b61374691906159b3565b905061375b6137106060890160408a016151d5565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b6000828260008181106137b5576137b561569a565b905060200201356001036137cb57506005613883565b828260008181106137de576137de61569a565b905060200201356002036137f457506002613883565b828260008181106138075761380761569a565b9050602002013560030361381d57506001613883565b828260008181106138305761383061569a565b905060200201356000148015613844575032155b1561385157506005613883565b828260008181106138645761386461569a565b905060200201356004148015613878575032155b15612b205750610cc5565b600061388e60355490565b856138976131f0565b6138a1919061599c565b6138ab91906159b3565b905061315981858585613c1c565b6001600160a01b0382166139195760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108ab565b6001600160a01b0382166000908152603360205260409020548181101561398d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016108ab565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b0383166024820152604481018290526120a390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909316929092179091526148dd565b60408051600280825260608083018452926020830190803683370190505060995460408051636253bb0f60e11b8152815193945060009384936001600160a01b03169263c4a7761e92600480820193918290030181865afa158015613ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613af291906157fb565b915091506000609960009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b6f9190615785565b90506000613b7b6131f0565b905081613b88828661599c565b613b9291906159b3565b85600081518110613ba557613ba561569a565b602090810291909101015281613bbb828561599c565b613bc591906159b3565b85600181518110613bd857613bd861569a565b6020026020010181815250505050505090565b600054610100900460ff16613c125760405162461bcd60e51b81526004016108ab90615a08565b61270f82826149af565b609b54609c54604051632e1a7d4d60e01b81526001600160a01b0390921691632e1a7d4d91613c519160040190815260200190565b600060405180830381600087803b158015613c6b57600080fd5b505af1158015613c7f573d6000803e3d6000fd5b50505050613c8b6149ef565b609a54609c54604051633cb85acf60e21b81526001600160a01b039092169163f2e16b3c91613cc7918890600401918252602082015260400190565b600060405180830381600087803b158015613ce157600080fd5b505af1158015613cf5573d6000803e3d6000fd5b506000925060029150613d059050565b604051908082528060200260200182016040528015613d2e578160200160208202803683370190505b509050613d39614df5565b60995460405163542acc3960e11b81526001600160a01b039091169063a855987290613d6f908990309081908790600401615e7d565b60408051808303816000875af1158015613d8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613db191906157fb565b83600081518110613dc457613dc461569a565b6020026020010184600181518110613dde57613dde61569a565b602090810291909101019190915252848484818110613dff57613dff61569a565b9050602002013582600081518110613e1957613e1961569a565b60200260200101511080613e6857508484613e358560016156c6565b818110613e4457613e4461569a565b9050602002013582600181518110613e5e57613e5e61569a565b6020026020010151105b15613e8657604051631ee8c23d60e21b815260040160405180910390fd5b609a54609c54604051634f558e7960e01b81526001600160a01b0390921691634f558e7991613ebb9160040190815260200190565b602060405180830381865afa158015613ed8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613efc91906159e6565b613f0b57600019609c55613f7e565b609a54609b54609c54604051632142170760e11b81523060048201526001600160a01b03928316602482015260448101919091529116906342842e0e90606401600060405180830381600087803b158015613f6557600080fd5b505af1158015613f79573d6000803e3d6000fd5b505050505b32612cd0577f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a9060008084604051602001613fb89190615305565b60408051601f1981840301815290829052613fd4939291615ea8565b60405180910390a1505050505050565b600082600081518110613ff957613ff961569a565b6020026020010151111561403957614039818360008151811061401e5761401e61569a565b602002602001015185600081518110612e7a57612e7a61569a565b60008260018151811061404e5761404e61569a565b602002602001015111156120a3576120a381836001815181106140735761407361569a565b602002602001015185600181518110612e7a57612e7a61569a565b60608467ffffffffffffffff8111156140a9576140a9615067565b6040519080825280602002602001820160405280156140d2578160200160208202803683370190505b50905060005b8581101561419e578686828181106140f2576140f261569a565b905060200201602081019061410791906151d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561414d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141719190615785565b8282815181106141835761418361569a565b60209081029190910101526141978161579e565b90506140d8565b506141ac86868686866137a0565b60005b85811015614299578181815181106141c9576141c961569a565b60200260200101518787838181106141e3576141e361569a565b90506020020160208101906141f891906151d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561423e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142629190615785565b61426c91906157b7565b82828151811061427e5761427e61569a565b60209081029190910101526142928161579e565b90506141af565b5095945050505050565b609b5460408051634641257d60e01b815290516060926001600160a01b031691634641257d91600480830192600092919082900301818387803b1580156142e957600080fd5b505af11580156142fd573d6000803e3d6000fd5b505050506143096149ef565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fd0da0996040518163ffffffff1660e01b81526004016000604051808303816000875af1158015610d77573d6000803e3d6000fd5b60008260008151811061437e5761437e61569a565b602002602001015160001480156143af5750826001815181106143a3576143a361569a565b60200260200101516000145b156143bc57506000610795565b614410846000815181106143d2576143d261569a565b6020026020010151609960009054906101000a90046001600160a01b0316856000815181106144035761440361569a565b6020026020010151614a82565b614457846001815181106144265761442661569a565b6020026020010151609960009054906101000a90046001600160a01b0316856001815181106144035761440361569a565b61445f614df5565b60985484516001600160a01b0390911690638e3c92e49086906000906144875761448761569a565b6020026020010151866001815181106144a2576144a261569a565b602002602001015130609960009054906101000a90046001600160a01b0316866040518663ffffffff1660e01b81526004016144e2959493929190615ec9565b6020604051808303816000875af1158015614501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145259190615785565b506099546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561456e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145929190615785565b9150828210156145b557604051638ad3741160e01b815260040160405180910390fd5b609954609a546145d2916001600160a01b03908116911684614a82565b600019609c540361473157609a5460405163d1aaef0560e01b815260048101849052600060248201526001600160a01b039091169063d1aaef0590604401600060405180830381600087803b15801561462a57600080fd5b505af115801561463e573d6000803e3d6000fd5b50505050609a60009054906101000a90046001600160a01b03166001600160a01b031663f84ddf0b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146b99190615785565b609c819055609a54609b54604051632142170760e11b81523060048201526001600160a01b039182166024820152604481019390935216906342842e0e90606401600060405180830381600087803b15801561471457600080fd5b505af1158015614728573d6000803e3d6000fd5b505050506147a8565b6147396149ef565b609a54609c5460405163162a176f60e11b81526001600160a01b0390921691632c542ede91614775918690600401918252602082015260400190565b600060405180830381600087803b15801561478f57600080fd5b505af11580156147a3573d6000803e3d6000fd5b505050505b509392505050565b6001600160a01b0382166148065760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108ab565b806035600082825461481891906156c6565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000828211156148a7578264e8d4a5100061488c82856157b7565b614896919061599c565b6148a091906159b3565b9050610662565b81831115610662578264e8d4a510006148c084836157b7565b6148ca919061599c565b6148d491906159b3565b61079590615efc565b6000614932826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614aa09092919063ffffffff16565b8051909150156120a3578080602001905181019061495091906159e6565b6120a35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108ab565b600054610100900460ff166149d65760405162461bcd60e51b81526004016108ab90615a08565b60366149e28382615a99565b5060376120a38282615a99565b609a54609c54604051631f4da29f60e11b81526001600160a01b0390921691633e9b453e91614a54917f0000000000000000000000000000000000000000000000000000000000000000906004019182526001600160a01b0316602082015260400190565b600060405180830381600087803b158015614a6e57600080fd5b505af115801561075e573d6000803e3d6000fd5b614a8c8383614ab7565b6120a36001600160a01b0384168383614b42565b6060614aaf8484600085614c5e565b949350505050565b604051636eb1769f60e11b81523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b2b9190615785565b111561270f5761270f6001600160a01b0383168260005b801580614bbc5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bba9190615785565b155b614c2e5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016108ab565b6040516001600160a01b0383166024820152604481018290526120a390849063095ea7b360e01b90606401613a19565b606082471015614cbf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108ab565b600080866001600160a01b03168587604051614cdb9190615f18565b60006040518083038185875af1925050503d8060008114614d18576040519150601f19603f3d011682016040523d82523d6000602084013e614d1d565b606091505b5091509150614d2e87838387614d39565b979650505050505050565b60608315614da8578251600003614da1576001600160a01b0385163b614da15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108ab565b5081614aaf565b614aaf8383815115614dbd5781518083602001fd5b8060405162461bcd60e51b81526004016108ab9190614e63565b60405180604001604052806002906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60005b83811015614e2e578181015183820152602001614e16565b50506000910152565b60008151808452614e4f816020860160208601614e13565b601f01601f19169290920160200192915050565b6020815260006107956020830184614e37565b6001600160a01b0381168114614e8b57600080fd5b50565b60008060408385031215614ea157600080fd5b8235614eac81614e76565b946020939093013593505050565b60008083601f840112614ecc57600080fd5b50813567ffffffffffffffff811115614ee457600080fd5b6020830191508360208260051b8501011115614eff57600080fd5b9250929050565b600080600060408486031215614f1b57600080fd5b83359250602084013567ffffffffffffffff811115614f3957600080fd5b614f4586828701614eba565b9497909650939450505050565b600080600080600060808688031215614f6a57600080fd5b8535614f7581614e76565b94506020860135614f8581614e76565b935060408601359250606086013567ffffffffffffffff80821115614fa957600080fd5b818801915088601f830112614fbd57600080fd5b813581811115614fcc57600080fd5b896020828501011115614fde57600080fd5b9699959850939650602001949392505050565b60008060006060848603121561500657600080fd5b833561501181614e76565b9250602084013561502181614e76565b929592945050506040919091013590565b60008060006060848603121561504757600080fd5b833561505281614e76565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156150a6576150a6615067565b604052919050565b80356150b981614e76565b919050565b600080600080608085870312156150d457600080fd5b843567ffffffffffffffff808211156150ec57600080fd5b818701915087601f83011261510057600080fd5b813560208282111561511457615114615067565b615126601f8301601f1916820161507d565b9250818352898183860101111561513c57600080fd5b8181850182850137600081838501015282975080890135965050505050615165604086016150ae565b9150615173606086016150ae565b905092959194509250565b60008060006040848603121561519357600080fd5b833567ffffffffffffffff8111156151aa57600080fd5b6151b686828701614eba565b90945092505060208401356151ca81614e76565b809150509250925092565b6000602082840312156151e757600080fd5b813561079581614e76565b600081518084526020808501945080840160005b8381101561522b5781516001600160a01b031687529582019590820190600101615206565b509495945050505050565b60208152600061079560208301846151f2565b6000806000806000806080878903121561526257600080fd5b86359550602087013561527481614e76565b9450604087013567ffffffffffffffff8082111561529157600080fd5b61529d8a838b01614eba565b909650945060608901359150808211156152b657600080fd5b506152c389828a01614eba565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b8381101561522b578151875295820195908201906001016152e9565b60208152600061079560208301846152d5565b60408152600061532b60408301856151f2565b828103602084015261076d81856152d5565b600080600080600080600080600060a08a8c03121561535b57600080fd5b893567ffffffffffffffff8082111561537357600080fd5b61537f8d838e01614eba565b909b50995060208c013591508082111561539857600080fd5b6153a48d838e01614eba565b909950975060408c013591506153b982614e76565b90955060608b013590808211156153cf57600080fd5b6153db8d838e01614eba565b909650945060808c01359150808211156153f457600080fd5b506154018c828d01614eba565b915080935050809150509295985092959850929598565b60006020828403121561542a57600080fd5b813567ffffffffffffffff81111561544157600080fd5b82016101a0818503121561079557600080fd5b60208152815160208201526000602083015160a0604084015261547a60c08401826152d5565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff8211156154be576154be615067565b5060051b60200190565b600082601f8301126154d957600080fd5b813560206154ee6154e9836154a4565b61507d565b82815260059290921b8401810191818101908684111561550d57600080fd5b8286015b848110156155285780358352918301918301615511565b509695505050505050565b60008060006040848603121561554857600080fd5b833567ffffffffffffffff8082111561556057600080fd5b61556c878388016154c8565b9450602086013591508082111561558257600080fd5b50614f4586828701614eba565b600080604083850312156155a257600080fd5b823567ffffffffffffffff8111156155b957600080fd5b6155c5858286016154c8565b92505060208301356155d681614e76565b809150509250929050565b600080604083850312156155f457600080fd5b82356155ff81614e76565b915060208301356155d681614e76565b600080600080600060a0868803121561562757600080fd5b853561563281614e76565b9450602086013561564281614e76565b94979496505050506040830135926060810135926080909101359150565b600181811c9082168061567457607f821691505b60208210810361569457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610662576106626156b0565b600060208083850312156156ec57600080fd5b825167ffffffffffffffff81111561570357600080fd5b8301601f8101851361571457600080fd5b80516157226154e9826154a4565b81815260059190911b8201830190838101908783111561574157600080fd5b928401925b82841015614d2e57835161575981614e76565b82529284019290840190615746565b60006020828403121561577a57600080fd5b815161079581614e76565b60006020828403121561579757600080fd5b5051919050565b6000600182016157b0576157b06156b0565b5060010190565b81810381811115610662576106626156b0565b8481528360208201526080604082015260006157e960808301856152d5565b8281036060840152614d2e81856152d5565b6000806040838503121561580e57600080fd5b505080516020909101519092909150565b6000808335601e1984360301811261583657600080fd5b83018035915067ffffffffffffffff82111561585157600080fd5b6020019150600581901b3603821315614eff57600080fd5b80820260008212600160ff1b84141615615885576158856156b0565b8181058314821517610662576106626156b0565b634e487b7160e01b600052601260045260246000fd5b6000826158be576158be615899565b600160ff1b8214600019841416156158d8576158d86156b0565b500590565b80820182811260008312801582168215821617156120e3576120e36156b0565b8183526000602080850194508260005b8581101561522b57813561592081614e76565b6001600160a01b03168752958201959082019060010161590d565b60608152600061594f6060830187896158fd565b828103602084015261596181876152d5565b838103604085015284815290506001600160fb1b0384111561598257600080fd5b8360051b8086602084013701602001979650505050505050565b8082028115828204841417610662576106626156b0565b6000826159c2576159c2615899565b500490565b83815282602082015260606040820152600061076d60608301846152d5565b6000602082840312156159f857600080fd5b8151801515811461079557600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f8211156120a357600081815260208120601f850160051c81016020861015615a7a5750805b601f850160051c820191505b81811015612cd057828155600101615a86565b815167ffffffffffffffff811115615ab357615ab3615067565b615ac781615ac18454615660565b84615a53565b602080601f831160018114615afc5760008415615ae45750858301515b600019600386901b1c1916600185901b178555612cd0565b600085815260208120601f198616915b82811015615b2b57888601518255948401946001909101908401615b0c565b5085821015615b495787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b81835260006020808501808196508560051b810191508460005b87811015615c5a5782840389528135605e19883603018112615bbd57600080fd5b870160608135615bcc81614e76565b6001600160a01b0390811687528288013590615be782614e76565b168688015260408281013536849003601e19018112615c0557600080fd5b90920187810192903567ffffffffffffffff811115615c2357600080fd5b803603841315615c3257600080fd5b8282890152615c448389018286615b59565b9c89019c97505050928601925050600101615b9c565b5091979650505050505050565b608081526000615c7a60808301886151f2565b8281036020840152615c8d818789615b82565b90508281036040840152615ca181866151f2565b9150506001600160a01b03831660608301529695505050505050565b60006020808385031215615cd057600080fd5b825167ffffffffffffffff811115615ce757600080fd5b8301601f81018513615cf857600080fd5b8051615d066154e9826154a4565b81815260059190911b82018301908381019087831115615d2557600080fd5b928401925b82841015614d2e57835182529284019290840190615d2a565b606081526000615d5660608301866151f2565b8281036020840152615d6881866152d5565b90508281036040840152610de281856152d5565b600080600080600080600080610100898b031215615d9957600080fd5b505086516020880151604089015160608a015160808b015160a08c015160c08d015160e0909d0151959e949d50929b919a50985090965094509092509050565b608081526000615dec60808301896151f2565b8281036020840152615dff81888a615b82565b90508281036040840152615e148186886158fd565b9150506001600160a01b0383166060830152979650505050505050565b600060208284031215615e4357600080fd5b81356001600160601b038116811461079557600080fd5b8060005b600481101561075e578151845260209384019390910190600101615e5e565b8481526001600160a01b0384811660208301528316604082015260e0810161076d6060830184615e5a565b831515815282602082015260606040820152600061076d6060830184614e37565b858152602081018590526001600160a01b038481166040830152831660608201526101008101610de26080830184615e5a565b6000600160ff1b8201615f1157615f116156b0565b5060000390565b60008251615f2a818460208701614e13565b919091019291505056fea26469706673582212209488c8fd1304d7b203ae4f7d5a956fbcd2a6410742e92504eec3c01d128f884064736f6c63430008110033000000000000000000000000b3b8d7a4ef4c6c78699bdab42837383040a3752e00000000000000000000000068306356f6dde2b8a731cd02f7466e75977efcf9000000000000000000000000d1f7495e9c3f01b8e36dda05033b783e6d02fe900000000000000000000000001216944517eaffc8d31bd238b2c56dd82b6be534", + "nonce": "0x17e", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x9f33932ba1209969c5ec57151ae362a6976a8a91d74126b6d7bfaa93aa9f44c9", + "transactionIndex": "0x5", + "blockHash": "0x6e4e6fc7ae7e7c6cc8250c0df7e7d83748b674a6a5494a58c3f066753430f940", + "blockNumber": "0xd52c326", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x95b1e8", + "gasUsed": "0x8e5178", + "contractAddress": "0x6c2E2363393087Fdc493c0be59f5Db103c39f9c9", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x989680" + } + ], + "libraries": [ + "script/helper/ArraysHelper.sol:ArraysHelper:0x1cc307ce564a41a1823f7c6e319b75c139747a32", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0x8d4fe5840fead29f30d5fb9f3ba6fdb6640de8ba", + "src/libraries/ReallocationLib.sol:ReallocationLib:0xc6f00a9d10263941998d7fd4e4758f1497babdd6", + "src/libraries/SpoolUtils.sol:SpoolUtils:0x9a6a0820738f6f18f39f9e7109fea44de85bd468", + "src/strategies/arbitrum/libraries/GammaCamelotPriceHelper.sol:GammaCamelotPriceHelper:0x1847118d72d1c48c37c5927f7fe89a79bcce5b5f" + ], + "pending": [], + "returns": {}, + "timestamp": 1718809237, + "chain": 42161, + "multi": false, + "commit": "99fde48" +} \ No newline at end of file diff --git a/broadcast/mainnet-production/DeploySmartVaultBeneficiaryFactoryHpf.s.sol/1/run-latest.json b/broadcast/mainnet-production/DeploySmartVaultBeneficiaryFactoryHpf.s.sol/1/run-latest.json new file mode 100644 index 00000000..7b3660b8 --- /dev/null +++ b/broadcast/mainnet-production/DeploySmartVaultBeneficiaryFactoryHpf.s.sol/1/run-latest.json @@ -0,0 +1,187 @@ +{ + "transactions": [ + { + "hash": "0xb8bca6a813f859cc79f62410aa3799e1ccc65000daa85fcbfe9b6ee380f64f4c", + "transactionType": "CREATE", + "contractName": "SmartVaultBeneficiary", + "contractAddress": "0x360f49dD5626dC3381299377432Ce2389Aed3F76", + "function": null, + "arguments": [ + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0xB8c204e858AA420eb5a57599dA86fFD6375da6a8" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0x644aa8", + "value": "0x0", + "data": "0x60c06040523480156200001157600080fd5b5060405162005ca338038062005ca3833981016040819052620000349162000193565b8181816001600160a01b0381166200005f5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660805281166200008d5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b03811660a052620000a4620000b9565b50620000b19050620000b9565b5050620001d2565b600054610100900460ff1615620001265760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000178576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200019057600080fd5b50565b60008060408385031215620001a757600080fd5b8251620001b4816200017a565b6020840151909250620001c7816200017a565b809150509250929050565b60805160a051615a8f62000214600039600081816138c30152613b2a01526000818161102401528181611926015281816123cc01526143e10152615a8f6000f3fe608060405234801561001057600080fd5b50600436106102ac5760003560e01c8063539183e71161017b578063a7614d81116100d8578063dd62ed3e1161008c578063e985e9c511610071578063e985e9c5146105e5578063f20046a81461062f578063f242432a1461064257600080fd5b8063dd62ed3e1461058c578063e2281e0a146105d257600080fd5b8063a99fb771116100bd578063a99fb77114610553578063b431608714610566578063d505accf1461057957600080fd5b8063a7614d8114610520578063a9059cbb1461054057600080fd5b80637ecebe001161012f57806395d89b411161011457806395d89b41146104f2578063a22cb465146104fa578063a457c2d71461050d57600080fd5b80637ecebe00146104d557806384ba89e3146104e857600080fd5b806356ba94541161016057806356ba9454146104795780635d9c84ee1461048c57806370a082311461049f57600080fd5b8063539183e71461045357806355f804b31461046657600080fd5b8063246feb9a116102295780633644e515116101dd57806339509351116101c2578063395093511461040d57806346d7a02f146104205780634e1273f41461043357600080fd5b80633644e515146103bf57806338af3eed146103c757600080fd5b80632ce5183f1161020e5780632ce5183f1461038a5780632eb2c2d61461039d578063313ce567146103b057600080fd5b8063246feb9a1461036d5780632acf46371461037757600080fd5b80630ace9ca01161028057806318160ddd1161026557806318160ddd1461033d5780631c5d2b491461034557806323b872dd1461035a57600080fd5b80630ace9ca0146103225780630e89341c1461032a57600080fd5b8062fdd58e146102b157806301ffc9a7146102d757806306fdde03146102fa578063095ea7b31461030f575b600080fd5b6102c46102bf366004614606565b610655565b6040519081526020015b60405180910390f35b6102ea6102e5366004614660565b61067f565b60405190151581526020016102ce565b610302610762565b6040516102ce91906146eb565b6102ea61031d366004614606565b6107f4565b61030261080c565b6103026103383660046146fe565b61081c565b6035546102c4565b610358610353366004614760565b610858565b005b6102ea610368366004614803565b610b1b565b6102c46101685481565b6102ea610385366004614803565b610b3f565b610358610398366004614606565b610b84565b6103586103ab3660046149ef565b610bc1565b604051601281526020016102ce565b6102c4610c8a565b610167546103e89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102ce565b6102ea61041b366004614606565b610c99565b61035861042e366004614a9d565b610ce5565b610446610441366004614b5d565b610dd1565b6040516102ce9190614c65565b610446610461366004614cbd565b610f29565b610358610474366004614d12565b610fd5565b6102c4610487366004614d5b565b6110c3565b6102c461049a366004614606565b6111b2565b6102c46104ad366004614dee565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b6102c46104e3366004614dee565b6111c5565b6102c46101615481565b6103026111f0565b610358610508366004614e19565b6111ff565b6102ea61051b366004614606565b61120e565b61053361052e366004614e52565b6112df565b6040516102ce9190614e94565b6102ea61054e366004614606565b611456565b610533610561366004614f14565b611464565b6102c4610574366004614f97565b611516565b610358610587366004614fe3565b611606565b6102c461059a36600461505a565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6103586105e0366004615088565b6117c5565b6102ea6105f336600461505a565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260ff602081815260408084209486168452939052919020541692915050565b61035861063d366004614606565b6118c9565b610358610650366004615114565b611a47565b600060016106638484611b09565b1015610670576000610673565b60015b60ff1690505b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061071257507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061067957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610679565b6060603680546107719061517d565b80601f016020809104026020016040519081016040528092919081815260200182805461079d9061517d565b80156107ea5780601f106107bf576101008083540402835291602001916107ea565b820191906000526020600020905b8154815290600101906020018083116107cd57829003601f168201915b5050505050905090565b600033610802818585611be3565b5060019392505050565b606061016280546107719061517d565b60606108286000611d97565b61083183611e2c565b6040516020016108429291906151ca565b6040516020818303038152906040529050919050565b600054610100900460ff16158080156108785750600054600160ff909116105b806108925750303b158015610892575060005460ff166001145b610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561098157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b60008790036109bc576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109fb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611eea92505050565b610a6e88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611f8d92505050565b610162610a7c888a8361526f565b506101618290556000610165557f8000000000000000000000000000000000000000000000000000000000000000610166558015610b1157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b600033610b2985828561202e565b610b348585856120ff565b506001949350505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610b6d8282612380565b610b788686866120ff565b50600195945050505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610bb08282612380565b610bbb3085856120ff565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8516331480610bea5750610bea85336105f3565b610c76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f766564000000000000000000000000000000000000606482015260840161091a565b610c83858585858561248c565b5050505050565b6000610c946127cf565b905090565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906108029082908690610ce09087906153b8565b611be3565b610cf489898989898989610858565b73ffffffffffffffffffffffffffffffffffffffff8216610d41576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710811115610d7d576040517f34191abc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61016780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091556101685550505050505050565b60608151835114610e64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d617463680000000000000000000000000000000000000000000000606482015260840161091a565b6000835167ffffffffffffffff811115610e8057610e80614844565b604051908082528060200260200182016040528015610ea9578160200160208202803683370190505b50905060005b8451811015610f2157610ef4858281518110610ecd57610ecd6153cb565b6020026020010151858381518110610ee757610ee76153cb565b6020026020010151610655565b828281518110610f0657610f066153cb565b6020908102919091010152610f1a816153fa565b9050610eaf565b509392505050565b606060008267ffffffffffffffff811115610f4657610f46614844565b604051908082528060200260200182016040528015610f6f578160200160208202803683370190505b50905060005b83811015610fcc57610f9f86868684818110610f9357610f936153cb565b905060200201356111b2565b828281518110610fb157610fb16153cb565b6020908102919091010152610fc5816153fa565b9050610f75565b50949350505050565b6040517fd9b324e100000000000000000000000000000000000000000000000000000000815230600482018190523360248301819052909173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d9b324e19060440160006040518083038186803b15801561106657600080fd5b505afa15801561107a573d6000803e3d6000fd5b505050506110878361284a565b7f5411e8ebf1636d9e83d5fc4900bf80cbac82e8790da2a4c94db4895e889eedf6836040516110b691906146eb565b60405180910390a1505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336110f18282612380565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610166541061114d576040517ff8bac3d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610166805490600061115e836153fa565b909155505061016680546000908152610164602090815260408083208851815582890151600190910155925483519182019093529081526111a5918791620f424090612857565b5050610166549392505050565b60006111be8383611b09565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260996020526040812054610679565b6060603780546107719061517d565b61120a3383836129d9565b5050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156112d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161091a565b610b348286868403611be3565b606060008267ffffffffffffffff8111156112fc576112fc614844565b60405190808252806020026020018201604052801561132f57816020015b606081526020019060019003908161131a5790505b50905060005b83811015610f21577f8000000000000000000000000000000000000000000000000000000000000000858583818110611370576113706153cb565b90506020020135116113cc576101636000868684818110611393576113936153cb565b9050602002013581526020019081526020016000206040516020016113b89190615432565b604051602081830303815290604052611428565b61016460008686848181106113e3576113e36153cb565b905060200201358152602001908152602001600020604051602001611418919081548152600190910154602082015260400190565b6040516020818303038152906040525b82828151811061143a5761143a6153cb565b60200260200101819052508061144f906153fa565b9050611335565b6000336108028185856120ff565b60607f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336114928282612380565b6115008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a918291850190849080828437600092019190915250612b2492505050565b61150a87876112df565b98975050505050505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336115448282612380565b7f800000000000000000000000000000000000000000000000000000000000000061016554106115a0576040517f839261c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61016580549060006115b1836153fa565b90915550506101655460009081526101636020526040902084906115d582826154ad565b9050506115f98561016554620f424060405180602001604052806000815250612857565b5050610165549392505050565b83421115611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161091a565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861169f8c612e60565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061170782612e95565b9050600061171782878787612efe565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161091a565b6117b98a8a8a611be3565b50505050505050505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336117f18282612380565b6117fb8888612f28565b60005b858110156118be57600085858381811061181a5761181a6153cb565b9050602002013511156118ae576118ae87878381811061183c5761183c6153cb565b90506020020160208101906118519190614dee565b868684818110611863576118636153cb565b9050602002013589898581811061187c5761187c6153cb565b90506020020160208101906118919190614dee565b73ffffffffffffffffffffffffffffffffffffffff1691906130f7565b6118b7816153fa565b90506117fe565b505050505050505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336118f58282612380565b6040517f1d7a3f880000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690631d7a3f8890602401602060405180830381865afa158015611982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a6919061558f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036119f75761271084610168546119ea9190615496565b6119f491906155ac565b90505b6000611a0382866155e7565b90508115611a2f5761016754611a2f9073ffffffffffffffffffffffffffffffffffffffff1683613184565b8015611a3f57611a3f8682613184565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516331480611a705750611a7085336105f3565b611afc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f766564000000000000000000000000000000000000606482015260840161091a565b610c838585858585613285565b600073ffffffffffffffffffffffffffffffffffffffff8316611bae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201527f616c6964206f776e657200000000000000000000000000000000000000000000606482015260840161091a565b50600090815260fe6020908152604080832073ffffffffffffffffffffffffffffffffffffffff949094168352929052205490565b73ffffffffffffffffffffffffffffffffffffffff8316611c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161091a565b73ffffffffffffffffffffffffffffffffffffffff8216611d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161091a565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60606101008054611da79061517d565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd39061517d565b8015611e205780601f10611df557610100808354040283529160200191611e20565b820191906000526020600020905b815481529060010190602001808311611e0357829003601f168201915b50505050509050919050565b60606000611e39836134ca565b600101905060008167ffffffffffffffff811115611e5957611e59614844565b6040519080825280601f01601f191660200182016040528015611e83576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611e8d57509392505050565b600054610100900460ff16611f81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161091a565b611f8a816135ac565b50565b600054610100900460ff16612024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161091a565b61120a828261364c565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbb57818110156120f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161091a565b610bbb8484848403611be3565b73ffffffffffffffffffffffffffffffffffffffff83166121a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161091a565b73ffffffffffffffffffffffffffffffffffffffff8216612245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161091a565b6122508383836136fc565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612306576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161091a565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906123739086815260200190565b60405180910390a3610bbb565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612413573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243791906155fa565b61120a576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8216602482015260440161091a565b815183511461251d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d61746368000000000000000000000000000000000000000000000000606482015260840161091a565b73ffffffffffffffffffffffffffffffffffffffff84166125c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161091a565b336125cf81878787878761393b565b60005b84518110156127425760008582815181106125ef576125ef6153cb565b60200260200101519050600085838151811061260d5761260d6153cb565b602090810291909101810151600084815260fe8352604080822073ffffffffffffffffffffffffffffffffffffffff8e1683529093529190912054909150818110156126db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e7366657200000000000000000000000000000000000000000000606482015260840161091a565b600083815260fe6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8e8116855292528083208585039055908b168252812080548492906127279084906153b8565b925050819055505050508061273b906153fa565b90506125d2565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b9929190615617565b60405180910390a4611a3f818787878787613baf565b6000610c947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6127fe60655490565b6066546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b61010061120a8282615645565b73ffffffffffffffffffffffffffffffffffffffff84166128fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161091a565b33600061290685613e39565b9050600061291385613e39565b90506129248360008985858961393b565b600086815260fe6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b168452909152812080548792906129639084906153b8565b9091555050604080518781526020810187905273ffffffffffffffffffffffffffffffffffffffff808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46129d083600089898989613e84565b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c660000000000000000000000000000000000000000000000606482015260840161091a565b73ffffffffffffffffffffffffffffffffffffffff838116600081815260ff602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611d8a565b73ffffffffffffffffffffffffffffffffffffffff8316612bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161091a565b8051825114612c58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d61746368000000000000000000000000000000000000000000000000606482015260840161091a565b6000339050612c7b8185600086866040518060200160405280600081525061393b565b60005b8351811015612dcc576000848281518110612c9b57612c9b6153cb565b602002602001015190506000848381518110612cb957612cb96153cb565b602090810291909101810151600084815260fe8352604080822073ffffffffffffffffffffffffffffffffffffffff8c168352909352919091205490915081811015612d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e636500000000000000000000000000000000000000000000000000000000606482015260840161091a565b600092835260fe6020908152604080852073ffffffffffffffffffffffffffffffffffffffff8b1686529091529092209103905580612dc4816153fa565b915050612c7e565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612e44929190615617565b60405180910390a4604080516020810190915260009052610bbb565b73ffffffffffffffffffffffffffffffffffffffff811660009081526099602052604090208054600181018255905b50919050565b6000610679612ea26127cf565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000612f0f87878787614031565b91509150612f1c81614120565b5090505b949350505050565b73ffffffffffffffffffffffffffffffffffffffff8216612fcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161091a565b612fd7826000836136fc565b73ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260409020548181101561308d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161091a565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611d8a565b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526130f29084906142d3565b73ffffffffffffffffffffffffffffffffffffffff8216613201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161091a565b61320d600083836136fc565b806035600082825461321f91906153b8565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8416613328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161091a565b33600061333485613e39565b9050600061334185613e39565b905061335183898985858961393b565b600086815260fe6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8c16845290915290205485811015613411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e7366657200000000000000000000000000000000000000000000606482015260840161091a565b600087815260fe6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d8116855292528083208985039055908a1682528120805488929061345d9084906153b8565b9091555050604080518881526020810188905273ffffffffffffffffffffffffffffffffffffffff808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46118be848a8a8a8a8a613e84565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613513577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061353f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061355d57662386f26fc10000830492506010015b6305f5e1008310613575576305f5e100830492506008015b612710831061358957612710830492506004015b6064831061359b576064830492506002015b600a83106106795760010192915050565b600054610100900460ff16613643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161091a565b611f8a8161284a565b600054610100900460ff166136e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161091a565b60366136ef8382615645565b5060376130f28282615645565b6137046143df565b73ffffffffffffffffffffffffffffffffffffffff8316158061373b575073ffffffffffffffffffffffffffffffffffffffff8216155b8061375b575073ffffffffffffffffffffffffffffffffffffffff821630145b1561376557505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036137ca576040517fbc6284b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516001808252818301909252600091602080830190803683370190505090508181600081518110613800576138006153cb565b60200260200101818152505060006040518060c001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff16815260200160048081111561387f5761387f61575f565b815260208082018590526040805160008152918201815291820152517f2c8dfb260000000000000000000000000000000000000000000000000000000081529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632c8dfb269061390f90309085906004016157d4565b60006040518083038186803b15801561392757600080fd5b505afa1580156118be573d6000803e3d6000fd5b6139436143df565b73ffffffffffffffffffffffffffffffffffffffff8516158061397a575073ffffffffffffffffffffffffffffffffffffffff8416155b611a3f578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036139e3576040517fbc6284b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8351811015613a7157620f4240838281518110613a0557613a056153cb565b602002602001015114613a6157828181518110613a2457613a246153cb565b60200260200101516040517fd53d8d0b00000000000000000000000000000000000000000000000000000000815260040161091a91815260200190565b613a6a816153fa565b90506139e6565b5060006040518060c001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160026004811115613ae657613ae661575f565b815260208082018790526040805160008152918201815291820152517f2c8dfb260000000000000000000000000000000000000000000000000000000081529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632c8dfb2690613b7690309085906004016157d4565b60006040518083038186803b158015613b8e57600080fd5b505afa158015613ba2573d6000803e3d6000fd5b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84163b15611a3f576040517fbc197c8100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063bc197c8190613c2690899089908890889088906004016158b8565b6020604051808303816000875af1925050508015613c7f575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252613c7c91810190615917565b60015b613d6857613c8b615934565b806308c379a003613cde5750613c9f615950565b80613caa5750613ce0565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a91906146eb565b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560448201527f526563656976657220696d706c656d656e746572000000000000000000000000606482015260840161091a565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146129d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e73000000000000000000000000000000000000000000000000606482015260840161091a565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613e7357613e736153cb565b602090810291909101015292915050565b73ffffffffffffffffffffffffffffffffffffffff84163b15611a3f576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f23a6e6190613efb90899089908890889088906004016159f8565b6020604051808303816000875af1925050508015613f54575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252613f5191810190615917565b60015b613f6057613c8b615934565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146129d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e73000000000000000000000000000000000000000000000000606482015260840161091a565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156140685750600090506003614117565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156140bc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661411057600060019250925050614117565b9150600090505b94509492505050565b60008160048111156141345761413461575f565b0361413c5750565b60018160048111156141505761415061575f565b036141b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161091a565b60028160048111156141cb576141cb61575f565b03614232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161091a565b60038160048111156142465761424661575f565b03611f8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161091a565b6000614335826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166144a79092919063ffffffff16565b8051909150156130f2578080602001905181019061435391906155fa565b6130f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161091a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561444a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061446e91906155fa565b156144a5576040517f729e4c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6060612f208484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516144db9190615a3d565b60006040518083038185875af1925050503d8060008114614518576040519150601f19603f3d011682016040523d82523d6000602084013e61451d565b606091505b509150915061452e87838387614539565b979650505050505050565b606083156145cf5782516000036145c85773ffffffffffffffffffffffffffffffffffffffff85163b6145c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161091a565b5081612f20565b612f208383815115613caa5781518083602001fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611f8a57600080fd5b6000806040838503121561461957600080fd5b8235614624816145e4565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611f8a57600080fd5b60006020828403121561467257600080fd5b81356111be81614632565b60005b83811015614698578181015183820152602001614680565b50506000910152565b600081518084526146b981602086016020860161467d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006111be60208301846146a1565b60006020828403121561471057600080fd5b5035919050565b60008083601f84011261472957600080fd5b50813567ffffffffffffffff81111561474157600080fd5b60208301915083602082850101111561475957600080fd5b9250929050565b60008060008060008060006080888a03121561477b57600080fd5b873567ffffffffffffffff8082111561479357600080fd5b61479f8b838c01614717565b909950975060208a01359150808211156147b857600080fd5b6147c48b838c01614717565b909750955060408a01359150808211156147dd57600080fd5b506147ea8a828b01614717565b989b979a50959894979596606090950135949350505050565b60008060006060848603121561481857600080fd5b8335614823816145e4565b92506020840135614833816145e4565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff821117156148b7576148b7614844565b6040525050565b600067ffffffffffffffff8211156148d8576148d8614844565b5060051b60200190565b600082601f8301126148f357600080fd5b81356020614900826148be565b60405161490d8282614873565b83815260059390931b850182019282810191508684111561492d57600080fd5b8286015b848110156149485780358352918301918301614931565b509695505050505050565b600067ffffffffffffffff83111561496d5761496d614844565b6040516149a260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8701160182614873565b8091508381528484840111156149b757600080fd5b83836020830137600060208583010152509392505050565b600082601f8301126149e057600080fd5b6111be83833560208501614953565b600080600080600060a08688031215614a0757600080fd5b8535614a12816145e4565b94506020860135614a22816145e4565b9350604086013567ffffffffffffffff80821115614a3f57600080fd5b614a4b89838a016148e2565b94506060880135915080821115614a6157600080fd5b614a6d89838a016148e2565b93506080880135915080821115614a8357600080fd5b50614a90888289016149cf565b9150509295509295909350565b600080600080600080600080600060c08a8c031215614abb57600080fd5b893567ffffffffffffffff80821115614ad357600080fd5b614adf8d838e01614717565b909b50995060208c0135915080821115614af857600080fd5b614b048d838e01614717565b909950975060408c0135915080821115614b1d57600080fd5b50614b2a8c828d01614717565b90965094505060608a0135925060808a0135614b45816145e4565b8092505060a08a013590509295985092959850929598565b60008060408385031215614b7057600080fd5b823567ffffffffffffffff80821115614b8857600080fd5b818501915085601f830112614b9c57600080fd5b81356020614ba9826148be565b604051614bb68282614873565b83815260059390931b8501820192828101915089841115614bd657600080fd5b948201945b83861015614bfd578535614bee816145e4565b82529482019490820190614bdb565b96505086013592505080821115614c1357600080fd5b50614c20858286016148e2565b9150509250929050565b600081518084526020808501945080840160005b83811015614c5a57815187529582019590820190600101614c3e565b509495945050505050565b6020815260006111be6020830184614c2a565b60008083601f840112614c8a57600080fd5b50813567ffffffffffffffff811115614ca257600080fd5b6020830191508360208260051b850101111561475957600080fd5b600080600060408486031215614cd257600080fd5b8335614cdd816145e4565b9250602084013567ffffffffffffffff811115614cf957600080fd5b614d0586828701614c78565b9497909650939450505050565b600060208284031215614d2457600080fd5b813567ffffffffffffffff811115614d3b57600080fd5b8201601f81018413614d4c57600080fd5b612f2084823560208401614953565b6000808284036060811215614d6f57600080fd5b8335614d7a816145e4565b925060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215614dac57600080fd5b506040516040810181811067ffffffffffffffff82111715614dd057614dd0614844565b60409081526020858101358352940135938101939093525092909150565b600060208284031215614e0057600080fd5b81356111be816145e4565b8015158114611f8a57600080fd5b60008060408385031215614e2c57600080fd5b8235614e37816145e4565b91506020830135614e4781614e0b565b809150509250929050565b60008060208385031215614e6557600080fd5b823567ffffffffffffffff811115614e7c57600080fd5b614e8885828601614c78565b90969095509350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614f07577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614ef58583516146a1565b94509285019290850190600101614ebb565b5092979650505050505050565b600080600080600060608688031215614f2c57600080fd5b8535614f37816145e4565b9450602086013567ffffffffffffffff80821115614f5457600080fd5b614f6089838a01614c78565b90965094506040880135915080821115614f7957600080fd5b50614f8688828901614c78565b969995985093965092949392505050565b60008060408385031215614faa57600080fd5b8235614fb5816145e4565b9150602083013567ffffffffffffffff811115614fd157600080fd5b830160608186031215614e4757600080fd5b600080600080600080600060e0888a031215614ffe57600080fd5b8735615009816145e4565b96506020880135615019816145e4565b95506040880135945060608801359350608088013560ff8116811461503d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561506d57600080fd5b8235615078816145e4565b91506020830135614e47816145e4565b600080600080600080608087890312156150a157600080fd5b86356150ac816145e4565b955060208701359450604087013567ffffffffffffffff808211156150d057600080fd5b6150dc8a838b01614c78565b909650945060608901359150808211156150f557600080fd5b5061510289828a01614c78565b979a9699509497509295939492505050565b600080600080600060a0868803121561512c57600080fd5b8535615137816145e4565b94506020860135615147816145e4565b93506040860135925060608601359150608086013567ffffffffffffffff81111561517157600080fd5b614a90888289016149cf565b600181811c9082168061519157607f821691505b602082108103612e8f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600083516151dc81846020880161467d565b8351908301906151f081836020880161467d565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000009101908152600501949350505050565b5b8181101561120a5760008155600101615222565b601f8211156130f257806000526020600020601f840160051c8101602085101561525d5750805b610c83601f850160051c830182615221565b67ffffffffffffffff83111561528757615287614844565b61529b83615295835461517d565b83615236565b6000601f8411600181146152ed57600085156152b75750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610c83565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561533c578685013582556020948501946001909201910161531c565b5086821015615377577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561067957610679615389565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361542b5761542b615389565b5060010190565b6020808252606082820152825460808301819052600084815282812090929160a0850190845b8181101561547457835483526001938401939285019201615458565b5050600186015460408601526002860154606086015280935050505092915050565b808202811582820484141761067957610679615389565b81357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18336030181126154df57600080fd5b8201803567ffffffffffffffff8111156154f857600080fd5b602080830192508160051b360383131561551157600080fd5b6801000000000000000082111561552a5761552a614844565b83548285558083101561554f57846000528160002061554d828201858301615221565b505b50836000528060002060005b83811015615575578435828201559382019360010161555b565b505084013560018401555050604090910135600290910155565b6000602082840312156155a157600080fd5b81516111be816145e4565b6000826155e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8181038181111561067957610679615389565b60006020828403121561560c57600080fd5b81516111be81614e0b565b60408152600061562a6040830185614c2a565b828103602084015261563c8185614c2a565b95945050505050565b815167ffffffffffffffff81111561565f5761565f614844565b6156738161566d845461517d565b84615236565b602080601f8311600181146156c657600084156156905750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611a3f565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015615713578886015182559484019460019091019084016156f4565b508582101561574f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600081518084526020808501945080840160005b83811015614c5a57815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016157a2565b600073ffffffffffffffffffffffffffffffffffffffff80851683526040602084015280845116604084015280602085015116606084015280604085015116608084015250606083015160058110615855577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60a0830152608083015160c080840152615873610100840182614c2a565b905060a08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160e08501526158ae828261578e565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526158f160a0830186614c2a565b82810360608401526159038186614c2a565b9050828103608084015261150a81856146a1565b60006020828403121561592957600080fd5b81516111be81614632565b600060033d111561594d5760046000803e5060005160e01c5b90565b600060443d101561595e5790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff81602484011181841117156159ac57505050505090565b82850191508151818111156159c45750505050505090565b843d87010160208285010111156159de5750505050505090565b6159ed60208286010187614873565b509095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a0608083015261452e60a08301846146a1565b60008251615a4f81846020870161467d565b919091019291505056fea26469706673582212208277b5dcdf2eb9091179034fe32abc97447e9f085ef97bc20f221f74712b03e364736f6c634300081100330000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000b8c204e858aa420eb5a57599da86ffd6375da6a8", + "nonce": "0x22", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x9d7c0cef68dfca93be64ac8d47eeeac1e5e22345926824c80443d65c3a277931", + "transactionType": "CREATE", + "contractName": "SmartVaultBeneficiaryFactoryHpf", + "contractAddress": "0x34e51Cc3Db85F2B8bB1E2E31a9131cb9737228a9", + "function": null, + "arguments": [ + "0x360f49dD5626dC3381299377432Ce2389Aed3F76", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x4c6ee6eD4127a0067B9eb3b425DfCea95ac80cAe", + "0xB8c204e858AA420eb5a57599dA86fFD6375da6a8", + "0x23Daf34e2b9Af02A74dC19cB52Af727B19403874", + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0xC30018cbee9C8141F620e950CC9637c7A2eF2c9e", + "0x98411E6D808208D3c349D766194492B376af7e49", + "550" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0x3675f7", + "value": "0x0", + "data": "0x6101806040523480156200001257600080fd5b506040516200346938038062003469833981016040819052620000359162000329565b888888888888888587620000493362000202565b620000548162000252565b506001600160a01b0381166200007d5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528616620000ab5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038516620000d35760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038416620000fb5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038316620001235760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0382166200014b5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038116620001735760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0394851660a05292841660c05290831660e05282166101005281166101205284169150620001bd90505760405163bb0e4c3560e01b815260040160405180910390fd5b612710811115620001e157604051630d0646af60e21b815260040160405180910390fd5b6001600160a01b03909116610140526101605250620003f495505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000268816200030160201b6200065a1760201c565b620002df5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03163b151590565b6001600160a01b03811681146200032657600080fd5b50565b60008060008060008060008060006101208a8c0312156200034957600080fd5b8951620003568162000310565b60208b0151909950620003698162000310565b60408b01519098506200037c8162000310565b60608b01519097506200038f8162000310565b60808b0151909650620003a28162000310565b60a08b0151909550620003b58162000310565b60c08b0151909450620003c88162000310565b60e08b0151909350620003db8162000310565b809250506101008a015190509295985092959850929598565b60805160a05160c05160e05161010051610120516101405161016051612fd8620004916000396000818160d80152610a5301526000818161012c0152610a32015260008181610e2601528181610efb01528181610fd401526110ae015260006113440152600061115001526000610c7b01526000610bc601526000818161083201528181610b5301528181610da101526116610152612fd86000f3fe60806040523480156200001157600080fd5b5060043610620000cd5760003560e01c8063715018a6116200007f578063cced1c511162000062578063cced1c5114620001d3578063cd7b1c7a14620001ea578063f2fde38b146200020157600080fd5b8063715018a614620001aa5780638da5cb5b14620001b457600080fd5b806338af3eed11620000b457806338af3eed14620001265780635c60da1b14620001745780636fc3f5d5146200019357600080fd5b8063246feb9a14620000d25780633659cfe6146200010d575b600080fd5b620000fa7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b620001246200011e36600462001bf4565b62000218565b005b6200014e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200162000104565b60015473ffffffffffffffffffffffffffffffffffffffff166200014e565b6200014e620001a436600462001c35565b62000271565b620001246200034c565b60005473ffffffffffffffffffffffffffffffffffffffff166200014e565b6200014e620001e436600462001c76565b62000364565b6200014e620001fb36600462001c76565b620004b8565b620001246200021236600462001bf4565b62000599565b6200022262000676565b6200022d81620006f9565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60007fc9158e2d34f9a0db34fef00fedbaed1bda4297aec3cdbfaa7e9c5163546fc86d33620002a18282620007e6565b620002ac84620008fb565b600030620002ba86620009ff565b604051620002c89062001bc3565b620002d592919062001ce5565b604051809103906000f080158015620002f2573d6000803e3d6000fd5b50905062000301818662000b08565b604051339073ffffffffffffffffffffffffffffffffffffffff8316907f4b6fc311ac818259806f64049ebe6924e21a6b8e08a6b97fbf10baf7dd6f534d90600090a3949350505050565b6200035662000676565b6200036260006200129d565b565b600060ff60f81b3083604051806020016200037f9062001bc3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660405230620003bc88620009ff565b604051602001620003cf92919062001ce5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526200040d929160200162001d55565b604051602081830303815290604052805190602001206040516020016200049694939291907fff0000000000000000000000000000000000000000000000000000000000000094909416845260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660018401526015830152603582015260550190565b6040516020818303038152906040528051906020012060001c90505b92915050565b60007fc9158e2d34f9a0db34fef00fedbaed1bda4297aec3cdbfaa7e9c5163546fc86d33620004e88282620007e6565b620004f385620008fb565b600084306200050288620009ff565b604051620005109062001bc3565b6200051d92919062001ce5565b8190604051809103906000f59050801580156200053e573d6000803e3d6000fd5b5090506200054d818762000b08565b604051339073ffffffffffffffffffffffffffffffffffffffff8316907f4b6fc311ac818259806f64049ebe6924e21a6b8e08a6b97fbf10baf7dd6f534d90600090a395945050505050565b620005a362000676565b73ffffffffffffffffffffffffffffffffffffffff81166200064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b62000657816200129d565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60005473ffffffffffffffffffffffffffffffffffffffff16331462000362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000643565b73ffffffffffffffffffffffffffffffffffffffff81163b6200079f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840162000643565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa1580156200087a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008a0919062001d97565b620008f7576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8216602482015260440162000643565b5050565b6000620009116101c083016101a0840162001db7565b61ffff1611156200094e576040517fbeb9e61b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000620009646101e083016101c0840162001db7565b61ffff161115620009a1576040517f0ace370300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612328620009b861020083016101e0840162001db7565b61ffff1614620009f4576040517f603afbfc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620006578162001312565b606062000a0d828062001ddd565b62000a1c602085018562001ddd565b62000a2b604087018762001ddd565b87606001357f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160240162000a8c9998979695949392919062001e95565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f46d7a02f0000000000000000000000000000000000000000000000000000000017905292915050565b6040517f21536a0c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301523360248301527f000000000000000000000000000000000000000000000000000000000000000016906321536a0c90604401600060405180830381600087803b15801562000b9857600080fd5b505af115801562000bad573d6000803e3d6000fd5b505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169150637197028a90508362000c0061012085018562001f0f565b62000c1061014087018762001f0f565b6040518663ffffffff1660e01b815260040162000c3295949392919062001fc2565b600060405180830381600087803b15801562000c4d57600080fd5b505af115801562000c62573d6000803e3d6000fd5b505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169150633993059090508362000cb561016085018562001f0f565b62000cc561018087018762001f0f565b6040518663ffffffff1660e01b815260040162000ce7959493929190620021b7565b600060405180830381600087803b15801562000d0257600080fd5b505af115801562000d17573d6000803e3d6000fd5b5062000d309250505061022082016102008301620023ee565b1562000e00576040517f2f2ff15d0000000000000000000000000000000000000000000000000000000081527f8175070940abf2fdc44d0ca002a58b0ee7538d3bf19eb0576843c4b91dd91b45600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301527f00000000000000000000000000000000000000000000000000000000000000001690632f2ff15d90604401600060405180830381600087803b15801562000de657600080fd5b505af115801562000dfb573d6000803e3d6000fd5b505050505b60a081013560008190036200114e5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663d2d087148462000e5f610100860160e0870162001bf4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401600060405180830381600087803b15801562000ecd57600080fd5b505af115801562000ee2573d6000803e3d6000fd5b505073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016915063df63ec6e90508462000f3760e0860160c087016200240e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260000b6024820152604401600060405180830381600087803b15801562000fa657600080fd5b505af115801562000fbb573d6000803e3d6000fd5b505073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016915063ece20e7a905084620010126101208601610100870162001bf4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401600060405180830381600087803b1580156200108057600080fd5b505af115801562001095573d6000803e3d6000fd5b505073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016915063bb427f50905084620010e7608086018662001f0f565b6040518463ffffffff1660e01b8152600401620011079392919062002433565b602060405180830381865afa15801562001125573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200114b9190620024a0565b90505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663146c6743846040518060c0016040528086606001358152602001868060800190620011b2919062001f0f565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060208101869052604001620012046101c088016101a0890162001db7565b61ffff168152602001620012216101e088016101c0890162001db7565b61ffff1681526020016200123e61020088016101e0890162001db7565b61ffff168152506040518363ffffffff1660e01b815260040162001264929190620024ba565b600060405180830381600087803b1580156200127f57600080fd5b505af115801562001294573d6000803e3d6000fd5b50505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040517fe065ce6e000000000000000000000000000000000000000000000000000000008152606082013560048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e065ce6e9060240160006040518083038186803b1580156200139c57600080fd5b505afa158015620013b1573d6000803e3d6000fd5b50620013c592505050608082018262001f0f565b905060000362001401576040517f951be16300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601062001412608083018362001f0f565b905011156200144d576040517fae9c5c5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a08101351515600062001465608084018462001f0f565b9050600114801562001475575081155b15620014ad576040517f1d725b9000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115620015c8576000620014c9610100850160e0860162001bf4565b73ffffffffffffffffffffffffffffffffffffffff161462001517576040517f1329ae2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200152960e0840160c085016200240e565b60000b1562001564576040517f522573b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006200157a6101208501610100860162001bf4565b73ffffffffffffffffffffffffffffffffffffffff1614620015c8576040517fccdac46f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b620015da608085018562001f0f565b9050811015620019ee5782156200164a57620015fb60a08501358262001b8a565b60000362001635576040517fa397f01900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200164560a08501358262001b8a565b820191505b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166391d148547f49e347583a7b9e7f325e8963ee1f94127eba81e401796874b5a22f7c8f9d45f7620016b6608088018862001f0f565b85818110620016c957620016c962002574565b9050602002016020810190620016e0919062001bf4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff166024820152604401602060405180830381865afa15801562001750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001776919062001d97565b62001800576200178a608085018562001f0f565b828181106200179d576200179d62002574565b9050602002016020810190620017b4919062001bf4565b6040517feb894b3400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240162000643565b606084013562001814608086018662001f0f565b8381811062001827576200182762002574565b90506020020160208101906200183e919062001bf4565b73ffffffffffffffffffffffffffffffffffffffff166384ba89e36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001889573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018af9190620024a0565b14620018e7576040517f061e1ba600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181015b620018fb608086018662001f0f565b9050811015620019e45762001914608086018662001f0f565b8281811062001927576200192762002574565b90506020020160208101906200193e919062001bf4565b73ffffffffffffffffffffffffffffffffffffffff1662001963608087018762001f0f565b8481811062001976576200197662002574565b90506020020160208101906200198d919062001bf4565b73ffffffffffffffffffffffffffffffffffffffff1603620019db576040517fe5ce36e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600101620018ec565b50600101620015cb565b50818015620019ff57506127108114155b1562001a37576040517f18e200ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506101f4905062001a516101c083016101a0840162001db7565b61ffff16111562001aaa5762001a706101c082016101a0830162001db7565b6040517fab5e658400000000000000000000000000000000000000000000000000000000815261ffff909116600482015260240162000643565b6101f462001ac16101e083016101c0840162001db7565b61ffff16111562001b1a5762001ae06101e082016101c0830162001db7565b6040517f37291fce00000000000000000000000000000000000000000000000000000000815261ffff909116600482015260240162000643565b61232862001b3161020083016101e0840162001db7565b61ffff161115620006575762001b5061020082016101e0830162001db7565b6040517faf603d4500000000000000000000000000000000000000000000000000000000815261ffff909116600482015260240162000643565b60006010821062001b9a57600080fd5b62001baa600162010000620025d2565b62001bb7836010620025e8565b84901c16905092915050565b6109a0806200260383390190565b73ffffffffffffffffffffffffffffffffffffffff811681146200065757600080fd5b60006020828403121562001c0757600080fd5b813562001c148162001bd1565b9392505050565b6000610220828403121562001c2f57600080fd5b50919050565b60006020828403121562001c4857600080fd5b813567ffffffffffffffff81111562001c6057600080fd5b62001c6e8482850162001c1b565b949350505050565b6000806040838503121562001c8a57600080fd5b823567ffffffffffffffff81111562001ca257600080fd5b62001cb08582860162001c1b565b95602094909401359450505050565b60005b8381101562001cdc57818101518382015260200162001cc2565b50506000910152565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000825180604084015262001d2281606085016020870162001cbf565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b6000835162001d6981846020880162001cbf565b83519083019062001d7f81836020880162001cbf565b01949350505050565b80151581146200065757600080fd5b60006020828403121562001daa57600080fd5b815162001c148162001d88565b60006020828403121562001dca57600080fd5b813561ffff8116811462001c1457600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811262001e1357600080fd5b83018035915067ffffffffffffffff82111562001e2f57600080fd5b60200191503681900382131562001e4557600080fd5b9250929050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60c08152600062001eab60c083018b8d62001e4c565b828103602084015262001ec0818a8c62001e4c565b9050828103604084015262001ed781888a62001e4c565b6060840196909652505073ffffffffffffffffffffffffffffffffffffffff92909216608083015260a0909101529695505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811262001f4557600080fd5b83018035915067ffffffffffffffff82111562001f6157600080fd5b6020019150600581901b360382131562001e4557600080fd5b818352600060208085019450826000805b8681101562001fb65782356005811062001fa3578283fd5b8852968301969183019160010162001f8b565b50959695505050505050565b73ffffffffffffffffffffffffffffffffffffffff868116825260606020808401829052908301869052600091879160808501845b89811015620020225784356200200d8162001bd1565b84168252938201939082019060010162001ff7565b5085810360408701526200203881888a62001f7a565b9b9a5050505050505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126200207d57600080fd5b830160208101925035905067ffffffffffffffff8111156200209e57600080fd5b80360382131562001e4557600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112620020e457600080fd5b830160208101925035905067ffffffffffffffff8111156200210557600080fd5b8060051b360382131562001e4557600080fd5b818352600060208085019450826000805b8681101562001fb65782356009811062002141578283fd5b8852968301969183019160010162002129565b81835260006020808501808196508560051b810191508460005b87811015620021aa57828403895262002188828862002047565b6200219586828462001e4c565b9a87019a95505050908401906001016200216e565b5091979650505050505050565b60006060820173ffffffffffffffffffffffffffffffffffffffff808916845260206060818601528288845260808601905060808960051b87010193508960005b8a811015620023c8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8088870301835262002234828d620020ae565b808852858801600582901b890187018360005b84811015620023af577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08c840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41873603018112620022aa57600080fd5b860160c0620022ba828062002047565b828752620022cc838801828462001e4c565b925050508b820135620022df8162001bd1565b8d16858d01526040828101357fffff000000000000000000000000000000000000000000000000000000000000811681146200231a57600080fd5b7fffff000000000000000000000000000000000000000000000000000000000000169086015260608281013590860152620023596080830183620020ae565b86830360808801526200236e83828462002118565b9250505060a06200238281840184620020ae565b9350868303828801526200239883858362002154565b978e019796505050928b0192505060010162002247565b50909950505093850193505090830190600101620021f8565b50505050508281036040840152620023e281858762001f7a565b98975050505050505050565b6000602082840312156200240157600080fd5b813562001c148162001d88565b6000602082840312156200242157600080fd5b81358060000b811462001c1457600080fd5b73ffffffffffffffffffffffffffffffffffffffff848116825260406020808401829052908301849052600091859160608501845b87811015620024935784356200247e8162001bd1565b84168252938201939082019060010162002468565b5098975050505050505050565b600060208284031215620024b357600080fd5b5051919050565b600073ffffffffffffffffffffffffffffffffffffffff808516835260206040818501526101008401855160408601528186015160c06060870152818151808452610120880191508483019350600092505b8083101562002530578351861682529284019260019290920191908401906200250c565b5060408801516080880152606088015161ffff811660a08901529450608088015161ffff811660c0890152945060a088015161ffff811660e08901529450620023e2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115620004b257620004b2620025a3565b8082028115828204841417620004b257620004b2620025a356fe60806040526040516109a03803806109a08339810160408190526100229161045b565b61002e82826000610035565b5050610585565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e9919061051b565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d7919061051b565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c88383604051806060016040528060278152602001610979602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe9190610536565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c95782516000036103c2576001600160a01b0385163b6103c25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d3565b6103d383836103db565b949350505050565b8151156103eb5781518083602001fd5b8060405162461bcd60e51b81526004016101699190610552565b80516001600160a01b038116811461041c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561045257818101518382015260200161043a565b50506000910152565b6000806040838503121561046e57600080fd5b61047783610405565b60208401519092506001600160401b038082111561049457600080fd5b818501915085601f8301126104a857600080fd5b8151818111156104ba576104ba610421565b604051601f8201601f19908116603f011681019083821181831017156104e2576104e2610421565b816040528281528860208487010111156104fb57600080fd5b61050c836020830160208801610437565b80955050505050509250929050565b60006020828403121561052d57600080fd5b6102c882610405565b60008251610548818460208701610437565b9190910192915050565b6020815260008251806020840152610571816040850160208701610437565b601f01601f19169190910160400192915050565b6103e5806105946000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b610127565b565b606061004e83836040518060600160405280602781526020016103896027913961014b565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d505473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906102c1565b905090565b3660008037600080366000845af43d6000803e808015610146573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051610175919061031b565b600060405180830381855af49150503d80600081146101b0576040519150601f19603f3d011682016040523d82523d6000602084013e6101b5565b606091505b50915091506101c6868383876101d0565b9695505050505050565b6060831561026b5782516000036102645773ffffffffffffffffffffffffffffffffffffffff85163b610264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610275565b610275838361027d565b949350505050565b81511561028d5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b9190610337565b6000602082840312156102d357600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461004e57600080fd5b60005b838110156103125781810151838201526020016102fa565b50506000910152565b6000825161032d8184602087016102f7565b9190910192915050565b60208152600082518060208401526103568160408501602087016102f7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ef376dc455284eb0c7e53dd586ef485226dce3ffff78c1f23e39caa2d7f31eb864736f6c63430008110033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220794b85074bd8dee5c9ed2376f6d0c5b0eaaf5e3429a72800ce1a29b0d19da40264736f6c63430008110033000000000000000000000000360f49dd5626dc3381299377432ce2389aed3f760000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd130000000000000000000000004c6ee6ed4127a0067b9eb3b425dfcea95ac80cae000000000000000000000000b8c204e858aa420eb5a57599da86ffd6375da6a800000000000000000000000023daf34e2b9af02a74dc19cb52af727b194038740000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a000000000000000000000000c30018cbee9c8141f620e950cc9637c7a2ef2c9e00000000000000000000000098411e6d808208d3c349d766194492b376af7e490000000000000000000000000000000000000000000000000000000000000226", + "nonce": "0x23", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xfd506319ee64d37234ae7a22d96224149a7cc4f3d4b7b2d3606d83f120e6d58f", + "transactionType": "CALL", + "contractName": "SmartVaultBeneficiaryFactoryHpf", + "contractAddress": "0x34e51Cc3Db85F2B8bB1E2E31a9131cb9737228a9", + "function": "transferOwnership(address)", + "arguments": [ + "0x4e736b96920a0f305022CBaAea493Ce7e49Eee6C" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0x34e51cc3db85f2b8bb1e2e31a9131cb9737228a9", + "gas": "0xa32b", + "value": "0x0", + "data": "0xf2fde38b0000000000000000000000004e736b96920a0f305022cbaaea493ce7e49eee6c", + "nonce": "0x24", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xb8bca6a813f859cc79f62410aa3799e1ccc65000daa85fcbfe9b6ee380f64f4c", + "transactionIndex": "0x2b", + "blockHash": "0xd05f4f07d831a7684b6dfde0a5341d7501ac88d1c107129d59130780a5c3a877", + "blockNumber": "0x133f419", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x8b6c48", + "gasUsed": "0x4d25bd", + "contractAddress": "0x360f49dD5626dC3381299377432Ce2389Aed3F76", + "logs": [ + { + "address": "0x360f49dD5626dC3381299377432Ce2389Aed3F76", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xd05f4f07d831a7684b6dfde0a5341d7501ac88d1c107129d59130780a5c3a877", + "blockNumber": "0x133f419", + "transactionHash": "0xb8bca6a813f859cc79f62410aa3799e1ccc65000daa85fcbfe9b6ee380f64f4c", + "transactionIndex": "0x2b", + "logIndex": "0x89", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1ae7277cc" + }, + { + "transactionHash": "0x9d7c0cef68dfca93be64ac8d47eeeac1e5e22345926824c80443d65c3a277931", + "transactionIndex": "0x2f", + "blockHash": "0x32268f0b77c504d65fae3709360f1827aedfaeb1baa66723d2ae6398a38aa22c", + "blockNumber": "0x133f41a", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x748ba5", + "gasUsed": "0x29e497", + "contractAddress": "0x34e51Cc3Db85F2B8bB1E2E31a9131cb9737228a9", + "logs": [ + { + "address": "0x34e51Cc3Db85F2B8bB1E2E31a9131cb9737228a9", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000edee7b1c9a240c4085a5fcac8f4fa750e3779695" + ], + "data": "0x", + "blockHash": "0x32268f0b77c504d65fae3709360f1827aedfaeb1baa66723d2ae6398a38aa22c", + "blockNumber": "0x133f41a", + "transactionHash": "0x9d7c0cef68dfca93be64ac8d47eeeac1e5e22345926824c80443d65c3a277931", + "transactionIndex": "0x2f", + "logIndex": "0x88", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000004000000000000020000000000000010000000001000000000200000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000020000000000000000000000000000000000000000000002000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1b34d8ed9" + }, + { + "transactionHash": "0xfd506319ee64d37234ae7a22d96224149a7cc4f3d4b7b2d3606d83f120e6d58f", + "transactionIndex": "0x3c", + "blockHash": "0x7f070ae80665fb94f82665b084d98cfa3f6492ab72dd7952130a546481c96a8d", + "blockNumber": "0x133f41b", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0x34e51Cc3Db85F2B8bB1E2E31a9131cb9737228a9", + "cumulativeGasUsed": "0x7d1541", + "gasUsed": "0x6f92", + "contractAddress": null, + "logs": [ + { + "address": "0x34e51Cc3Db85F2B8bB1E2E31a9131cb9737228a9", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000edee7b1c9a240c4085a5fcac8f4fa750e3779695", + "0x0000000000000000000000004e736b96920a0f305022cbaaea493ce7e49eee6c" + ], + "data": "0x", + "blockHash": "0x7f070ae80665fb94f82665b084d98cfa3f6492ab72dd7952130a546481c96a8d", + "blockNumber": "0x133f41b", + "transactionHash": "0xfd506319ee64d37234ae7a22d96224149a7cc4f3d4b7b2d3606d83f120e6d58f", + "transactionIndex": "0x3c", + "logIndex": "0x103", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000040000000000000000000004001000000000020000000000000010000000001000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1b599ae4f" + } + ], + "libraries": [ + "script/helper/ArraysHelper.sol:ArraysHelper:0x7dF191D01252D2C0BABf77c725c63D69fe6EAA1a", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0", + "src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1", + "src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89", + "src/strategies/libraries/EthFrxEthAssetGroupAdapter.sol:EthFrxEthAssetGroupAdapter:0xE23681bAA697EF5054E2D8C397ae59145027625D", + "src/strategies/libraries/EthStEthAssetGroupAdapter.sol:EthStEthAssetGroupAdapter:0x1516eb3a54377168b6b184326200f4258C3529dF" + ], + "pending": [], + "returns": {}, + "timestamp": 1719479501, + "chain": 1, + "multi": false, + "commit": "9cab648" +} \ No newline at end of file diff --git a/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718362462.json b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718362462.json new file mode 100644 index 00000000..2017bebb --- /dev/null +++ b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718362462.json @@ -0,0 +1,62 @@ +{ + "transactions": [ + { + "hash": "0x1a4a2a751c9ca3de8f692ef684ffba059ab2ef1b6a9d9ce62d3fb93cb24195dc", + "transactionType": "CREATE", + "contractName": "ConvexAlusdStrategy", + "contractAddress": "0x7158c40A536dA9E23d8D0A226698A788621adA8A", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "5", + "0x33E52c206d584550193E642C8982f2Fff6339994", + "0xF403C135812408BFbE8713b5A23a04b3D48AAE31", + "1" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x6a5f19", + "value": "0x0", + "data": "0x6101406040523480156200001257600080fd5b506040516200621c3803806200621c8339810160408190526200003591620000db565b80868686816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c05250600f9190910b60e052928316610100525016610120525062000169915050565b6001600160a01b0381168114620000d857600080fd5b50565b60008060008060008060c08789031215620000f557600080fd5b86516200010281620000c2565b60208801519096506200011581620000c2565b6040880151606089015191965094506200012f81620000c2565b60808801519093506200014281620000c2565b8092505060a087015180600f0b81146200015b57600080fd5b809150509295509295509295565b60805160a05160c05160e0516101005161012051615ff3620002296000396000818161049701528181610a8b01528181610b9f01528181614433015261448e015260008181612f65015261330e0152600081816147d20152614876015260008181610de601528181610e1401526129e301526000818161089a01528181610cfc01528181611e6d01528181612a4f01528181612c9401528181612fcf0152613c050152600081816123ae01528181612464015261252e0152615ff36000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80638bbcc0e711610130578063c1a0ff4c116100b8578063e173ad251161007c578063e173ad25146104df578063ebbd6bc7146104e7578063f025aaed146104fa578063f106845414610502578063fc195d8c1461053457600080fd5b8063c1a0ff4c14610477578063c1a7d80e1461047f578063c6def07614610492578063c8d31e74146104b9578063dd62ed3e146104cc57600080fd5b8063a3ea6c97116100ff578063a3ea6c9714610416578063a457c2d714610429578063a63e8c4b1461043c578063a9059cbb14610444578063beef8a711461045757600080fd5b80638bbcc0e7146103c457806395d89b41146103e45780639b6aaa47146103ec578063a00783471461040257600080fd5b8063313ce567116101b35780636cc14600116101825780636cc146001461034b57806370a082311461035e57806371a97305146103875780637817bf4a1461039c57806384ba89e3146103bc57600080fd5b8063313ce56714610303578063395093511461031257806344c8aec2146103255780636c60d9e71461033857600080fd5b806316f0115b116101fa57806316f0115b1461029557806318160ddd146102ba57806323b872dd146102cc57806324fcf7b8146102df5780632ce5183f146102f057600080fd5b806301a262ed1461022c57806306fdde0314610241578063095ea7b31461025f5780631480fce314610282575b600080fd5b61023f61023a366004614e51565b610547565b005b610249610562565b6040516102569190614ebc565b60405180910390f35b61027261026d366004614eef565b6105f4565b6040519015158152602001610256565b61023f610290366004614f66565b61060e565b609a546001600160a01b03165b6040516001600160a01b039091168152602001610256565b6035545b604051908152602001610256565b6102726102da366004614fb1565b61070a565b609d546001600160a01b03166102a2565b61023f6102fe366004614eef565b610730565b60405160128152602001610256565b610272610320366004614eef565b610755565b61023f610333366004615068565b610777565b61023f61034636600461517b565b610ca4565b61023f610359366004614e51565b610ce2565b6102be61036c3660046151d1565b6001600160a01b031660009081526033602052604090205490565b61038f610cf8565b6040516102569190615232565b6103af6103aa366004615245565b610d99565b6040516102569190615300565b6102be610de1565b6096546103d190600f0b81565b604051600f9190910b8152602001610256565b610249610e36565b6103f4610e45565b604051610256929190615313565b6096546103d190600160801b9004600f0b81565b6102be610424366004615341565b610e63565b610272610437366004614eef565b6111df565b6103af611265565b610272610452366004614eef565b6112f0565b61046a61046536600461541b565b6112fe565b6040516102569190615456565b6103af611e67565b61023f61048d366004615534565b611f16565b6102a27f000000000000000000000000000000000000000000000000000000000000000081565b6102be6104c736600461558f565b6122f2565b6102be6104da3660046155e0565b612323565b61024961234e565b61023f6104f5366004614eef565b61235d565b609c546102be565b60a15461051c90600160a01b90046001600160601b031681565b6040516001600160601b039091168152602001610256565b6103af610542366004615245565b612382565b6000336105548282612508565b61055d836125cc565b505050565b6060603680546105719061560e565b80601f016020809104026020016040519081016040528092919081815260200182805461059d9061560e565b80156105ea5780601f106105bf576101008083540402835291602001916105ea565b820191906000526020600020905b8154815290600101906020018083116105cd57829003601f168201915b5050505050905090565b60003361060281858561262a565b60019150505b92915050565b3261064b576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b600060028383600081811061066257610662615642565b905060200201351015610690578282600981811061068257610682615642565b9050602002013590506106dd565b828260008181106106a3576106a3615642565b905060200201356002036106c4578282600181811061068257610682615642565b604051635083353d60e01b815260040160405180910390fd5b6106e7818561274e565b61070457604051635083353d60e01b815260040160405180910390fd5b50505050565b600033610718858285612779565b6107238585856127ed565b60019150505b9392505050565b600080516020615f9e8339815191523361074a8282612508565b6107043085856127ed565b6000336106028185856107688383612323565b610772919061566e565b61262a565b600054610100900460ff16158080156107975750600054600160ff909116105b806107b15750303b1580156107b1575060005460ff166001145b6108195760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561083c576000805461ff0019166101001790555b6108478a6000612998565b61085089612b33565b61085988612b33565b61086286612b33565b609a80546001600160a01b03808c166001600160a01b031992831617909255609b80548b84169216919091179055609c8890556000907f00000000000000000000000000000000000000000000000000000000000000001663dd0fe31a6108c7610de1565b6040518263ffffffff1660e01b81526004016108e591815260200190565b600060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092a9190810190615681565b905060038151146109595761093d610de1565b604051634b1f57ad60e01b815260040161081091815260200190565b60005b81518110156109af5761096e81612b5d565b6001600160a01b031682828151811061098957610989615642565b60200260200101516001600160a01b0316146109a75761093d610de1565b60010161095c565b508051609955609d80546001600160a01b0319166001600160a01b0389169081179091556040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a32919061570f565b610a3d90600a615816565b609e5560a180546001600160601b038816600160a01b81026001600160a01b039283161790925560a2805488151560ff19909116179055604051631526fe2760e01b815260048101929092527f00000000000000000000000000000000000000000000000000000000000000001690631526fe279060240160c060405180830381865afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190615825565b60600151609f80546001600160a01b0319166001600160a01b0390921691821790556040805163f7c618c160e01b8152905163f7c618c1916004808201926020929091908290030181865afa158015610b53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7791906158cf565b60a060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1f91906158cf565b60a180546001600160a01b0319166001600160a01b0392909216919091179055610c4884612bf1565b610c51836125cc565b508015610c98576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610cd08282612508565b610cdb858585612c41565b5050505050565b600033610cef8282612508565b61055d83612bf1565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a610d31610de1565b6040518263ffffffff1660e01b8152600401610d4f91815260200190565b600060405180830381865afa158015610d6c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d949190810190615681565b905090565b6060610dc57fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612508565b610dd487878888888888612dff565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610e11575060985490565b507f000000000000000000000000000000000000000000000000000000000000000090565b6060603780546105719061560e565b6060803215610e5357600080fd5b610e5b612e6e565b915091509091565b6000600080516020615f9e83398151915233610e7f8282612508565b60008b6001600160401b03811115610e9957610e99614ff2565b604051908082528060200260200182016040528015610ec2578160200160208202803683370190505b50905060005b8c811015610f8e578d8d82818110610ee257610ee2615642565b9050602002016020810190610ef791906151d1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6191906158ec565b828281518110610f7357610f73615642565b6020908102919091010152610f8781615905565b9050610ec8565b50610fc88d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c6001600160401b03811115610fe257610fe2614ff2565b60405190808252806020026020018201604052801561100b578160200160208202803683370190505b50905060005b8d8110156110d7578e8e8281811061102b5761102b615642565b905060200201602081019061104091906151d1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110aa91906158ec565b8282815181106110bc576110bc615642565b60209081029190910101526110d081615905565b9050611011565b5060006111188d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612fca915050565b90506111278f8f848d8d6130ea565b60006111748e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612fca565b90506000611182838361318f565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc816111b0858561591e565b87876040516111c29493929190615931565b60405180910390a196505050505050509998505050505050505050565b600033816111ed8286612323565b90508381101561124d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610810565b61125a828686840361262a565b506001949350505050565b606060006099546001600160401b0381111561128357611283614ff2565b6040519080825280602002602001820160405280156112ac578160200160208202803683370190505b50905060005b6099548110156112ea576112c58161321d565b8282815181106112d7576112d7615642565b60209081029190910101526001016112b2565b50919050565b6000336106028185856127ed565b6113306040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b61135a7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612508565b60008061136a6060850185615962565b90506001600160401b0381111561138357611383614ff2565b6040519080825280602002602001820160405280156113ac578160200160208202803683370190505b50905060005b6113bf6060860186615962565b90508110156114b1576113d56060860186615962565b828181106113e5576113e5615642565b90506020020160208101906113fa91906151d1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611440573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146491906158ec565b82828151811061147657611476615642565b602002602001018181525050600082828151811061149657611496615642565b602002602001015111156114a957600192505b6001016113b2565b506114c38161048d6040870187615962565b6114d860a08501356102906040870187615962565b6114e0614dfe565b6114ee8561010001356132ab565b604085015260006115246115056060880188615962565b61151260208a018a615962565b61151f60408c018c615962565b6132ba565b905064e8d4a5100085604001518261153c91906159ab565b61154691906159f1565b6115509082615a1f565b856040018181516115619190615a1f565b905250506040840151611578906101208701613417565b506115d16115896080870187615962565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506115cc92505050610100880160e089016151d1565b612fca565b81526000808060a088013586156116fc5760006115f56101008b0160e08c016151d1565b6001600160a01b031663a2d2657f61161060608d018d615962565b8a8e80608001906116219190615962565b6040518663ffffffff1660e01b8152600401611641959493929190615a7d565b602060405180830381865afa15801561165e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168291906158ec565b905064e8d4a5100061169360355490565b10156116ac576116a5816103e8615ade565b93506116e6565b8551156116cd5785516035546116c3908390615ade565b6116a59190615af5565b60405163483ecd2f60e11b815260040160405180910390fd5b818410156116f6578394506116fa565b8194505b505b600061170b60608b018b615962565b90506001600160401b0381111561172457611724614ff2565b60405190808252806020026020018201604052801561174d578160200160208202803683370190505b509050600082851115611b7157851561180e5760005b61177060608d018d615962565b90508110156118085785878a838151811061178d5761178d615642565b602002602001015102816117a3576117a36159db565b048382815181106117b6576117b6615642565b6020026020010181815250508281815181106117d4576117d4615642565b60200260200101518982815181106117ee576117ee615642565b602090810291909101018051919091039052600101611763565b50600190505b600088516001600160401b0381111561182957611829614ff2565b604051908082528060200260200182016040528015611852578160200160208202803683370190505b50905060006118618d80615962565b90501115611a11576118ca61187960608e018e615962565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906107049190615962565b60005b6118da60608e018e615962565b9050811015611a0b578981815181106118f5576118f5615642565b602002602001015182828151811061190f5761190f615642565b60200260200101818152505083818151811061192d5761192d615642565b60200260200101518d80606001906119459190615962565b8381811061195557611955615642565b905060200201602081019061196a91906151d1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156119b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d491906158ec565b6119de919061591e565b8a82815181106119f0576119f0615642565b6020908102919091010152611a0481615905565b90506118cd565b50611a73565b60005b611a2160608e018e615962565b9050811015611a7157898181518110611a3c57611a3c615642565b6020026020010151828281518110611a5657611a56615642565b6020908102919091010152611a6a81615905565b9050611a14565b505b611a99611a8360608e018e615962565b8b8f8060400190611a949190615962565b6130ea565b611afc611aa960808e018e615962565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906115cc91906151d1565b602089018190528851611b0e9161318f565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611b459161591e565b838c604051611b579493929190615931565b60405180910390a1611b69878661566e565b945050611da2565b84831115611d33578515611b885785830392508593505b611bae611b9860608d018d615962565b858e8060400190611ba99190615962565b61357d565b611bb83084613653565b506001611c0e611bcb60808d018d615962565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506115cc925050506101008e0160e08f016151d1565b602088015260005b611c2360608d018d615962565b9050811015611ced57611c3960608d018d615962565b82818110611c4957611c49615642565b9050602002016020810190611c5e91906151d1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc891906158ec565b838281518110611cda57611cda615642565b6020908102919091010152600101611c16565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611d26918691908690615b09565b60405180910390a1611da2565b8515611d9a5782935060005b611d4c60608d018d615962565b9050811015611d9457888181518110611d6757611d67615642565b6020026020010151838281518110611d8157611d81615642565b6020908102919091010152600101611d3f565b50600190505b865160208801525b8015611e3d5760005b611db860608d018d615962565b9050811015611e3b57611e33611dd460e08e0160c08f016151d1565b848381518110611de657611de6615642565b60200260200101518e8060600190611dfe9190615962565b85818110611e0e57611e0e615642565b9050602002016020810190611e2391906151d1565b6001600160a01b03169190613787565b600101611dab565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a611ea2610de1565b6040518263ffffffff1660e01b8152600401611ec091815260200190565b600060405180830381865afa158015611edd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f059190810190615681565b9050611f10816137ea565b91505090565b326120f9576040805160088082526101208201909252600091602082016101008036833701905050905060005b60995481101561201957848181518110611f5f57611f5f615642565b6020026020010151828281518110611f7957611f79615642565b6020908102919091010152609a54604051634903b0d160e01b8152600481018390526001600160a01b0390911690634903b0d190602401602060405180830381865afa158015611fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff191906158ec565b82826003018151811061200657612006615642565b6020908102919091010152600101611f43565b5060005b60028110156120bb57609d54604051634903b0d160e01b8152600481018390526001600160a01b0390911690634903b0d190602401602060405180830381865afa15801561206f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209391906158ec565b8282600601815181106120a8576120a8615642565b602090810291909101015260010161201d565b507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b36816040516120eb9190615300565b60405180910390a150505050565b60028282600081811061210e5761210e615642565b9050602002013511156121345760405163464abfd960e01b815260040160405180910390fd5b60005b6099548110156121a45761217f83838360010181811061215957612159615642565b9050602002013585838151811061217257612172615642565b602002602001015161274e565b61219c5760405163464abfd960e01b815260040160405180910390fd5b600101612137565b5060005b600381101561226c576122478383836004018181106121c9576121c9615642565b609a54604051634903b0d160e01b8152600481018790526020929092029390930135926001600160a01b03169150634903b0d1906024015b602060405180830381865afa15801561221e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224291906158ec565b61274e565b6122645760405163464abfd960e01b815260040160405180910390fd5b6001016121a8565b5060005b6002811015610704576122cd83838360070181811061229157612291615642565b609d54604051634903b0d160e01b8152600481018790526020929092029390930135926001600160a01b03169150634903b0d190602401612201565b6122ea5760405163464abfd960e01b815260040160405180910390fd5b600101612270565b6000600080516020615f9e8339815191523361230e8282612508565b6123188585612fca565b92505b505092915050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6060609780546105719061560e565b600080516020615f9e833981519152336123778282612508565b6107048430856127ed565b604051632474521560e21b8152600080516020615f9e83398151915260048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124219190615b28565b1580156124d95750604051632474521560e21b81527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156124b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d79190615b28565b155b156124f957604051637ab612a360e01b8152336004820152602401610810565b610dd487308888888888612dff565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190615b28565b6125c8576040516301d4003760e61b8152600481018390526001600160a01b0382166024820152604401610810565b5050565b600081600f0b13806125ed57506125e764e8d4a51000615b45565b81600f0b125b1561260b5760405163c52a9bd360e01b815260040160405180910390fd5b609680546001600160801b03928316600160801b029216919091179055565b6001600160a01b03831661268c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610810565b6001600160a01b0382166126ed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610810565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061275f6001600160801b61591e565b83168210806127715750608083901c82115b159392505050565b60006127858484612323565b9050600019811461070457818110156127e05760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610810565b610704848484840361262a565b6001600160a01b0383166128515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610810565b6001600160a01b0382166128b35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610810565b6001600160a01b0383166000908152603360205260409020548181101561292b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610810565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061298b9086815260200190565b60405180910390a3610704565b600054610100900460ff166129bf5760405162461bcd60e51b815260040161081090615b61565b81516000036129e15760405163c52a9bd360e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000612a2e5780612a24576040516336307dff60e01b815260040160405180910390fd5b6098819055612a4d565b8015612a4d576040516336307dff60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e065ce6e612a84610de1565b6040518263ffffffff1660e01b8152600401612aa291815260200190565b60006040518083038186803b158015612aba57600080fd5b505afa158015612ace573d6000803e3d6000fd5b505050508160979081612ae19190615bf2565b506125c86040518060400160405280601481526020017329ba3930ba32b3bc9029b430b932902a37b5b2b760611b8152506040518060400160405280600381526020016214d4d560ea1b8152506139a6565b6001600160a01b038116612b5a5760405163bb0e4c3560e01b815260040160405180910390fd5b50565b6000612b71609a546001600160a01b031690565b6001600160a01b031663c6610657612b9284612b8c609c5490565b906139d7565b6040518263ffffffff1660e01b8152600401612bb091815260200190565b602060405180830381865afa158015612bcd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060891906158cf565b600081600f0b1215612c165760405163c52a9bd360e01b815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff19166001600160801b0392909216919091179055565b82826000818110612c5457612c54615642565b90506020020135600314612c7b576040516332eabb5b60e11b815260040160405180910390fd5b612c90612c8760355490565b84846001613a0b565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a612cc9610de1565b6040518263ffffffff1660e01b8152600401612ce791815260200190565b600060405180830381865afa158015612d04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d2c9190810190615681565b905060005b609954811015610cdb57612df783838381518110612d5157612d51615642565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc591906158ec565b848481518110612dd757612dd7615642565b60200260200101516001600160a01b03166137879092919063ffffffff16565b600101612d31565b60606000612e1086868b8787613e06565b9050612e1c888a613653565b60005b85811015612e5f57612e5788838381518110612e3d57612e3d615642565b6020026020010151898985818110611e0e57611e0e615642565b600101612e1f565b5090505b979650505050505050565b6060806000612e7b61401a565b9050600081516001600160401b03811115612e9857612e98614ff2565b604051908082528060200260200182016040528015612ec1578160200160208202803683370190505b50905060005b8251811015612fc0576000838281518110612ee457612ee4615642565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5891906158ec565b90508015612fb757612f977f000000000000000000000000000000000000000000000000000000000000000082868581518110612dd757612dd7615642565b80838381518110612faa57612faa615642565b6020026020010181815250505b50600101612ec7565b5090939092509050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a613004610de1565b6040518263ffffffff1660e01b815260040161302291815260200190565b600060405180830381865afa15801561303f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130679190810190615681565b9050826001600160a01b031663a2d2657f82613082846137ea565b876040518463ffffffff1660e01b81526004016130a193929190615cb1565b602060405180830381865afa1580156130be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e291906158ec565b949350505050565b6000828260008181106130ff576130ff615642565b9050602002013560000361312e578282600b81811061312057613120615642565b90506020020135905061317b565b8282600081811061314157613141615642565b90506020020135600203613162578282600981811061312057613120615642565b60405163f25b891360e01b815260040160405180910390fd5b613187868686846142a3565b505050505050565b60008061319b60355490565b905064e8d4a510008110156131e3576131b66103e884615ade565b915064e8d4a51000819003808310156131cc5750815b80830392506131dd61dead8261454f565b5061320c565b83156116cd5783816131f5828661591e565b6131ff9190615ade565b6132099190615af5565b91505b613216308361454f565b5092915050565b6000613231609a546001600160a01b031690565b6001600160a01b0316634903b0d161324c84612b8c609c5490565b6040518263ffffffff1660e01b815260040161326a91815260200190565b602060405180830381865afa158015613287573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060891906158ec565b60006132b682614610565b5090565b60008315610dd7576001838360008181106132d7576132d7615642565b9050602002013511156132fd5760405163982d791360e01b815260040160405180910390fd5b6000613307612e6e565b50905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166367c152628389898d8d306040518763ffffffff1660e01b815260040161336296959493929190615d13565b6000604051808303816000875af1158015613381573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133a99190810190615e36565b905060006133b5614669565b90506133dc8a8a848989600a8181106133d0576133d0615642565b905060200201356142a3565b80816133e6614669565b6133f0919061591e565b6133ff9064e8d4a51000615ade565b6134099190615af5565b9a9950505050505050505050565b6000808313156106085782600061343564e8d4a51000612710615ade565b6134456080860160608701615ebb565b6001600160601b031661345e6040870160208801615ebb565b613473906001600160601b031661271061591e565b61347d919061591e565b6134879084615ade565b613491919061566e565b905060008261349f60355490565b6134a99190615ade565b90506000826134be6040880160208901615ebb565b6134d1906001600160601b031684615ade565b6134db9190615af5565b90506134f36134ed60208801886151d1565b8261454f565b6000836135066080890160608a01615ebb565b613519906001600160601b031685615ade565b6135239190615af5565b90506135386134ed6060890160408a016151d1565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b60008282600081811061359257613592615642565b905060200201356001036135a85750600b613647565b828260008181106135bb576135bb615642565b905060200201356002036135d157506002613647565b828260008181106135e4576135e4615642565b905060200201356003036135fa57506001613647565b8282600081811061360d5761360d615642565b905060200201356000148015613621575032155b1561362e5750600b613647565b6040516332eabb5b60e11b815260040160405180910390fd5b61318784848484613a0b565b6001600160a01b0382166136b35760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610810565b6001600160a01b038216600090815260336020526040902054818110156137275760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610810565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b03831660248201526044810182905261055d90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526146d6565b609f546040516370a0823160e01b81523060048201526060916000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015613838573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385c91906158ec565b9050609e548161386d609e546147a8565b6138779190615ade565b6138819190615af5565b90506000609b60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138fc91906158ec565b9050600084516001600160401b0381111561391957613919614ff2565b604051908082528060200260200182016040528015613942578160200160208202803683370190505b50905060005b855181101561399d57828461395c8361321d565b6139669190615ade565b6139709190615af5565b82828151811061398257613982615642565b602090810291909101015261399681615905565b9050613948565b50949350505050565b600054610100900460ff166139cd5760405162461bcd60e51b815260040161081090615b61565b6125c88282614814565b6000601082106139e657600080fd5b6139f460016201000061591e565b6139ff836010615ade565b84901c16905092915050565b6000613a1660355490565b609f546040516370a0823160e01b815230600482015287916001600160a01b0316906370a0823190602401602060405180830381865afa158015613a5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a8291906158ec565b613a8c9190615ade565b613a969190615af5565b609f54604051636197390160e11b815260048101839052600060248201529192506001600160a01b03169063c32e7202906044016020604051808303816000875af1158015613ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0d9190615b28565b50609d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b7a91906158ec565b9050613b87816000614854565b609b546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613bcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bf391906158ec565b9050613c01818585856148e8565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a613c3a610de1565b6040518263ffffffff1660e01b8152600401613c5891815260200190565b600060405180830381865afa158015613c75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c9d9190810190615681565b9050600081516001600160401b03811115613cba57613cba614ff2565b604051908082528060200260200182016040528015613ce3578160200160208202803683370190505b50905060005b8251811015613d9d57828181518110613d0457613d04615642565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613d54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7891906158ec565b828281518110613d8a57613d8a615642565b6020908102919091010152600101613ce9565b5032613dfd577f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a9060008083604051602001613dd89190615300565b60408051601f1981840301815290829052613df4939291615ed6565b60405180910390a15b50505050505050565b6060846001600160401b03811115613e2057613e20614ff2565b604051908082528060200260200182016040528015613e49578160200160208202803683370190505b50905060005b85811015613f1557868682818110613e6957613e69615642565b9050602002016020810190613e7e91906151d1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee891906158ec565b828281518110613efa57613efa615642565b6020908102919091010152613f0e81615905565b9050613e4f565b50613f23868686868661357d565b60005b8581101561401057818181518110613f4057613f40615642565b6020026020010151878783818110613f5a57613f5a615642565b9050602002016020810190613f6f91906151d1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fd991906158ec565b613fe3919061591e565b828281518110613ff557613ff5615642565b602090810291909101015261400981615905565b9050613f26565b5095945050505050565b609f5460a254604051637050ccd960e01b815230600482015260ff909116151560248201526060916001600160a01b031690637050ccd9906044016020604051808303816000875af1158015614074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140989190615b28565b5060a25460609060ff161561421257609f546040805163355688fd60e21b815290516000926001600160a01b03169163d55a23f49160048083019260209291908290030181865afa1580156140f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061411591906158ec565b9050806002016001600160401b0381111561413257614132614ff2565b60405190808252806020026020018201604052801561415b578160200160208202803683370190505b50915060005b8181101561420b57609f54604051632061aa2360e11b8152600481018390526001600160a01b03909116906340c3544690602401602060405180830381865afa1580156141b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d691906158cf565b8382600201815181106141eb576141eb615642565b6001600160a01b0390921660209283029190910190910152600101614161565b5050614233565b60408051600280825260608201835290916020830190803683370190505090505b60a05481516001600160a01b0390911690829060009061425557614255615642565b6001600160a01b03928316602091820292909201015260a15482519116908290600190811061428657614286615642565b6001600160a01b0390921660209283029190910190910152919050565b60005b60995481101561430d576143058585838181106142c5576142c5615642565b90506020020160208101906142da91906151d1565b609a546001600160a01b03168584815181106142f8576142f8615642565b60200260200101516149bd565b6001016142a6565b506143198260006149db565b609b546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015614362573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061438691906158ec565b609b54609d549192506143a6916001600160a01b039182169116836149bd565b6143b281600084614a9d565b609d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156143fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061441e91906158ec565b609d54909150614458906001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000836149bd565b60a1546040516321d0683360e11b8152600160a01b9091046001600160601b0316600482015260248101829052600160448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906343a0d06690606401600060405180830381600087803b1580156144da57600080fd5b505af11580156144ee573d6000803e3d6000fd5b505050506144fa321590565b15610cdb57604080516001815260208101839052606081830181905260009082015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15050505050565b6001600160a01b0382166145a55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610810565b80603560008282546145b7919061566e565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b609654600f0b8113156146395760405163e4efd19b60e01b815260048101829052602401610810565b609654600160801b9004600f0b811215612b5a576040516375552ff360e11b815260048101829052602401610810565b609f546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156146b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9491906158ec565b600061472b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614adf9092919063ffffffff16565b80519091501561055d57808060200190518101906147499190615b28565b61055d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610810565b60006147bc609d546001600160a01b031690565b60405163cc2b27d760e01b8152600481018490527f0000000000000000000000000000000000000000000000000000000000000000600f0b60248201526001600160a01b03919091169063cc2b27d79060440161326a565b600054610100900460ff1661483b5760405162461bcd60e51b815260040161081090615b61565b60366148478382615bf2565b50603761055d8282615bf2565b609d546001600160a01b0316604051630d2680e960e11b8152600481018490527f0000000000000000000000000000000000000000000000000000000000000000600f0b6024820152604481018390526001600160a01b039190911690631a4d01d290606401600060405180830381600087803b1580156148d457600080fd5b505af1158015613187573d6000803e3d6000fd5b6148f0614e1c565b60005b6003811015614951578484614908838661566e565b81811061491757614917615642565b905060200201358261492c83612b8c609c5490565b6003811061493c5761493c615642565b602002015261494a81615905565b90506148f3565b50609a5460405163ecb586a560e01b81526001600160a01b039091169063ecb586a5906149849088908590600401615f1a565b600060405180830381600087803b15801561499e57600080fd5b505af11580156149b2573d6000803e3d6000fd5b505050505050505050565b6149c78383614aee565b61055d6001600160a01b0384168383614b79565b6149e3614e1c565b60005b8351811015614a3c57838181518110614a0157614a01615642565b602002602001015182614a1783612b8c609c5490565b60038110614a2757614a27615642565b6020020152614a3581615905565b90506149e6565b50609a54604051634515cef360e01b81526001600160a01b0390911690634515cef390614a6f9084908690600401615f2e565b600060405180830381600087803b158015614a8957600080fd5b505af1158015613dfd573d6000803e3d6000fd5b609d54604080518082018252848152602081018690529051630b4c7e4d60e01b81526001600160a01b0390921691630b4c7e4d91614a6f918590600401615f49565b60606130e28484600085614c95565b604051636eb1769f60e11b81523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b6291906158ec565b11156125c8576125c86001600160a01b0383168260005b801580614bf35750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bf191906158ec565b155b614c655760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610810565b6040516001600160a01b03831660248201526044810182905261055d90849063095ea7b360e01b906064016137b3565b606082471015614cf65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610810565b600080866001600160a01b03168587604051614d129190615f81565b60006040518083038185875af1925050503d8060008114614d4f576040519150601f19603f3d011682016040523d82523d6000602084013e614d54565b606091505b5091509150612e638783838760608315614dcf578251600003614dc8576001600160a01b0385163b614dc85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610810565b50816130e2565b6130e28383815115614de45781518083602001fd5b8060405162461bcd60e51b81526004016108109190614ebc565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b8035600f81900b8114614e4c57600080fd5b919050565b600060208284031215614e6357600080fd5b61072982614e3a565b60005b83811015614e87578181015183820152602001614e6f565b50506000910152565b60008151808452614ea8816020860160208601614e6c565b601f01601f19169290920160200192915050565b6020815260006107296020830184614e90565b6001600160a01b0381168114612b5a57600080fd5b8035614e4c81614ecf565b60008060408385031215614f0257600080fd5b8235614f0d81614ecf565b946020939093013593505050565b60008083601f840112614f2d57600080fd5b5081356001600160401b03811115614f4457600080fd5b6020830191508360208260051b8501011115614f5f57600080fd5b9250929050565b600080600060408486031215614f7b57600080fd5b8335925060208401356001600160401b03811115614f9857600080fd5b614fa486828701614f1b565b9497909650939450505050565b600080600060608486031215614fc657600080fd5b8335614fd181614ecf565b92506020840135614fe181614ecf565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561503057615030614ff2565b604052919050565b80356001600160601b0381168114614e4c57600080fd5b8015158114612b5a57600080fd5b8035614e4c8161504f565b60008060008060008060008060006101208a8c03121561508757600080fd5b89356001600160401b038082111561509e57600080fd5b818c0191508c601f8301126150b257600080fd5b81356020828211156150c6576150c6614ff2565b6150d8601f8301601f19168201615008565b92508183528e818386010111156150ee57600080fd5b81818501828501376000818385010152829c5061510c818f01614ee4565b9b505050505061511e60408b01614ee4565b965060608a0135955061513360808b01614ee4565b945061514160a08b01615038565b935061514f60c08b0161505d565b925061515d60e08b01614e3a565b915061516c6101008b01614e3a565b90509295985092959850929598565b60008060006040848603121561519057600080fd5b83356001600160401b038111156151a657600080fd5b6151b286828701614f1b565b90945092505060208401356151c681614ecf565b809150509250925092565b6000602082840312156151e357600080fd5b813561072981614ecf565b600081518084526020808501945080840160005b838110156152275781516001600160a01b031687529582019590820190600101615202565b509495945050505050565b60208152600061072960208301846151ee565b6000806000806000806080878903121561525e57600080fd5b86359550602087013561527081614ecf565b945060408701356001600160401b038082111561528c57600080fd5b6152988a838b01614f1b565b909650945060608901359150808211156152b157600080fd5b506152be89828a01614f1b565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015615227578151875295820195908201906001016152e4565b60208152600061072960208301846152d0565b60408152600061532660408301856151ee565b828103602084015261533881856152d0565b95945050505050565b600080600080600080600080600060a08a8c03121561535f57600080fd5b89356001600160401b038082111561537657600080fd5b6153828d838e01614f1b565b909b50995060208c013591508082111561539b57600080fd5b6153a78d838e01614f1b565b909950975060408c013591506153bc82614ecf565b90955060608b013590808211156153d257600080fd5b6153de8d838e01614f1b565b909650945060808c01359150808211156153f757600080fd5b506154048c828d01614f1b565b915080935050809150509295985092959850929598565b60006020828403121561542d57600080fd5b81356001600160401b0381111561544357600080fd5b82016101a0818503121561072957600080fd5b60208152815160208201526000602083015160a0604084015261547c60c08401826152d0565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b60006001600160401b038211156154bf576154bf614ff2565b5060051b60200190565b600082601f8301126154da57600080fd5b813560206154ef6154ea836154a6565b615008565b82815260059290921b8401810191818101908684111561550e57600080fd5b8286015b848110156155295780358352918301918301615512565b509695505050505050565b60008060006040848603121561554957600080fd5b83356001600160401b038082111561556057600080fd5b61556c878388016154c9565b9450602086013591508082111561558257600080fd5b50614fa486828701614f1b565b600080604083850312156155a257600080fd5b82356001600160401b038111156155b857600080fd5b6155c4858286016154c9565b92505060208301356155d581614ecf565b809150509250929050565b600080604083850312156155f357600080fd5b82356155fe81614ecf565b915060208301356155d581614ecf565b600181811c9082168061562257607f821691505b6020821081036112ea57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561060857610608615658565b6000602080838503121561569457600080fd5b82516001600160401b038111156156aa57600080fd5b8301601f810185136156bb57600080fd5b80516156c96154ea826154a6565b81815260059190911b820183019083810190878311156156e857600080fd5b928401925b82841015612e6357835161570081614ecf565b825292840192908401906156ed565b60006020828403121561572157600080fd5b815160ff8116811461072957600080fd5b600181815b8085111561576d57816000190482111561575357615753615658565b8085161561576057918102915b93841c9390800290615737565b509250929050565b60008261578457506001610608565b8161579157506000610608565b81600181146157a757600281146157b1576157cd565b6001915050610608565b60ff8411156157c2576157c2615658565b50506001821b610608565b5060208310610133831016604e8410600b84101617156157f0575081810a610608565b6157fa8383615732565b806000190482111561580e5761580e615658565b029392505050565b600061072960ff841683615775565b600060c0828403121561583757600080fd5b60405160c081018181106001600160401b038211171561585957615859614ff2565b604052825161586781614ecf565b8152602083015161587781614ecf565b6020820152604083015161588a81614ecf565b6040820152606083015161589d81614ecf565b606082015260808301516158b081614ecf565b608082015260a08301516158c38161504f565b60a08201529392505050565b6000602082840312156158e157600080fd5b815161072981614ecf565b6000602082840312156158fe57600080fd5b5051919050565b60006001820161591757615917615658565b5060010190565b8181038181111561060857610608615658565b84815283602082015260806040820152600061595060808301856152d0565b8281036060840152612e6381856152d0565b6000808335601e1984360301811261597957600080fd5b8301803591506001600160401b0382111561599357600080fd5b6020019150600581901b3603821315614f5f57600080fd5b80820260008212600160ff1b841416156159c7576159c7615658565b818105831482151761060857610608615658565b634e487b7160e01b600052601260045260246000fd5b600082615a0057615a006159db565b600160ff1b821460001984141615615a1a57615a1a615658565b500590565b808201828112600083128015821682158216171561231b5761231b615658565b8183526000602080850194508260005b85811015615227578135615a6281614ecf565b6001600160a01b031687529582019590820190600101615a4f565b606081526000615a91606083018789615a3f565b8281036020840152615aa381876152d0565b838103604085015284815290506001600160fb1b03841115615ac457600080fd5b8360051b8086602084013701602001979650505050505050565b808202811582820484141761060857610608615658565b600082615b0457615b046159db565b500490565b83815282602082015260606040820152600061533860608301846152d0565b600060208284031215615b3a57600080fd5b81516107298161504f565b6000600160ff1b8201615b5a57615b5a615658565b5060000390565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f82111561055d57600081815260208120601f850160051c81016020861015615bd35750805b601f850160051c820191505b8181101561318757828155600101615bdf565b81516001600160401b03811115615c0b57615c0b614ff2565b615c1f81615c19845461560e565b84615bac565b602080601f831160018114615c545760008415615c3c5750858301515b600019600386901b1c1916600185901b178555613187565b600085815260208120601f198616915b82811015615c8357888601518255948401946001909101908401615c64565b5085821015615ca15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b606081526000615cc460608301866151ee565b8281036020840152615cd681866152d0565b90508281036040840152610dd781856152d0565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b608081526000615d2660808301896151ee565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615e0657858303601f190184528135368e9003605e19018112615d6a57600080fd5b8d0160608135615d7981614ecf565b6001600160a01b0390811686528288013590615d9482614ecf565b168588015260408281013536849003601e19018112615db257600080fd5b9092018781019290356001600160401b03811115615dcf57600080fd5b803603841315615dde57600080fd5b8282880152615df08388018286615cea565b9789019796505050928601925050600101615d44565b50508581036040870152615e1b81898b615a3f565b945050505050612e6360608301846001600160a01b03169052565b60006020808385031215615e4957600080fd5b82516001600160401b03811115615e5f57600080fd5b8301601f81018513615e7057600080fd5b8051615e7e6154ea826154a6565b81815260059190911b82018301908381019087831115615e9d57600080fd5b928401925b82841015612e6357835182529284019290840190615ea2565b600060208284031215615ecd57600080fd5b61072982615038565b83151581528260208201526060604082015260006153386060830184614e90565b8060005b6003811015610704578151845260209384019390910190600101615efb565b828152608081016107296020830184615ef7565b60808101615f3c8285615ef7565b8260608301529392505050565b60608101818460005b6002811015615f71578151835260209283019290910190600101615f52565b5050508260408301529392505050565b60008251615f93818460208701614e6c565b919091019291505056fe72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56a26469706673582212203e9a5d36b61e245200b4949b9eeff572e2c1e9cc1fa34596f759ce511224dac164736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000000000000000000000000000000000000000000500000000000000000000000033e52c206d584550193e642c8982f2fff6339994000000000000000000000000f403c135812408bfbe8713b5a23a04b3d48aae310000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x20", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x1a4a2a751c9ca3de8f692ef684ffba059ab2ef1b6a9d9ce62d3fb93cb24195dc", + "transactionIndex": "0x44", + "blockHash": "0xa1926244a1653788323736736f035b72ee2a8a2aeda90f0727743bf5f6f6f009", + "blockNumber": "0x1328ae6", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0xc3f369", + "gasUsed": "0x51d300", + "contractAddress": "0x7158c40A536dA9E23d8D0A226698A788621adA8A", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1fc662aac" + } + ], + "libraries": [ + "script/helper/ArraysHelper.sol:ArraysHelper:0x7dF191D01252D2C0BABf77c725c63D69fe6EAA1a", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0", + "src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1", + "src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89", + "src/strategies/libraries/EthFrxEthAssetGroupAdapter.sol:EthFrxEthAssetGroupAdapter:0xE23681bAA697EF5054E2D8C397ae59145027625D", + "src/strategies/libraries/EthStEthAssetGroupAdapter.sol:EthStEthAssetGroupAdapter:0x1516eb3a54377168b6b184326200f4258C3529dF" + ], + "pending": [], + "returns": {}, + "timestamp": 1718362462, + "chain": 1, + "multi": false, + "commit": "d367aee" +} \ No newline at end of file diff --git a/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718363882.json b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718363882.json new file mode 100644 index 00000000..1a3767f5 --- /dev/null +++ b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718363882.json @@ -0,0 +1,101 @@ +{ + "transactions": [ + { + "hash": "0x09cca5869aba203fdfa3ef4e892dbcd866e1e6bbdcafa66ceb9f6d175ce8ab63", + "transactionType": "CREATE", + "contractName": "Convex3poolStrategy", + "contractAddress": "0xbca4677aD780bF59FBdF6194a145cf00A1a7c12b", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "5", + "0x33E52c206d584550193E642C8982f2Fff6339994", + "0xF403C135812408BFbE8713b5A23a04b3D48AAE31" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x69fdd9", + "value": "0x0", + "data": "0x6101206040523480156200001257600080fd5b50604051620061d0380380620061d0833981016040819052620000359162000103565b8085858585838383816001600160a01b038116620000665760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000945760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c0525090811660e05284169250620000d19150505760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b03166101005250620001779350505050565b6001600160a01b03811681146200010057600080fd5b50565b600080600080600060a086880312156200011c57600080fd5b85516200012981620000ea565b60208701519095506200013c81620000ea565b6040870151606088015191955093506200015681620000ea565b60808701519092506200016981620000ea565b809150509295509295909350565b60805160a05160c05160e05161010051615fa46200022c600039600081816105d40152818161295f01528181612a7b01528181614a0d0152614a6d0152600081816103bf01528181612ea4015261339e015260008181610bc401528181610bf20152614730015260008181610ab801528181611c8101528181612b7201528181612f1601528181613a1301528181613c57015261479c0152600081816121ca01528181612280015261234a0152615fa46000f3fe608060405234801561001057600080fd5b50600436106102e95760003560e01c806384ba89e311610191578063c1a0ff4c116100e3578063e173ad2511610097578063f025aaed11610071578063f025aaed1461066a578063f106845414610673578063fc195d8c146106af57600080fd5b8063e173ad2514610642578063e21c81d31461064a578063ebbd6bc71461065757600080fd5b8063c6def076116100c8578063c6def076146105cf578063c8d31e74146105f6578063dd62ed3e1461060957600080fd5b8063c1a0ff4c146105b4578063c1a7d80e146105bc57600080fd5b8063a3ea6c9711610145578063a9059cbb1161011f578063a9059cbb1461056e578063b6bff29514610581578063beef8a711461059457600080fd5b8063a3ea6c9714610540578063a457c2d714610553578063a63e8c4b1461056657600080fd5b806395d89b411161017657806395d89b411461050e5780639b6aaa4714610516578063a00783471461052c57600080fd5b806384ba89e3146104e65780638bbcc0e7146104ee57600080fd5b8063313ce5671161024a5780636c60d9e7116101fe57806371a97305116101d857806371a973051461049e5780637817bf4a146104b35780637d79868e146104d357600080fd5b80636c60d9e71461044f5780636cc146001461046257806370a082311461047557600080fd5b806352427bf71161022f57806352427bf7146104165780635e01cfe1146104295780635fcbd2851461043c57600080fd5b8063313ce567146103f4578063395093511461040357600080fd5b806316f0115b116102a157806323b872dd1161028657806323b872dd146103a75780632b3297f9146103ba5780632ce5183f146103e157600080fd5b806316f0115b1461038257806318160ddd1461039557600080fd5b8063095ea7b3116102d2578063095ea7b3146103215780631475cc20146103445780631480fce31461036f57600080fd5b806301a262ed146102ee57806306fdde0314610303575b600080fd5b6103016102fc366004614fb9565b6106c2565b005b61030b6106dd565b6040516103189190615024565b60405180910390f35b61033461032f36600461504c565b61076f565b6040519015158152602001610318565b609d54610357906001600160a01b031681565b6040516001600160a01b039091168152602001610318565b61030161037d3660046150c4565b610789565b609b54610357906001600160a01b031681565b6035545b604051908152602001610318565b6103346103b5366004615110565b610885565b6103577f000000000000000000000000000000000000000000000000000000000000000081565b6103016103ef36600461504c565b6108ab565b60405160128152602001610318565b61033461041136600461504c565b6108e2565b6103016104243660046151d8565b610921565b609e54610357906001600160a01b031681565b609954610357906001600160a01b031681565b61030161045d3660046152db565b610a60565b610301610470366004614fb9565b610a9e565b610399610483366004615332565b6001600160a01b031660009081526033602052604090205490565b6104a6610ab4565b6040516103189190615393565b6104c66104c13660046153a6565b610b55565b6040516103189190615462565b6103016104e1366004615475565b610b9d565b610399610bbf565b6096546104fb90600f0b81565b604051600f9190910b8152602001610318565b61030b610c14565b61051e610c23565b604051610318929190615492565b6096546104fb90600160801b9004600f0b81565b61039961054e3660046154c0565b610c41565b61033461056136600461504c565b610fd1565b6104c6611086565b61033461057c36600461504c565b611101565b609c54610357906001600160a01b031681565b6105a76105a236600461559b565b61110f565b60405161031891906155d7565b6104c6611c7b565b6103016105ca3660046156b6565b611e56565b6103577f000000000000000000000000000000000000000000000000000000000000000081565b610399610604366004615712565b612103565b610399610617366004615764565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b61030b612146565b609f546103349060ff1681565b61030161066536600461504c565b612155565b610399609a5481565b609e5461069290600160a01b90046bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610318565b6104c66106bd3660046153a6565b61218c565b6000336106cf8282612324565b6106d8836123e8565b505050565b6060603680546106ec90615792565b80601f016020809104026020016040519081016040528092919081815260200182805461071890615792565b80156107655780601f1061073a57610100808354040283529160200191610765565b820191906000526020600020905b81548152906001019060200180831161074857829003601f168201915b5050505050905090565b60003361077d81858561244f565b60019150505b92915050565b326107c6576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b60006002838360008181106107dd576107dd6157c6565b90506020020135101561080b57828260078181106107fd576107fd6157c6565b905060200201359050610858565b8282600081811061081e5761081e6157c6565b9050602002013560020361083f57828260018181106107fd576107fd6157c6565b60405163de69b99d60e01b815260040160405180910390fd5b6108628185612573565b61087f5760405163de69b99d60e01b815260040160405180910390fd5b50505050565b60003361089385828561259e565b61089e85858561262a565b60019150505b9392505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336108d78282612324565b61087f30858561262a565b3360008181526034602090815260408083206001600160a01b038716845290915281205490919061077d908290869061091c9087906157f2565b61244f565b600054610100900460ff16158080156109415750600054600160ff909116105b8061095b5750303b15801561095b575060005460ff166001145b6109d25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6000805460ff1916600117905580156109f5576000805461ff0019166101001790555b610a0589600089898c8888612804565b610a0f85856128a1565b8015610a55576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610a8c8282612324565b610a97858585612b20565b5050505050565b600033610aab8282612324565b6106d883612ce4565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a610aed610bbf565b6040518263ffffffff1660e01b8152600401610b0b91815260200190565b600060405180830381865afa158015610b28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b509190810190615805565b905090565b6060610b817fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612324565b610b9087878888888888612d3d565b90505b9695505050505050565b600033610baa8282612324565b5050609f805460ff1916911515919091179055565b6000807f000000000000000000000000000000000000000000000000000000000000000011610bef575060985490565b507f000000000000000000000000000000000000000000000000000000000000000090565b6060603780546106ec90615792565b6060803215610c3157600080fd5b610c39612dac565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610c6f8282612324565b60008b67ffffffffffffffff811115610c8a57610c8a615151565b604051908082528060200260200182016040528015610cb3578160200160208202803683370190505b50905060005b8c811015610d7f578d8d82818110610cd357610cd36157c6565b9050602002016020810190610ce89190615332565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d529190615894565b828281518110610d6457610d646157c6565b6020908102919091010152610d78816158ad565b9050610cb9565b50610db98d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610dd457610dd4615151565b604051908082528060200260200182016040528015610dfd578160200160208202803683370190505b50905060005b8d811015610ec9578e8e82818110610e1d57610e1d6157c6565b9050602002016020810190610e329190615332565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610e78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9c9190615894565b828281518110610eae57610eae6157c6565b6020908102919091010152610ec2816158ad565b9050610e03565b506000610f0a8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612f11915050565b9050610f198f8f848d8d61316d565b6000610f668e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612f11565b90506000610f748383613246565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610fa285856158c6565b8787604051610fb494939291906158d9565b60405180910390a196505050505050509998505050505050505050565b3360008181526034602090815260408083206001600160a01b03871684529091528120549091908381101561106e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016109c9565b61107b828686840361244f565b506001949350505050565b604080516003808252608082019092526060916000919060208201848036833701905050905060005b60038110156110fb57609a546110ce906110c990836132d4565b613308565b8282815181106110e0576110e06157c6565b60209081029190910101526110f4816158ad565b90506110af565b50919050565b60003361077d81858561262a565b6111416040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b61116b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612324565b60008061117b606085018561590a565b905067ffffffffffffffff81111561119557611195615151565b6040519080825280602002602001820160405280156111be578160200160208202803683370190505b50905060005b6111d1606086018661590a565b90508110156112c3576111e7606086018661590a565b828181106111f7576111f76157c6565b905060200201602081019061120c9190615332565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611252573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112769190615894565b828281518110611288576112886157c6565b60200260200101818152505060008282815181106112a8576112a86157c6565b602002602001015111156112bb57600192505b6001016111c4565b506112d5816105ca604087018761590a565b6112ea60a085013561037d604087018761590a565b6112f2614f66565b611300856101000135613376565b60408501526000611336611317606088018861590a565b61132460208a018a61590a565b61133160408c018c61590a565b613385565b905064e8d4a5100085604001518261134e9190615954565b611358919061599a565b61136290826159c8565b8560400181815161137391906159c8565b90525050604084015161138a9061012087016134c8565b506113e361139b608087018761590a565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506113de92505050610100880160e08901615332565b612f11565b81526000808060a0880135861561150e5760006114076101008b0160e08c01615332565b6001600160a01b031663a2d2657f61142260608d018d61590a565b8a8e8060800190611433919061590a565b6040518663ffffffff1660e01b8152600401611453959493929190615a26565b602060405180830381865afa158015611470573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114949190615894565b905064e8d4a510006114a560355490565b10156114be576114b7816103e8615aa0565b93506114f8565b8551156114df5785516035546114d5908390615aa0565b6114b79190615ab7565b60405163483ecd2f60e11b815260040160405180910390fd5b818410156115085783945061150c565b8194505b505b600061151d60608b018b61590a565b905067ffffffffffffffff81111561153757611537615151565b604051908082528060200260200182016040528015611560578160200160208202803683370190505b5090506000828511156119855785156116215760005b61158360608d018d61590a565b905081101561161b5785878a83815181106115a0576115a06157c6565b602002602001015102816115b6576115b6615984565b048382815181106115c9576115c96157c6565b6020026020010181815250508281815181106115e7576115e76157c6565b6020026020010151898281518110611601576116016157c6565b602090810291909101018051919091039052600101611576565b50600190505b6000885167ffffffffffffffff81111561163d5761163d615151565b604051908082528060200260200182016040528015611666578160200160208202803683370190505b50905060006116758d8061590a565b90501115611825576116de61168d60608e018e61590a565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061087f919061590a565b60005b6116ee60608e018e61590a565b905081101561181f57898181518110611709576117096157c6565b6020026020010151828281518110611723576117236157c6565b602002602001018181525050838181518110611741576117416157c6565b60200260200101518d8060600190611759919061590a565b83818110611769576117696157c6565b905060200201602081019061177e9190615332565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156117c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e89190615894565b6117f291906158c6565b8a8281518110611804576118046157c6565b6020908102919091010152611818816158ad565b90506116e1565b50611887565b60005b61183560608e018e61590a565b905081101561188557898181518110611850576118506157c6565b602002602001015182828151811061186a5761186a6157c6565b602090810291909101015261187e816158ad565b9050611828565b505b6118ad61189760608e018e61590a565b8b8f80604001906118a8919061590a565b61316d565b6119106118bd60808e018e61590a565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906113de9190615332565b60208901819052885161192291613246565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611959916158c6565b838c60405161196b94939291906158d9565b60405180910390a161197d87866157f2565b945050611bb6565b84831115611b4757851561199c5785830392508593505b6119c26119ac60608d018d61590a565b858e80604001906119bd919061590a565b613642565b6119cc3084613742565b506001611a226119df60808d018d61590a565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506113de925050506101008e0160e08f01615332565b602088015260005b611a3760608d018d61590a565b9050811015611b0157611a4d60608d018d61590a565b82818110611a5d57611a5d6157c6565b9050602002016020810190611a729190615332565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611adc9190615894565b838281518110611aee57611aee6157c6565b6020908102919091010152600101611a2a565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611b3a918691908690615acb565b60405180910390a1611bb6565b8515611bae5782935060005b611b6060608d018d61590a565b9050811015611ba857888181518110611b7b57611b7b6157c6565b6020026020010151838281518110611b9557611b956157c6565b6020908102919091010152600101611b53565b50600190505b865160208801525b8015611c515760005b611bcc60608d018d61590a565b9050811015611c4f57611c47611be860e08e0160c08f01615332565b848381518110611bfa57611bfa6157c6565b60200260200101518e8060600190611c12919061590a565b85818110611c2257611c226157c6565b9050602002016020810190611c379190615332565b6001600160a01b03169190613876565b600101611bbf565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a611cb6610bbf565b6040518263ffffffff1660e01b8152600401611cd491815260200190565b600060405180830381865afa158015611cf1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d199190810190615805565b90506000611d25613906565b90506000609960009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da09190615894565b9050825167ffffffffffffffff811115611dbc57611dbc615151565b604051908082528060200260200182016040528015611de5578160200160208202803683370190505b50935060005b8351811015611e4f578183611e0e6110c984609a546132d490919063ffffffff16565b611e189190615aa0565b611e229190615ab7565b858281518110611e3457611e346157c6565b6020908102919091010152611e48816158ad565b9050611deb565b5050505090565b32611fa35760408051600680825260e082019092526000916020820160c08036833701905050905060005b6003811015611f6557848181518110611e9c57611e9c6157c6565b6020026020010151828281518110611eb657611eb66157c6565b6020908102919091010152609b54604051634903b0d160e01b8152600481018390526001600160a01b0390911690634903b0d190602401602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e9190615894565b82611f3a8360036157f2565b81518110611f4a57611f4a6157c6565b6020908102919091010152611f5e816158ad565b9050611e81565b507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611f959190615462565b60405180910390a150505050565b600282826000818110611fb857611fb86157c6565b905060200201351115611fde57604051637e53900160e11b815260040160405180910390fd5b60005b600381101561087f57609b54604051634903b0d160e01b8152600481018390526000916001600160a01b031690634903b0d190602401602060405180830381865afa158015612034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120589190615894565b905061209f848461206a8560016157f2565b818110612079576120796157c6565b90506020020135868481518110612092576120926157c6565b6020026020010151612573565b15806120d457506120d284846120b68560046157f2565b8181106120c5576120c56157c6565b9050602002013582612573565b155b156120f257604051637e53900160e11b815260040160405180910390fd5b506120fc816158ad565b9050611fe1565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336121318282612324565b61213b8585612f11565b92505b505092915050565b6060609780546106ec90615792565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336121818282612324565b61087f84308561262a565b604051632474521560e21b81527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015612219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223d9190615aea565b1580156122f55750604051632474521560e21b81527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156122cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f39190615aea565b155b1561231557604051637ab612a360e01b81523360048201526024016109c9565b610b9087308888888888612d3d565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b59190615aea565b6123e4576040516301d4003760e61b8152600481018390526001600160a01b03821660248201526044016109c9565b5050565b600081600f0b1380612409575061240364e8d4a51000615b07565b81600f0b125b156124275760405163c52a9bd360e01b815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff928316600160801b029216919091179055565b6001600160a01b0383166124b15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109c9565b6001600160a01b0382166125125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109c9565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006125846001600160801b6158c6565b83168210806125965750608083901c82115b159392505050565b6001600160a01b03838116600090815260346020908152604080832093861683529290522054600019811461087f578181101561261d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109c9565b61087f848484840361244f565b6001600160a01b0383166126a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016109c9565b6001600160a01b0382166127085760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109c9565b6001600160a01b038316600090815260336020526040902054818110156127975760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016109c9565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127f79086815260200190565b60405180910390a361087f565b600054610100900460ff1661286f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016109c9565b609b80546001600160a01b0319166001600160a01b038516179055612898878787878686613973565b50505050505050565b600054610100900460ff1661290c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016109c9565b609e80546bffffffffffffffffffffffff8416600160a01b81026001600160a01b0392831617909255609f805484151560ff19909116179055604051631526fe2760e01b815260048101929092526000917f000000000000000000000000000000000000000000000000000000000000000090911690631526fe279060240160c060405180830381865afa1580156129a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129cc9190615b23565b6060810151609c80546001600160a01b0319166001600160a01b0390921691821790556040805163f7c618c160e01b81529051929350909163f7c618c1916004808201926020929091908290030181865afa158015612a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a539190615bce565b609d60006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612afb9190615bce565b609e80546001600160a01b0319166001600160a01b0392909216919091179055505050565b82826000818110612b3357612b336157c6565b90506020020135600314612b5a57604051631037f25360e21b815260040160405180910390fd5b612b6e612b65613906565b60018585613b74565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a612ba7610bbf565b6040518263ffffffff1660e01b8152600401612bc591815260200190565b600060405180830381865afa158015612be2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c0a9190810190615805565b905060005b6003811015610a9757612cd483838381518110612c2e57612c2e6157c6565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca29190615894565b848481518110612cb457612cb46157c6565b60200260200101516001600160a01b03166138769092919063ffffffff16565b612cdd816158ad565b9050612c0f565b600081600f0b1215612d095760405163c52a9bd360e01b815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff92909216919091179055565b60606000612d4e86868b8787613e60565b9050612d5a888a613742565b60005b85811015612d9d57612d9588838381518110612d7b57612d7b6157c6565b6020026020010151898985818110611c2257611c226157c6565b600101612d5d565b5090505b979650505050505050565b6060806000612db9614075565b90506000815167ffffffffffffffff811115612dd757612dd7615151565b604051908082528060200260200182016040528015612e00578160200160208202803683370190505b50905060005b8251811015612f07576000838281518110612e2357612e236157c6565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612e73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e979190615894565b90508015612ef657612ed67f000000000000000000000000000000000000000000000000000000000000000082868581518110612cb457612cb46157c6565b80838381518110612ee957612ee96157c6565b6020026020010181815250505b50612f00816158ad565b9050612e06565b5090939092509050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a612f4b610bbf565b6040518263ffffffff1660e01b8152600401612f6991815260200190565b600060405180830381865afa158015612f86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fae9190810190615805565b9050600080612fbb613906565b90506000609960009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130369190615894565b905060005b845181101561316157866001600160a01b0316639115900c868381518110613065576130656157c6565b602002602001015184866130876110c987609a546132d490919063ffffffff16565b6130919190615aa0565b61309b9190615ab7565b8b85815181106130ad576130ad6157c6565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401602060405180830381865afa158015613121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131459190615894565b61314f90856157f2565b935061315a816158ad565b905061303b565b50919695505050505050565b600082826000818110613182576131826157c6565b905060200201356000036131b157828260098181106131a3576131a36157c6565b9050602002013590506131fe565b828260008181106131c4576131c46157c6565b905060200201356002036131e557828260078181106131a3576131a36157c6565b60405163dc939be760e01b815260040160405180910390fd5b61323e8686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508591506143159050565b505050505050565b60008061325260355490565b905064e8d4a5100081101561329a5761326d6103e884615aa0565b915064e8d4a51000819003808310156132835750815b808303925061329461dead82614440565b506132c3565b83156114df5783816132ac82866158c6565b6132b69190615aa0565b6132c09190615ab7565b91505b6132cd3083614440565b5092915050565b6000601082106132e357600080fd5b6132f16001620100006158c6565b6132fc836010615aa0565b84901c16905092915050565b609b54604051634903b0d160e01b8152600481018390526000916001600160a01b031690634903b0d190602401602060405180830381865afa158015613352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107839190615894565b600061338182614501565b5090565b60008315610b93576000613397612dac565b50905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166367c152628389898d8d306040518763ffffffff1660e01b81526004016133f296959493929190615c14565b6000604051808303816000875af1158015613411573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526134399190810190615d38565b90506000613445613906565b90506134888a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508692508a915089905061455d565b600081613493613906565b61349d91906158c6565b9050816134af8264e8d4a51000615aa0565b6134b99190615ab7565b9b9a5050505050505050505050565b600080831315610783578260006134e664e8d4a51000612710615aa0565b6134f66080860160608701615dbe565b6bffffffffffffffffffffffff166135146040870160208801615dbe565b61352e906bffffffffffffffffffffffff166127106158c6565b61353891906158c6565b6135429084615aa0565b61354c91906157f2565b905060008261355a60355490565b6135649190615aa0565b90506000826135796040880160208901615dbe565b613591906bffffffffffffffffffffffff1684615aa0565b61359b9190615ab7565b90506135b36135ad6020880188615332565b82614440565b6000836135c66080890160608a01615dbe565b6135de906bffffffffffffffffffffffff1685615aa0565b6135e89190615ab7565b90506135fd6135ad6060890160408a01615332565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b600082826000818110613657576136576157c6565b9050602002013560010361366d5750600961370c565b82826000818110613680576136806157c6565b905060200201356002036136965750600261370c565b828260008181106136a9576136a96157c6565b905060200201356003036136bf5750600161370c565b828260008181106136d2576136d26157c6565b9050602002013560001480156136e6575032155b156136f35750600961370c565b604051631037f25360e21b815260040160405180910390fd5b600061371760355490565b85613720613906565b61372a9190615aa0565b6137349190615ab7565b905061289881838686613b74565b6001600160a01b0382166137a25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109c9565b6001600160a01b038216600090815260336020526040902054818110156138165760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109c9565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b0383166024820152604481018290526106d890849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526145bc565b609c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561394f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b509190615894565b600054610100900460ff166139de5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016109c9565b6139e886866146a1565b6001600160a01b038416613a0f5760405163bb0e4c3560e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a613a48610bbf565b6040518263ffffffff1660e01b8152600401613a6691815260200190565b600060405180830381865afa158015613a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613aab9190810190615805565b609980546001600160a01b0319166001600160a01b03881617905590506003815114613af557613ad9610bbf565b604051634b1f57ad60e01b81526004016109c991815260200190565b60005b6003811015613b5c57613b13613b0e86836132d4565b614889565b6001600160a01b0316828281518110613b2e57613b2e6157c6565b60200260200101516001600160a01b031614613b4c57613ad9610bbf565b613b55816158ad565b9050613af8565b50609a849055613b6b83612ce4565b612898826123e8565b613b7d846148f7565b613b85614f84565b60005b6003811015613bee578383613b9d83886157f2565b818110613bac57613bac6157c6565b9050602002013582613bc983609a546132d490919063ffffffff16565b60038110613bd957613bd96157c6565b6020020152613be7816158ad565b9050613b88565b50609b5460405163ecb586a560e01b81526001600160a01b039091169063ecb586a590613c219088908590600401615dfc565b600060405180830381600087803b158015613c3b57600080fd5b505af1158015613c4f573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a613c8c610bbf565b6040518263ffffffff1660e01b8152600401613caa91815260200190565b600060405180830381865afa158015613cc7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613cef9190810190615805565b90506000815167ffffffffffffffff811115613d0d57613d0d615151565b604051908082528060200260200182016040528015613d36578160200160208202803683370190505b50905060005b8251811015613df857828181518110613d5757613d576157c6565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dcb9190615894565b828281518110613ddd57613ddd6157c6565b6020908102919091010152613df1816158ad565b9050613d3c565b5032612898577f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a9060008083604051602001613e339190615462565b60408051601f1981840301815290829052613e4f939291615e10565b60405180910390a150505050505050565b60608467ffffffffffffffff811115613e7b57613e7b615151565b604051908082528060200260200182016040528015613ea4578160200160208202803683370190505b50905060005b85811015613f7057868682818110613ec457613ec46157c6565b9050602002016020810190613ed99190615332565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f439190615894565b828281518110613f5557613f556157c6565b6020908102919091010152613f69816158ad565b9050613eaa565b50613f7e8686868686613642565b60005b8581101561406b57818181518110613f9b57613f9b6157c6565b6020026020010151878783818110613fb557613fb56157c6565b9050602002016020810190613fca9190615332565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015614010573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140349190615894565b61403e91906158c6565b828281518110614050576140506157c6565b6020908102919091010152614064816158ad565b9050613f81565b5095945050505050565b609c54609f54604051637050ccd960e01b815230600482015260ff909116151560248201526060916001600160a01b031690637050ccd9906044016020604051808303816000875af11580156140cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140f39190615aea565b50609f5460609060ff161561428457609c546040805163355688fd60e21b815290516000926001600160a01b03169163d55a23f49160048083019260209291908290030181865afa15801561414c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141709190615894565b905061417d8160026157f2565b67ffffffffffffffff81111561419557614195615151565b6040519080825280602002602001820160405280156141be578160200160208202803683370190505b50915060005b8181101561427d57609c54604051632061aa2360e11b8152600481018390526001600160a01b03909116906340c3544690602401602060405180830381865afa158015614215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142399190615bce565b836142458360026157f2565b81518110614255576142556157c6565b6001600160a01b0390921660209283029190910190910152614276816158ad565b90506141c4565b50506142a5565b60408051600280825260608201835290916020830190803683370190505090505b609d5481516001600160a01b039091169082906000906142c7576142c76157c6565b6001600160a01b039283166020918202929092010152609e548251911690829060019081106142f8576142f86157c6565b6001600160a01b0390921660209283029190910190910152919050565b61431d614f84565b60005b60038110156143d35783818151811061433b5761433b6157c6565b60200260200101518261435983609a546132d490919063ffffffff16565b60038110614369576143696157c6565b602002015284516143c390869083908110614386576143866157c6565b6020026020010151609b60009054906101000a90046001600160a01b03168684815181106143b6576143b66157c6565b602002602001015161496d565b6143cc816158ad565b9050614320565b50609b54604051634515cef360e01b81526001600160a01b0390911690634515cef3906144069084908690600401615e31565b600060405180830381600087803b15801561442057600080fd5b505af1158015614434573d6000803e3d6000fd5b5050505061087f61498b565b6001600160a01b0382166144965760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109c9565b80603560008282546144a891906157f2565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b609654600f0b81131561452a5760405163e4efd19b60e01b8152600481018290526024016109c9565b609654600160801b9004600f0b81121561455a576040516375552ff360e11b8152600481018290526024016109c9565b50565b600182826000818110614572576145726157c6565b90506020020135111561459857604051630d2668f160e21b815260040160405180910390fd5b61087f8484848460088181106145b0576145b06157c6565b90506020020135614315565b6000614611826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614b2a9092919063ffffffff16565b8051909150156106d8578080602001905181019061462f9190615aea565b6106d85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016109c9565b600054610100900460ff1661470c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016109c9565b815160000361472e5760405163c52a9bd360e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061477b5780614771576040516336307dff60e01b815260040160405180910390fd5b609881905561479a565b801561479a576040516336307dff60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e065ce6e6147d1610bbf565b6040518263ffffffff1660e01b81526004016147ef91815260200190565b60006040518083038186803b15801561480757600080fd5b505afa15801561481b573d6000803e3d6000fd5b50505050816097908161482e9190615e92565b506123e46040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020016214d4d560ea1b815250614b41565b609b5460405163c661065760e01b8152600481018390526000916001600160a01b03169063c661065790602401602060405180830381865afa1580156148d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107839190615bce565b609c54604051636197390160e11b815260048101839052600060248201526001600160a01b039091169063c32e7202906044016020604051808303816000875af1158015614949573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e49190615aea565b6149778383614bb6565b6106d86001600160a01b0384168383614c41565b6099546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156149d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149f89190615894565b609954909150614a32906001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000008361496d565b609e546040516321d0683360e11b8152600160a01b9091046bffffffffffffffffffffffff16600482015260248101829052600160448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906343a0d06690606401600060405180830381600087803b158015614ab957600080fd5b505af1158015614acd573d6000803e3d6000fd5b50505050614ad9321590565b1561455a57604080516001815260208101839052606081830181905260009082015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a150565b6060614b398484600085614d5d565b949350505050565b600054610100900460ff16614bac5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016109c9565b6123e48282614e44565b604051636eb1769f60e11b81523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c2a9190615894565b11156123e4576123e46001600160a01b0383168260005b801580614cbb5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614cb99190615894565b155b614d2d5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016109c9565b6040516001600160a01b0383166024820152604481018290526106d890849063095ea7b360e01b906064016138a2565b606082471015614dd55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016109c9565b600080866001600160a01b03168587604051614df19190615f52565b60006040518083038185875af1925050503d8060008114614e2e576040519150601f19603f3d011682016040523d82523d6000602084013e614e33565b606091505b5091509150612da187838387614ec8565b600054610100900460ff16614eaf5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016109c9565b6036614ebb8382615e92565b5060376106d88282615e92565b60608315614f37578251600003614f30576001600160a01b0385163b614f305760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109c9565b5081614b39565b614b398383815115614f4c5781518083602001fd5b8060405162461bcd60e51b81526004016109c99190615024565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b8035600f81900b8114614fb457600080fd5b919050565b600060208284031215614fcb57600080fd5b6108a482614fa2565b60005b83811015614fef578181015183820152602001614fd7565b50506000910152565b60008151808452615010816020860160208601614fd4565b601f01601f19169290920160200192915050565b6020815260006108a46020830184614ff8565b6001600160a01b038116811461455a57600080fd5b6000806040838503121561505f57600080fd5b823561506a81615037565b946020939093013593505050565b60008083601f84011261508a57600080fd5b50813567ffffffffffffffff8111156150a257600080fd5b6020830191508360208260051b85010111156150bd57600080fd5b9250929050565b6000806000604084860312156150d957600080fd5b83359250602084013567ffffffffffffffff8111156150f757600080fd5b61510386828701615078565b9497909650939450505050565b60008060006060848603121561512557600080fd5b833561513081615037565b9250602084013561514081615037565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561519057615190615151565b604052919050565b8035614fb481615037565b80356bffffffffffffffffffffffff81168114614fb457600080fd5b801515811461455a57600080fd5b8035614fb4816151bf565b600080600080600080600080610100898b0312156151f557600080fd5b883567ffffffffffffffff8082111561520d57600080fd5b818b0191508b601f83011261522157600080fd5b813560208282111561523557615235615151565b615247601f8301601f19168201615167565b92508183528d8183860101111561525d57600080fd5b81818501828501376000818385010152829b5061527b818e01615198565b9a505050505061528d60408a01615198565b9550606089013594506152a260808a016151a3565b93506152b060a08a016151cd565b92506152be60c08a01614fa2565b91506152cc60e08a01614fa2565b90509295985092959890939650565b6000806000604084860312156152f057600080fd5b833567ffffffffffffffff81111561530757600080fd5b61531386828701615078565b909450925050602084013561532781615037565b809150509250925092565b60006020828403121561534457600080fd5b81356108a481615037565b600081518084526020808501945080840160005b838110156153885781516001600160a01b031687529582019590820190600101615363565b509495945050505050565b6020815260006108a4602083018461534f565b600080600080600080608087890312156153bf57600080fd5b8635955060208701356153d181615037565b9450604087013567ffffffffffffffff808211156153ee57600080fd5b6153fa8a838b01615078565b9096509450606089013591508082111561541357600080fd5b5061542089828a01615078565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b8381101561538857815187529582019590820190600101615446565b6020815260006108a46020830184615432565b60006020828403121561548757600080fd5b81356108a4816151bf565b6040815260006154a5604083018561534f565b82810360208401526154b78185615432565b95945050505050565b600080600080600080600080600060a08a8c0312156154de57600080fd5b893567ffffffffffffffff808211156154f657600080fd5b6155028d838e01615078565b909b50995060208c013591508082111561551b57600080fd5b6155278d838e01615078565b909950975060408c0135915061553c82615037565b90955060608b0135908082111561555257600080fd5b61555e8d838e01615078565b909650945060808c013591508082111561557757600080fd5b506155848c828d01615078565b915080935050809150509295985092959850929598565b6000602082840312156155ad57600080fd5b813567ffffffffffffffff8111156155c457600080fd5b82016101a081850312156108a457600080fd5b60208152815160208201526000602083015160a060408401526155fd60c0840182615432565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff82111561564157615641615151565b5060051b60200190565b600082601f83011261565c57600080fd5b8135602061567161566c83615627565b615167565b82815260059290921b8401810191818101908684111561569057600080fd5b8286015b848110156156ab5780358352918301918301615694565b509695505050505050565b6000806000604084860312156156cb57600080fd5b833567ffffffffffffffff808211156156e357600080fd5b6156ef8783880161564b565b9450602086013591508082111561570557600080fd5b5061510386828701615078565b6000806040838503121561572557600080fd5b823567ffffffffffffffff81111561573c57600080fd5b6157488582860161564b565b925050602083013561575981615037565b809150509250929050565b6000806040838503121561577757600080fd5b823561578281615037565b9150602083013561575981615037565b600181811c908216806157a657607f821691505b6020821081036110fb57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610783576107836157dc565b6000602080838503121561581857600080fd5b825167ffffffffffffffff81111561582f57600080fd5b8301601f8101851361584057600080fd5b805161584e61566c82615627565b81815260059190911b8201830190838101908783111561586d57600080fd5b928401925b82841015612da157835161588581615037565b82529284019290840190615872565b6000602082840312156158a657600080fd5b5051919050565b6000600182016158bf576158bf6157dc565b5060010190565b81810381811115610783576107836157dc565b8481528360208201526080604082015260006158f86080830185615432565b8281036060840152612da18185615432565b6000808335601e1984360301811261592157600080fd5b83018035915067ffffffffffffffff82111561593c57600080fd5b6020019150600581901b36038213156150bd57600080fd5b80820260008212600160ff1b84141615615970576159706157dc565b8181058314821517610783576107836157dc565b634e487b7160e01b600052601260045260246000fd5b6000826159a9576159a9615984565b600160ff1b8214600019841416156159c3576159c36157dc565b500590565b808201828112600083128015821682158216171561213e5761213e6157dc565b8183526000602080850194508260005b85811015615388578135615a0b81615037565b6001600160a01b0316875295820195908201906001016159f8565b606081526000615a3a6060830187896159e8565b8281036020840152615a4c8187615432565b905082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115615a8657600080fd5b8360051b8086602084013701602001979650505050505050565b8082028115828204841417610783576107836157dc565b600082615ac657615ac6615984565b500490565b8381528260208201526060604082015260006154b76060830184615432565b600060208284031215615afc57600080fd5b81516108a4816151bf565b6000600160ff1b8201615b1c57615b1c6157dc565b5060000390565b600060c08284031215615b3557600080fd5b60405160c0810181811067ffffffffffffffff82111715615b5857615b58615151565b6040528251615b6681615037565b81526020830151615b7681615037565b60208201526040830151615b8981615037565b60408201526060830151615b9c81615037565b60608201526080830151615baf81615037565b608082015260a0830151615bc2816151bf565b60a08201529392505050565b600060208284031215615be057600080fd5b81516108a481615037565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b608081526000615c27608083018961534f565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615d0857858303601f190184528135368e9003605e19018112615c6b57600080fd5b8d0160608135615c7a81615037565b6001600160a01b0390811686528288013590615c9582615037565b168588015260408281013536849003601e19018112615cb357600080fd5b90920187810192903567ffffffffffffffff811115615cd157600080fd5b803603841315615ce057600080fd5b8282880152615cf28388018286615beb565b9789019796505050928601925050600101615c45565b50508581036040870152615d1d81898b6159e8565b945050505050612da160608301846001600160a01b03169052565b60006020808385031215615d4b57600080fd5b825167ffffffffffffffff811115615d6257600080fd5b8301601f81018513615d7357600080fd5b8051615d8161566c82615627565b81815260059190911b82018301908381019087831115615da057600080fd5b928401925b82841015612da157835182529284019290840190615da5565b600060208284031215615dd057600080fd5b6108a4826151a3565b8060005b600381101561087f578151845260209384019390910190600101615ddd565b828152608081016108a46020830184615dd9565b83151581528260208201526060604082015260006154b76060830184614ff8565b60808101615e3f8285615dd9565b8260608301529392505050565b601f8211156106d857600081815260208120601f850160051c81016020861015615e735750805b601f850160051c820191505b8181101561323e57828155600101615e7f565b815167ffffffffffffffff811115615eac57615eac615151565b615ec081615eba8454615792565b84615e4c565b602080601f831160018114615ef55760008415615edd5750858301515b600019600386901b1c1916600185901b17855561323e565b600085815260208120601f198616915b82811015615f2457888601518255948401946001909101908401615f05565b5085821015615f425787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251615f64818460208701614fd4565b919091019291505056fea26469706673582212200f1ff3a0f4ff8dc60ce23874f7cc807ff6140c1b6d573f63139aad74a47faf8864736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000000000000000000000000000000000000000000500000000000000000000000033e52c206d584550193e642c8982f2fff6339994000000000000000000000000f403c135812408bfbe8713b5a23a04b3d48aae31", + "nonce": "0x23", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4304ade96153318d90ebb56ce7cb179759ea407d434a5cd6c4d14032b1699240", + "transactionType": "CREATE", + "contractName": "ConvexStFrxEthStrategy", + "contractAddress": "0x7f47E9e456F7a74c4D44Cc56B08CbAFFf6BF95e8", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "1", + "0x33E52c206d584550193E642C8982f2Fff6339994" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x6a033d", + "value": "0x0", + "data": "0x6101206040523480156200001257600080fd5b50604051620061c8380380620061c8833981016040819052620000359162000134565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2848484816001600160a01b038116620000765760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000a45760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000d65760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e0528116620001045760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0316610100525062000190915050565b6001600160a01b03811681146200013157600080fd5b50565b600080600080608085870312156200014b57600080fd5b845162000158816200011b565b60208601519094506200016b816200011b565b60408601516060870151919450925062000185816200011b565b939692955090935050565b60805160a05160c05160e05161010051615fa66200022260003960008181612c27015261331f0152600081816103ae0152818161112901528181612cbf01528181614a5b0152614bee015260008181610a8301528181610ab101526130da0152600081816109990152818161108101526131460152600081816122730152818161232901526123f30152615fa66000f3fe60806040526004361061021d5760003560e01c80638bbcc0e71161011d578063b32d6af3116100b0578063c8d31e741161007f578063e173ad2511610064578063e173ad251461068d578063ebbd6bc7146106a2578063fc195d8c146106c257600080fd5b8063c8d31e7414610627578063dd62ed3e1461064757600080fd5b8063b32d6af3146105a5578063beef8a71146105c5578063c1a0ff4c146105f2578063c1a7d80e1461060757600080fd5b8063a3ea6c97116100ec578063a3ea6c9714610530578063a457c2d714610550578063a63e8c4b14610570578063a9059cbb1461058557600080fd5b80638bbcc0e7146104aa57806395d89b41146104d75780639b6aaa47146104ec578063a00783471461050f57600080fd5b8063313ce567116101b05780636cc146001161017f57806371a973051161016457806371a97305146104465780637817bf4a1461046857806384ba89e31461049557600080fd5b80636cc14600146103f057806370a082311461041057600080fd5b8063313ce56714610360578063395093511461037c5780633fc8cef31461039c5780636c60d9e7146103d057600080fd5b806316f0115b116101ec57806316f0115b146102c657806318160ddd1461030157806323b872dd146103205780632ce5183f1461034057600080fd5b806301a262ed1461022957806306fdde031461024b578063095ea7b3146102765780631480fce3146102a657600080fd5b3661022457005b600080fd5b34801561023557600080fd5b5061024961024436600461506f565b6106e2565b005b34801561025757600080fd5b506102606106fd565b60405161026d91906150da565b60405180910390f35b34801561028257600080fd5b50610296610291366004615102565b61078f565b604051901515815260200161026d565b3480156102b257600080fd5b506102496102c136600461517a565b6107a9565b3480156102d257600080fd5b50734d9f9d15101eec665f77210cb999639f760f831e5b6040516001600160a01b03909116815260200161026d565b34801561030d57600080fd5b506035545b60405190815260200161026d565b34801561032c57600080fd5b5061029661033b3660046151c6565b6108a5565b34801561034c57600080fd5b5061024961035b366004615102565b6108cb565b34801561036c57600080fd5b506040516012815260200161026d565b34801561038857600080fd5b50610296610397366004615102565b610902565b3480156103a857600080fd5b506102e97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103dc57600080fd5b506102496103eb366004615207565b610941565b3480156103fc57600080fd5b5061024961040b36600461506f565b61097f565b34801561041c57600080fd5b5061031261042b36600461525e565b6001600160a01b031660009081526033602052604090205490565b34801561045257600080fd5b5061045b610995565b60405161026d91906152bf565b34801561047457600080fd5b506104886104833660046152d2565b610a36565b60405161026d919061538e565b3480156104a157600080fd5b50610312610a7e565b3480156104b657600080fd5b506096546104c490600f0b81565b604051600f9190910b815260200161026d565b3480156104e357600080fd5b50610260610ad3565b3480156104f857600080fd5b50610501610ae2565b60405161026d9291906153a1565b34801561051b57600080fd5b506096546104c490600160801b9004600f0b81565b34801561053c57600080fd5b5061031261054b3660046153cf565b610b00565b34801561055c57600080fd5b5061029661056b366004615102565b610e90565b34801561057c57600080fd5b50610488610f4a565b34801561059157600080fd5b506102966105a0366004615102565b610f95565b3480156105b157600080fd5b506102496105c036600461550a565b610fa3565b3480156105d157600080fd5b506105e56105e03660046155d1565b6112d6565b60405161026d919061560d565b3480156105fe57600080fd5b50610488611e42565b34801561061357600080fd5b506102496106223660046156ec565b611e4c565b34801561063357600080fd5b50610312610642366004615748565b6121ac565b34801561065357600080fd5b5061031261066236600461579a565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b34801561069957600080fd5b506102606121ef565b3480156106ae57600080fd5b506102496106bd366004615102565b6121fe565b3480156106ce57600080fd5b506104886106dd3660046152d2565b612235565b6000336106ef82826123cd565b6106f883612491565b505050565b60606036805461070c906157c8565b80601f0160208091040260200160405190810160405280929190818152602001828054610738906157c8565b80156107855780601f1061075a57610100808354040283529160200191610785565b820191906000526020600020905b81548152906001019060200180831161076857829003601f168201915b5050505050905090565b60003361079d8185856124f8565b60019150505b92915050565b326107e6576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b60006002838360008181106107fd576107fd615802565b90506020020135101561082b578282600481811061081d5761081d615802565b905060200201359050610878565b8282600081811061083e5761083e615802565b9050602002013560020361085f578282600181811061081d5761081d615802565b604051638db3755d60e01b815260040160405180910390fd5b610882818561261c565b61089f57604051638db3755d60e01b815260040160405180910390fd5b50505050565b6000336108b3858285612647565b6108be8585856126d3565b60019150505b9392505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336108f782826123cd565b61089f3085856126d3565b3360008181526034602090815260408083206001600160a01b038716845290915281205490919061079d908290869061093c90879061582e565b6124f8565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361096d82826123cd565b6109788585856128ad565b5050505050565b60003361098c82826123cd565b6106f883612a69565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a6109ce610a7e565b6040518263ffffffff1660e01b81526004016109ec91815260200190565b600060405180830381865afa158015610a09573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a319190810190615841565b905090565b6060610a627fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336123cd565b610a7187878888888888612ac2565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610aae575060985490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461070c906157c8565b6060803215610af057600080fd5b610af8612b2f565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610b2e82826123cd565b60008b67ffffffffffffffff811115610b4957610b496154aa565b604051908082528060200260200182016040528015610b72578160200160208202803683370190505b50905060005b8c811015610c3e578d8d82818110610b9257610b92615802565b9050602002016020810190610ba7919061525e565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1191906158d0565b828281518110610c2357610c23615802565b6020908102919091010152610c37816158e9565b9050610b78565b50610c788d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610c9357610c936154aa565b604051908082528060200260200182016040528015610cbc578160200160208202803683370190505b50905060005b8d811015610d88578e8e82818110610cdc57610cdc615802565b9050602002016020810190610cf1919061525e565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5b91906158d0565b828281518110610d6d57610d6d615802565b6020908102919091010152610d81816158e9565b9050610cc2565b506000610dc98d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612cac915050565b9050610dd88f8f848d8d612dab565b6000610e258e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612cac565b90506000610e338383612fbd565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610e618585615902565b8787604051610e739493929190615915565b60405180910390a196505050505050509998505050505050505050565b3360008181526034602090815260408083206001600160a01b038716845290915281205490919083811015610f325760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610f3f82868684036124f8565b506001949350505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050600181600081518110610f8557610f85615802565b6020908102919091010152919050565b60003361079d8185856126d3565b600054610100900460ff1615808015610fc35750600054600160ff909116105b80610fdd5750303b158015610fdd575060005460ff166001145b61104f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610f29565b6000805460ff191660011790558015611072576000805461ff0019166101001790555b61107d85600061304b565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a6110b6610a7e565b6040518263ffffffff1660e01b81526004016110d491815260200190565b600060405180830381865afa1580156110f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111199190810190615841565b90508051600114158061117857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168160008151811061116457611164615802565b60200260200101516001600160a01b031614155b156111a157611185610a7e565b604051634b1f57ad60e01b8152600401610f2991815260200190565b6111aa85612a69565b6111b384612491565b609a805460ff19168415151790556040805160028082526060820183529091602083019080368337505081516111f0926099925060200190614fb1565b506111fb6000613233565b609960008154811061120f5761120f615802565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506112476001613233565b609960018154811061125b5761125b615802565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550508015610978576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6113086040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6113327fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336123cd565b6000806113426060850185615946565b905067ffffffffffffffff81111561135c5761135c6154aa565b604051908082528060200260200182016040528015611385578160200160208202803683370190505b50905060005b6113986060860186615946565b905081101561148a576113ae6060860186615946565b828181106113be576113be615802565b90506020020160208101906113d3919061525e565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143d91906158d0565b82828151811061144f5761144f615802565b602002602001018181525050600082828151811061146f5761146f615802565b6020026020010151111561148257600192505b60010161138b565b5061149c816106226040870187615946565b6114b160a08501356102c16040870187615946565b6114b961502a565b6114c78561010001356132aa565b604085015260006114fd6114de6060880188615946565b6114eb60208a018a615946565b6114f860408c018c615946565b6132b9565b905064e8d4a510008560400151826115159190615990565b61151f91906159d6565b6115299082615a04565b8560400181815161153a9190615a04565b90525050604084015161155190610120870161346d565b506115aa6115626080870187615946565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506115a592505050610100880160e0890161525e565b612cac565b81526000808060a088013586156116d55760006115ce6101008b0160e08c0161525e565b6001600160a01b031663a2d2657f6115e960608d018d615946565b8a8e80608001906115fa9190615946565b6040518663ffffffff1660e01b815260040161161a959493929190615a24565b602060405180830381865afa158015611637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165b91906158d0565b905064e8d4a5100061166c60355490565b10156116855761167e816103e8615acf565b93506116bf565b8551156116a657855160355461169c908390615acf565b61167e9190615ae6565b60405163483ecd2f60e11b815260040160405180910390fd5b818410156116cf578394506116d3565b8194505b505b60006116e460608b018b615946565b905067ffffffffffffffff8111156116fe576116fe6154aa565b604051908082528060200260200182016040528015611727578160200160208202803683370190505b509050600082851115611b4c5785156117e85760005b61174a60608d018d615946565b90508110156117e25785878a838151811061176757611767615802565b6020026020010151028161177d5761177d6159c0565b0483828151811061179057611790615802565b6020026020010181815250508281815181106117ae576117ae615802565b60200260200101518982815181106117c8576117c8615802565b60209081029190910101805191909103905260010161173d565b50600190505b6000885167ffffffffffffffff811115611804576118046154aa565b60405190808252806020026020018201604052801561182d578160200160208202803683370190505b509050600061183c8d80615946565b905011156119ec576118a561185460608e018e615946565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061089f9190615946565b60005b6118b560608e018e615946565b90508110156119e6578981815181106118d0576118d0615802565b60200260200101518282815181106118ea576118ea615802565b60200260200101818152505083818151811061190857611908615802565b60200260200101518d80606001906119209190615946565b8381811061193057611930615802565b9050602002016020810190611945919061525e565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561198b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119af91906158d0565b6119b99190615902565b8a82815181106119cb576119cb615802565b60209081029190910101526119df816158e9565b90506118a8565b50611a4e565b60005b6119fc60608e018e615946565b9050811015611a4c57898181518110611a1757611a17615802565b6020026020010151828281518110611a3157611a31615802565b6020908102919091010152611a45816158e9565b90506119ef565b505b611a74611a5e60608e018e615946565b8b8f8060400190611a6f9190615946565b612dab565b611ad7611a8460808e018e615946565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906115a5919061525e565b602089018190528851611ae991612fbd565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611b2091615902565b838c604051611b329493929190615915565b60405180910390a1611b44878661582e565b945050611d7d565b84831115611d0e578515611b635785830392508593505b611b89611b7360608d018d615946565b858e8060400190611b849190615946565b6135e7565b611b93308461379e565b506001611be9611ba660808d018d615946565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506115a5925050506101008e0160e08f0161525e565b602088015260005b611bfe60608d018d615946565b9050811015611cc857611c1460608d018d615946565b82818110611c2457611c24615802565b9050602002016020810190611c39919061525e565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca391906158d0565b838281518110611cb557611cb5615802565b6020908102919091010152600101611bf1565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611d01918691908690615afa565b60405180910390a1611d7d565b8515611d755782935060005b611d2760608d018d615946565b9050811015611d6f57888181518110611d4257611d42615802565b6020026020010151838281518110611d5c57611d5c615802565b6020908102919091010152600101611d1a565b50600190505b865160208801525b8015611e185760005b611d9360608d018d615946565b9050811015611e1657611e0e611daf60e08e0160c08f0161525e565b848381518110611dc157611dc1615802565b60200260200101518e8060600190611dd99190615946565b85818110611de957611de9615802565b9050602002016020810190611dfe919061525e565b6001600160a01b031691906138d2565b600101611d86565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b6060610a31613962565b3261200f57604080516003808252608082019092526000916020820160608036833701905050905083600081518110611e8757611e87615802565b602002602001015181600081518110611ea257611ea2615802565b6020908102919091010152604051634903b0d160e01b815260006004820152734d9f9d15101eec665f77210cb999639f760f831e90634903b0d190602401602060405180830381865afa158015611efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2191906158d0565b81600181518110611f3457611f34615802565b6020908102919091010152604051634903b0d160e01b815260016004820152734d9f9d15101eec665f77210cb999639f760f831e90634903b0d190602401602060405180830381865afa158015611f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb391906158d0565b81600281518110611fc657611fc6615802565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051612001919061538e565b60405180910390a150505050565b60028282600081811061202457612024615802565b90506020020135111561204a5760405163fb4ec93960e01b815260040160405180910390fd5b6120878282600181811061206057612060615802565b905060200201358460008151811061207a5761207a615802565b602002602001015161261c565b158061212c575061212a828260028181106120a4576120a4615802565b604051634903b0d160e01b8152600060048201526020909102929092013591734d9f9d15101eec665f77210cb999639f760f831e9150634903b0d1906024015b602060405180830381865afa158015612101573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212591906158d0565b61261c565b155b8061218e575061218c8282600381811061214857612148615802565b604051634903b0d160e01b8152600160048201526020909102929092013591734d9f9d15101eec665f77210cb999639f760f831e9150634903b0d1906024016120e4565b155b156106f85760405163fb4ec93960e01b815260040160405180910390fd5b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336121da82826123cd565b6121e48585612cac565b92505b505092915050565b60606097805461070c906157c8565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361222a82826123cd565b61089f8430856126d3565b604051632474521560e21b81527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156122c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e69190615b19565b15801561239e5750604051632474521560e21b81527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015612378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239c9190615b19565b155b156123be57604051637ab612a360e01b8152336004820152602401610f29565b610a7187308888888888612ac2565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa15801561243a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245e9190615b19565b61248d576040516301d4003760e61b8152600481018390526001600160a01b0382166024820152604401610f29565b5050565b600081600f0b13806124b257506124ac64e8d4a51000615b36565b81600f0b125b156124d05760405163c52a9bd360e01b815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff928316600160801b029216919091179055565b6001600160a01b03831661255a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610f29565b6001600160a01b0382166125bb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610f29565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061262d6001600160801b615902565b831682108061263f5750608083901c82115b159392505050565b6001600160a01b03838116600090815260346020908152604080832093861683529290522054600019811461089f57818110156126c65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610f29565b61089f84848484036124f8565b6001600160a01b03831661274f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610f29565b6001600160a01b0382166127b15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610f29565b6001600160a01b038316600090815260336020526040902054818110156128405760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610f29565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128a09086815260200190565b60405180910390a361089f565b828260008181106128c0576128c0615802565b905060200201356003146128e757604051639a0c2cff60e01b815260040160405180910390fd5b60006129396128f560355490565b6129028560018189615b52565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613a9a92505050565b90503261299a577f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a9060008083604051602001612975919061538e565b60408051601f1981840301815290829052612991939291615b80565b60405180910390a15b60005b600281101561097857612a6183609983815481106129bd576129bd615802565b6000918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3291906158d0565b60998481548110612a4557612a45615802565b6000918252602090912001546001600160a01b031691906138d2565b60010161299d565b600081600f0b1215612a8e5760405163c52a9bd360e01b815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff92909216919091179055565b60606000612ad386868b8787613d31565b9050612adf888a61379e565b60005b85811015612b2257612b1a88838381518110612b0057612b00615802565b6020026020010151898985818110611de957611de9615802565b600101612ae2565b5098975050505050505050565b6060806000612b3c613f46565b90506000815167ffffffffffffffff811115612b5a57612b5a6154aa565b604051908082528060200260200182016040528015612b83578160200160208202803683370190505b50905060005b8251811015612ca2576000838281518110612ba657612ba6615802565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612bf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1a91906158d0565b90508015612c9957612c797f000000000000000000000000000000000000000000000000000000000000000082868581518110612c5957612c59615802565b60200260200101516001600160a01b03166138d29092919063ffffffff16565b80838381518110612c8c57612c8c615802565b6020026020010181815250505b50600101612b89565b5090939092509050565b6000816001600160a01b0316639115900c7f0000000000000000000000000000000000000000000000000000000000000000612ce6613962565b600081518110612cf857612cf8615802565b602002602001015186600081518110612d1357612d13615802565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401602060405180830381865afa158015612d87573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c491906158d0565b600082826000818110612dc057612dc0615802565b90506020020135600003612dd657506006612e18565b82826000818110612de957612de9615802565b90506020020135600203612dff57506004612e18565b604051630a93eb2160e31b815260040160405180910390fd5b600080612e4186600081518110612e3157612e31615802565b602002602001015186868661407c565b90925090506000612e74838787612e5988600261582e565b818110612e6857612e68615802565b90506020020135614321565b905032612fb25760408051600580825260c082019092526000916020820160a08036833701905050905060005b8451811015612f3557838181518110612ebc57612ebc615802565b6020026020010151828281518110612ed657612ed6615802565b602002602001018181525050848181518110612ef457612ef4615802565b602002602001015182826002612f0a919061582e565b81518110612f1a57612f1a615802565b6020908102919091010152612f2e816158e9565b9050612ea1565b508181600481518110612f4a57612f4a615802565b6020026020010181815250507f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a906001600083604051602001612f8c919061538e565b60408051601f1981840301815290829052612fa8939291615b80565b60405180910390a1505b505050505050505050565b600080612fc960355490565b905064e8d4a5100081101561301157612fe46103e884615acf565b915064e8d4a5100081900380831015612ffa5750815b808303925061300b61dead826144c1565b5061303a565b83156116a65783816130238286615902565b61302d9190615acf565b6130379190615ae6565b91505b61304430836144c1565b5092915050565b600054610100900460ff166130b65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610f29565b81516000036130d85760405163c52a9bd360e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000613125578061311b576040516336307dff60e01b815260040160405180910390fd5b6098819055613144565b8015613144576040516336307dff60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e065ce6e61317b610a7e565b6040518263ffffffff1660e01b815260040161319991815260200190565b60006040518083038186803b1580156131b157600080fd5b505afa1580156131c5573d6000803e3d6000fd5b5050505081609790816131d89190615be7565b5061248d6040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020016214d4d560ea1b815250614582565b60405163c661065760e01b815260048101829052600090734d9f9d15101eec665f77210cb999639f760f831e9063c661065790602401602060405180830381865afa158015613286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190615ca7565b60006132b5826145f7565b5090565b6000806002848460008181106132d1576132d1615802565b9050602002013510156132e6575060056132ff565b6040516356c044f560e01b815260040160405180910390fd5b600085900361330e5750610a74565b6000613318612b2f565b50905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166367c15262838a8a6099306040518663ffffffff1660e01b8152600401613372959493929190615d2b565b6000604051808303816000875af1158015613391573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133b99190810190615e4e565b905060006133c5614653565b905060006133df83898988818110612e6857612e68615802565b90503261343057604080516001815260208101839052606081830181905260009082015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15b818261343a614653565b6134449190615902565b6134539064e8d4a51000615acf565b61345d9190615ae6565b9c9b505050505050505050505050565b6000808313156107a35782600061348b64e8d4a51000612710615acf565b61349b6080860160608701615ed4565b6bffffffffffffffffffffffff166134b96040870160208801615ed4565b6134d3906bffffffffffffffffffffffff16612710615902565b6134dd9190615902565b6134e79084615acf565b6134f1919061582e565b90506000826134ff60355490565b6135099190615acf565b905060008261351e6040880160208901615ed4565b613536906bffffffffffffffffffffffff1684615acf565b6135409190615ae6565b9050613558613552602088018861525e565b826144c1565b60008361356b6080890160608a01615ed4565b613583906bffffffffffffffffffffffff1685615acf565b61358d9190615ae6565b90506135a26135526060890160408a0161525e565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b6000828260008181106135fc576135fc615802565b9050602002013560010361362b578282600681811061361d5761361d615802565b9050602002013590506136eb565b8282600081811061363e5761363e615802565b9050602002013560020361365f578282600281811061361d5761361d615802565b8282600081811061367257613672615802565b90506020020135600303613693578282600181811061361d5761361d615802565b828260008181106136a6576136a6615802565b9050602002013560001480156136ba575032155b156136d2578282600681811061361d5761361d615802565b604051639a0c2cff60e01b815260040160405180910390fd5b604080516002808252606082018352600092613717928892909160208301908036833701905050613a9a565b90506000613724826146c9565b90508281101561374757604051639a0c2cff60e01b815260040160405180910390fd5b326137945760408051600080825260208201849052606082840181905282015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15b5050505050505050565b6001600160a01b0382166137fe5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610f29565b6001600160a01b038216600090815260336020526040902054818110156138725760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610f29565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b0383166024820152604481018290526106f890849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614823565b60408051600180825281830190925260609160208083019080368337019050509050600061398e614653565b90506000734d9f9d15101eec665f77210cb999639f760f831e6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a0891906158d0565b90508082613a166000614908565b613a209190615acf565b613a2a9190615ae6565b83600081518110613a3d57613a3d615802565b6020026020010181815250508082613a556001614908565b613a5f9190615acf565b613a699190615ae6565b83600081518110613a7c57613a7c615802565b60200260200101818151613a90919061582e565b9052509192915050565b60606000613aa760355490565b6040516370a0823160e01b8152306004820152859073c3d0b8170e105d6476fe407934492930cac3bdac906370a0823190602401602060405180830381865afa158015613af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b1c91906158d0565b613b269190615acf565b613b309190615ae6565b604051636197390160e11b8152600481018290526000602482015290915073c3d0b8170e105d6476fe407934492930cac3bdac9063c32e7202906044016020604051808303816000875af1158015613b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb09190615b19565b506040516370a0823160e01b8152306004820152734d9f9d15101eec665f77210cb999639f760f831e906370a0823190602401602060405180830381865afa158015613c00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2491906158d0565b9050613c30818461497f565b60995467ffffffffffffffff811115613c4b57613c4b6154aa565b604051908082528060200260200182016040528015613c74578160200160208202803683370190505b50915060005b6099548110156121e75760998181548110613c9757613c97615802565b6000918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d0c91906158d0565b838281518110613d1e57613d1e615802565b6020908102919091010152600101613c7a565b60608467ffffffffffffffff811115613d4c57613d4c6154aa565b604051908082528060200260200182016040528015613d75578160200160208202803683370190505b50905060005b85811015613e4157868682818110613d9557613d95615802565b9050602002016020810190613daa919061525e565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e1491906158d0565b828281518110613e2657613e26615802565b6020908102919091010152613e3a816158e9565b9050613d7b565b50613e4f86868686866135e7565b60005b85811015613f3c57818181518110613e6c57613e6c615802565b6020026020010151878783818110613e8657613e86615802565b9050602002016020810190613e9b919061525e565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f0591906158d0565b613f0f9190615902565b828281518110613f2157613f21615802565b6020908102919091010152613f35816158e9565b9050613e52565b5095945050505050565b609a54604051637050ccd960e01b815230600482015260ff9091161515602482015260609073c3d0b8170e105d6476fe407934492930cac3bdac90637050ccd9906044016020604051808303816000875af1158015613fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fcd9190615b19565b5060408051600280825260608201835260009260208301908036833701905050905073d533a949740bb3306d119cc777fa900ba034cd528160008151811061401757614017615802565b60200260200101906001600160a01b031690816001600160a01b031681525050734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b8160018151811061405f5761405f615802565b6001600160a01b0390921660209283029190910190910152919050565b60408051600280825260608083018452928392919060208301908036833750506040805160028082526060820183529395509291506020830190803683370190505090506140c986614a45565b60006140d56000614908565b90506140e16001614908565b6140eb908261582e565b6140f58289615acf565b6140ff9190615ae6565b8260008151811061411257614112615802565b6020026020010181815250508160008151811061413157614131615802565b6020026020010151876141449190615902565b8260018151811061415757614157615802565b602002602001018181525050731516eb3a54377168b6b184326200f4258c3529df6325ded5868360008151811061419057614190615802565b60200260200101518888888181106141aa576141aa615802565b905060200201356040518363ffffffff1660e01b81526004016141d7929190918252602082015260400190565b602060405180830381865af41580156141f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061421891906158d0565b8360008151811061422b5761422b615802565b60200260200101818152505073e23681baa697ef5054e2d8c397ae59145027625d6325ded5868360018151811061426457614264615802565b6020026020010151888888600161427b919061582e565b81811061428a5761428a615802565b905060200201356040518363ffffffff1660e01b81526004016142b7929190918252602082015260400190565b602060405180830381865af41580156142d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142f891906158d0565b8360018151811061430b5761430b615802565b6020026020010181815250505094509492505050565b6000805b60028110156143955761438d6099828154811061434457614344615802565b6000918252602090912001546001600160a01b0316734d9f9d15101eec665f77210cb999639f760f831e86848151811061438057614380615802565b6020026020010151614abb565b600101614325565b506143a08383614ad9565b6040516370a0823160e01b8152306004820152734d9f9d15101eec665f77210cb999639f760f831e906370a0823190602401602060405180830381865afa1580156143ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061441391906158d0565b9050614448734d9f9d15101eec665f77210cb999639f760f831e73f403c135812408bfbe8713b5a23a04b3d48aae3183614abb565b6040516321d0683360e11b815260a16004820152602481018290526001604482015273f403c135812408bfbe8713b5a23a04b3d48aae31906343a0d06690606401600060405180830381600087803b1580156144a357600080fd5b505af11580156144b7573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0382166145175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610f29565b8060356000828254614529919061582e565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600054610100900460ff166145ed5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610f29565b61248d8282614b68565b609654600f0b8113156146205760405163e4efd19b60e01b815260048101829052602401610f29565b609654600160801b9004600f0b811215614650576040516375552ff360e11b815260048101829052602401610f29565b50565b6040516370a0823160e01b815230600482015260009073c3d0b8170e105d6476fe407934492930cac3bdac906370a0823190602401602060405180830381865afa1580156146a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3191906158d0565b6000731516eb3a54377168b6b184326200f4258c3529df636e286671836000815181106146f8576146f8615802565b602002602001015160006040518363ffffffff1660e01b8152600401614728929190918252602082015260400190565b602060405180830381865af4158015614745573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061476991906158d0565b905073e23681baa697ef5054e2d8c397ae59145027625d636e2866718360018151811061479857614798615802565b602002602001015160006040518363ffffffff1660e01b81526004016147c8929190918252602082015260400190565b602060405180830381865af41580156147e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061480991906158d0565b614813908261582e565b905061481e81614bec565b919050565b6000614878826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614c639092919063ffffffff16565b8051909150156106f857808060200190518101906148969190615b19565b6106f85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610f29565b604051634903b0d160e01b815260048101829052600090734d9f9d15101eec665f77210cb999639f760f831e90634903b0d190602401602060405180830381865afa15801561495b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a391906158d0565b61498761502a565b60005b60028110156149d4578281815181106149a5576149a5615802565b60200260200101518282600281106149bf576149bf615802565b60200201526149cd816158e9565b905061498a565b506040516316cd8e2760e21b8152734d9f9d15101eec665f77210cb999639f760f831e90635b36389c90614a0e9086908590600401615f25565b600060405180830381600087803b158015614a2857600080fd5b505af1158015614a3c573d6000803e3d6000fd5b50505050505050565b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015614aa757600080fd5b505af1158015610978573d6000803e3d6000fd5b614ac58383614c7a565b6106f86001600160a01b0384168383614d05565b614ae161502a565b60005b8351811015614b2e57838181518110614aff57614aff615802565b6020026020010151828260028110614b1957614b19615802565b6020020152614b27816158e9565b9050614ae4565b50604051630b4c7e4d60e01b8152734d9f9d15101eec665f77210cb999639f760f831e90630b4c7e4d90614a0e9084908690600401615f39565b600054610100900460ff16614bd35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610f29565b6036614bdf8382615be7565b5060376106f88282615be7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015614c4757600080fd5b505af1158015614c5b573d6000803e3d6000fd5b505050505050565b6060614c728484600085614e21565b949350505050565b604051636eb1769f60e11b81523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614cee91906158d0565b111561248d5761248d6001600160a01b0383168260005b801580614d7f5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d7d91906158d0565b155b614df15760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610f29565b6040516001600160a01b0383166024820152604481018290526106f890849063095ea7b360e01b906064016138fe565b606082471015614e995760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610f29565b600080866001600160a01b03168587604051614eb59190615f54565b60006040518083038185875af1925050503d8060008114614ef2576040519150601f19603f3d011682016040523d82523d6000602084013e614ef7565b606091505b5091509150614f0887838387614f13565b979650505050505050565b60608315614f82578251600003614f7b576001600160a01b0385163b614f7b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f29565b5081614c72565b614c728383815115614f975781518083602001fd5b8060405162461bcd60e51b8152600401610f2991906150da565b82805482825590600052602060002090810192821561501e579160200282015b8281111561501e57825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190614fd1565b506132b5929150615048565b60405180604001604052806002906020820280368337509192915050565b5b808211156132b55760008155600101615049565b8035600f81900b811461481e57600080fd5b60006020828403121561508157600080fd5b6108c48261505d565b60005b838110156150a557818101518382015260200161508d565b50506000910152565b600081518084526150c681602086016020860161508a565b601f01601f19169290920160200192915050565b6020815260006108c460208301846150ae565b6001600160a01b038116811461465057600080fd5b6000806040838503121561511557600080fd5b8235615120816150ed565b946020939093013593505050565b60008083601f84011261514057600080fd5b50813567ffffffffffffffff81111561515857600080fd5b6020830191508360208260051b850101111561517357600080fd5b9250929050565b60008060006040848603121561518f57600080fd5b83359250602084013567ffffffffffffffff8111156151ad57600080fd5b6151b98682870161512e565b9497909650939450505050565b6000806000606084860312156151db57600080fd5b83356151e6816150ed565b925060208401356151f6816150ed565b929592945050506040919091013590565b60008060006040848603121561521c57600080fd5b833567ffffffffffffffff81111561523357600080fd5b61523f8682870161512e565b9094509250506020840135615253816150ed565b809150509250925092565b60006020828403121561527057600080fd5b81356108c4816150ed565b600081518084526020808501945080840160005b838110156152b45781516001600160a01b03168752958201959082019060010161528f565b509495945050505050565b6020815260006108c4602083018461527b565b600080600080600080608087890312156152eb57600080fd5b8635955060208701356152fd816150ed565b9450604087013567ffffffffffffffff8082111561531a57600080fd5b6153268a838b0161512e565b9096509450606089013591508082111561533f57600080fd5b5061534c89828a0161512e565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b838110156152b457815187529582019590820190600101615372565b6020815260006108c4602083018461535e565b6040815260006153b4604083018561527b565b82810360208401526153c6818561535e565b95945050505050565b600080600080600080600080600060a08a8c0312156153ed57600080fd5b893567ffffffffffffffff8082111561540557600080fd5b6154118d838e0161512e565b909b50995060208c013591508082111561542a57600080fd5b6154368d838e0161512e565b909950975060408c0135915061544b826150ed565b90955060608b0135908082111561546157600080fd5b61546d8d838e0161512e565b909650945060808c013591508082111561548657600080fd5b506154938c828d0161512e565b915080935050809150509295985092959850929598565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156154e9576154e96154aa565b604052919050565b801515811461465057600080fd5b803561481e816154f1565b6000806000806080858703121561552057600080fd5b843567ffffffffffffffff8082111561553857600080fd5b818701915087601f83011261554c57600080fd5b8135602082821115615560576155606154aa565b615572601f8301601f191682016154c0565b9250818352898183860101111561558857600080fd5b818185018285013760008183850101528297506155a6818a0161505d565b9650505050506155b86040860161505d565b91506155c6606086016154ff565b905092959194509250565b6000602082840312156155e357600080fd5b813567ffffffffffffffff8111156155fa57600080fd5b82016101a081850312156108c457600080fd5b60208152815160208201526000602083015160a0604084015261563360c084018261535e565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff821115615677576156776154aa565b5060051b60200190565b600082601f83011261569257600080fd5b813560206156a76156a28361565d565b6154c0565b82815260059290921b840181019181810190868411156156c657600080fd5b8286015b848110156156e157803583529183019183016156ca565b509695505050505050565b60008060006040848603121561570157600080fd5b833567ffffffffffffffff8082111561571957600080fd5b61572587838801615681565b9450602086013591508082111561573b57600080fd5b506151b98682870161512e565b6000806040838503121561575b57600080fd5b823567ffffffffffffffff81111561577257600080fd5b61577e85828601615681565b925050602083013561578f816150ed565b809150509250929050565b600080604083850312156157ad57600080fd5b82356157b8816150ed565b9150602083013561578f816150ed565b600181811c908216806157dc57607f821691505b6020821081036157fc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156107a3576107a3615818565b6000602080838503121561585457600080fd5b825167ffffffffffffffff81111561586b57600080fd5b8301601f8101851361587c57600080fd5b805161588a6156a28261565d565b81815260059190911b820183019083810190878311156158a957600080fd5b928401925b82841015614f085783516158c1816150ed565b825292840192908401906158ae565b6000602082840312156158e257600080fd5b5051919050565b6000600182016158fb576158fb615818565b5060010190565b818103818111156107a3576107a3615818565b848152836020820152608060408201526000615934608083018561535e565b8281036060840152614f08818561535e565b6000808335601e1984360301811261595d57600080fd5b83018035915067ffffffffffffffff82111561597857600080fd5b6020019150600581901b360382131561517357600080fd5b80820260008212600160ff1b841416156159ac576159ac615818565b81810583148215176107a3576107a3615818565b634e487b7160e01b600052601260045260246000fd5b6000826159e5576159e56159c0565b600160ff1b8214600019841416156159ff576159ff615818565b500590565b80820182811260008312801582168215821617156121e7576121e7615818565b6060808252810185905260008660808301825b88811015615a67578235615a4a816150ed565b6001600160a01b0316825260209283019290910190600101615a37565b508381036020850152615a7a818861535e565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115615ab557600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176107a3576107a3615818565b600082615af557615af56159c0565b500490565b8381528260208201526060604082015260006153c6606083018461535e565b600060208284031215615b2b57600080fd5b81516108c4816154f1565b6000600160ff1b8201615b4b57615b4b615818565b5060000390565b60008085851115615b6257600080fd5b83861115615b6f57600080fd5b5050600583901b0193919092039150565b83151581528260208201526060604082015260006153c660608301846150ae565b601f8211156106f857600081815260208120601f850160051c81016020861015615bc85750805b601f850160051c820191505b81811015614c5b57828155600101615bd4565b815167ffffffffffffffff811115615c0157615c016154aa565b615c1581615c0f84546157c8565b84615ba1565b602080601f831160018114615c4a5760008415615c325750858301515b600019600386901b1c1916600185901b178555614c5b565b600085815260208120601f198616915b82811015615c7957888601518255948401946001909101908401615c5a565b5085821015615c975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215615cb957600080fd5b81516108c4816150ed565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000815480845260208085019450836000528060002060005b838110156152b45781546001600160a01b031687529582019560019182019101615d06565b608081526000615d3e608083018861527b565b602083820381850152818783528183019050818860051b8401018960005b8a811015615e1f57858303601f190184528135368d9003605e19018112615d8257600080fd5b8c0160608135615d91816150ed565b6001600160a01b0390811686528288013590615dac826150ed565b168588015260408281013536849003601e19018112615dca57600080fd5b90920187810192903567ffffffffffffffff811115615de857600080fd5b803603841315615df757600080fd5b8282880152615e098388018286615cc4565b9789019796505050928601925050600101615d5c565b50508581036040870152615e338189615ced565b945050505050610a7460608301846001600160a01b03169052565b60006020808385031215615e6157600080fd5b825167ffffffffffffffff811115615e7857600080fd5b8301601f81018513615e8957600080fd5b8051615e976156a28261565d565b81815260059190911b82018301908381019087831115615eb657600080fd5b928401925b82841015614f0857835182529284019290840190615ebb565b600060208284031215615ee657600080fd5b81356bffffffffffffffffffffffff811681146108c457600080fd5b8060005b600281101561089f578151845260209384019390910190600101615f06565b828152606081016108c46020830184615f02565b60608101615f478285615f02565b8260408301529392505050565b60008251615f6681846020870161508a565b919091019291505056fea26469706673582212200c611036a7d53f800072f718c71ac780d7ffb215cff4dd83fdc616dd89c7ed4264736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000000000000000000000000000000000000000000100000000000000000000000033e52c206d584550193e642c8982f2fff6339994", + "nonce": "0x24", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x09cca5869aba203fdfa3ef4e892dbcd866e1e6bbdcafa66ceb9f6d175ce8ab63", + "transactionIndex": "0x7", + "blockHash": "0x42088a0ce39fea8f046a520037679317db19be236bcc63eee6ccadfecb8726af", + "blockNumber": "0x1328b5c", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x5d6751", + "gasUsed": "0x518831", + "contractAddress": "0xbca4677aD780bF59FBdF6194a145cf00A1a7c12b", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x21063a243" + }, + { + "transactionHash": "0x4304ade96153318d90ebb56ce7cb179759ea407d434a5cd6c4d14032b1699240", + "transactionIndex": "0xe", + "blockHash": "0xbc10b39c4aab9086ce222a8a2dbae57e9da4fe9eea09a03f2ee3cb4fd0949e8f", + "blockNumber": "0x1328b5d", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x685e59", + "gasUsed": "0x518c57", + "contractAddress": "0x7f47E9e456F7a74c4D44Cc56B08CbAFFf6BF95e8", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x21a03bbbd" + } + ], + "libraries": [ + "script/helper/ArraysHelper.sol:ArraysHelper:0x7dF191D01252D2C0BABf77c725c63D69fe6EAA1a", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0", + "src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1", + "src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89", + "src/strategies/libraries/EthFrxEthAssetGroupAdapter.sol:EthFrxEthAssetGroupAdapter:0xE23681bAA697EF5054E2D8C397ae59145027625D", + "src/strategies/libraries/EthStEthAssetGroupAdapter.sol:EthStEthAssetGroupAdapter:0x1516eb3a54377168b6b184326200f4258C3529dF" + ], + "pending": [], + "returns": {}, + "timestamp": 1718363882, + "chain": 1, + "multi": false, + "commit": "d367aee" +} \ No newline at end of file diff --git a/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718364699.json b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718364699.json new file mode 100644 index 00000000..2a1f920c --- /dev/null +++ b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718364699.json @@ -0,0 +1,113 @@ +{ + "transactions": [ + { + "hash": "0x948b6b0c3b38f1b9c739f0c934568bc988eca7e238e7af43256e56b4fd5d2b10", + "transactionType": "CREATE", + "contractName": "Curve3poolStrategy", + "contractAddress": "0xDB90a96095f53a015f6C69EF5e05f8f7B5a649fD", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "5", + "0x33E52c206d584550193E642C8982f2Fff6339994" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x697a13", + "value": "0x0", + "data": "0x6101006040523480156200001257600080fd5b5060405162006131380380620061318339810160408190526200003591620000d0565b83838383838383816001600160a01b038116620000655760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000935760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052501660e052506200012c95505050505050565b6001600160a01b0381168114620000cd57600080fd5b50565b60008060008060808587031215620000e757600080fd5b8451620000f481620000b7565b60208601519094506200010781620000b7565b6040860151606087015191945092506200012181620000b7565b939692955090935050565b60805160a05160c05160e051615f77620001ba6000396000818161038301528181612eae01526133da0152600081816109e301528181610a1101526149800152600081816108f901528181611abe01528181612b5401528181612f2001528181613bb50152818161454c0152614a1e0152600081816123ca0152818161249901526125950152615f776000f3fe608060405234801561001057600080fd5b50600436106102ad5760003560e01c80638bbcc0e71161017b578063c1a0ff4c116100d8578063ebbd6bc71161008c578063f1f5a6c311610071578063f1f5a6c3146105d7578063f7c618c1146105ea578063fc195d8c146105fd57600080fd5b8063ebbd6bc7146105bb578063f025aaed146105ce57600080fd5b8063c8d31e74116100bd578063c8d31e7414610567578063dd62ed3e1461057a578063e173ad25146105b357600080fd5b8063c1a0ff4c1461054c578063c1a7d80e1461055457600080fd5b8063a457c2d71161012f578063a6f19c8411610114578063a6f19c8414610506578063a9059cbb14610519578063beef8a711461052c57600080fd5b8063a457c2d7146104eb578063a63e8c4b146104fe57600080fd5b80639b6aaa47116101605780639b6aaa47146104a1578063a0078347146104b7578063a3ea6c97146104d857600080fd5b80638bbcc0e71461047957806395d89b411461049957600080fd5b80632ce5183f116102295780636cc14600116101dd57806371a97305116101c257806371a973051461043c5780637817bf4a1461045157806384ba89e31461047157600080fd5b80636cc146001461040057806370a082311461041357600080fd5b8063395093511161020e57806339509351146103c75780635fcbd285146103da5780636c60d9e7146103ed57600080fd5b80632ce5183f146103a5578063313ce567146103b857600080fd5b80631480fce31161028057806318160ddd1161026557806318160ddd1461035957806323b872dd1461036b5780632b3297f91461037e57600080fd5b80631480fce31461033357806316f0115b1461034657600080fd5b806301a262ed146102b257806306fdde03146102c757806307546172146102e5578063095ea7b314610310575b600080fd5b6102c56102c0366004615074565b610610565b005b6102cf61062b565b6040516102dc91906150df565b60405180910390f35b609d546102f8906001600160a01b031681565b6040516001600160a01b0390911681526020016102dc565b61032361031e366004615107565b6106bd565b60405190151581526020016102dc565b6102c561034136600461517f565b6106d7565b609b546102f8906001600160a01b031681565b6035545b6040519081526020016102dc565b6103236103793660046151cb565b610805565b6102f87f000000000000000000000000000000000000000000000000000000000000000081565b6102c56103b3366004615107565b61082b565b604051601281526020016102dc565b6103236103d5366004615107565b610862565b6099546102f8906001600160a01b031681565b6102c56103fb36600461520c565b6108a1565b6102c561040e366004615074565b6108df565b61035d610421366004615263565b6001600160a01b031660009081526033602052604090205490565b6104446108f5565b6040516102dc91906152c4565b61046461045f3660046152d7565b610996565b6040516102dc9190615393565b61035d6109de565b60965461048690600f0b81565b604051600f9190910b81526020016102dc565b6102cf610a33565b6104a9610a42565b6040516102dc9291906153a6565b609654610486907001000000000000000000000000000000009004600f0b81565b61035d6104e63660046153d4565b610a60565b6103236104f9366004615107565b610df0565b610464610eaa565b609c546102f8906001600160a01b031681565b610323610527366004615107565b610f25565b61053f61053a3660046154af565b610f33565b6040516102dc91906154eb565b610464611ab8565b6102c5610562366004615611565b611c93565b61035d61057536600461566d565b611fa4565b61035d6105883660046156bf565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6102cf611fe7565b6102c56105c9366004615107565b611ff6565b61035d609a5481565b6102c56105e53660046156f8565b61202d565b609e546102f8906001600160a01b031681565b61046461060b3660046152d7565b612373565b60003361061d8282612556565b6106268361264c565b505050565b60606036805461063a906157d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610666906157d8565b80156106b35780601f10610688576101008083540402835291602001916106b3565b820191906000526020600020905b81548152906001019060200180831161069657829003601f168201915b5050505050905090565b6000336106cb8185856126d9565b60019150505b92915050565b32610714576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b600060028383600081811061072b5761072b61580c565b905060200201351015610759578282600781811061074b5761074b61580c565b9050602002013590506107bf565b8282600081811061076c5761076c61580c565b9050602002013560020361078d578282600181811061074b5761074b61580c565b6040517fde69b99d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107c98185612831565b6107ff576040517fde69b99d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600033610813858285612869565b61081e8585856128f5565b60019150505b9392505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336108578282612556565b6107ff3085856128f5565b3360008181526034602090815260408083206001600160a01b03871684529091528120549091906106cb908290869061089c908790615838565b6126d9565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336108cd8282612556565b6108d8858585612ae9565b5050505050565b6000336108ec8282612556565b61062683612cc6565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a61092e6109de565b6040518263ffffffff1660e01b815260040161094c91815260200190565b600060405180830381865afa158015610969573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610991919081019061584b565b905090565b60606109c27fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612556565b6109d187878888888888612d47565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610a0e575060985490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461063a906157d8565b6060803215610a5057600080fd5b610a58612db6565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610a8e8282612556565b60008b67ffffffffffffffff811115610aa957610aa961553b565b604051908082528060200260200182016040528015610ad2578160200160208202803683370190505b50905060005b8c811015610b9e578d8d82818110610af257610af261580c565b9050602002016020810190610b079190615263565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7191906158da565b828281518110610b8357610b8361580c565b6020908102919091010152610b97816158f3565b9050610ad8565b50610bd88d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610bf357610bf361553b565b604051908082528060200260200182016040528015610c1c578160200160208202803683370190505b50905060005b8d811015610ce8578e8e82818110610c3c57610c3c61580c565b9050602002016020810190610c519190615263565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbb91906158da565b828281518110610ccd57610ccd61580c565b6020908102919091010152610ce1816158f3565b9050610c22565b506000610d298d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612f1b915050565b9050610d388f8f848d8d613177565b6000610d858e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612f1b565b90506000610d938383613269565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610dc1858561590d565b8787604051610dd39493929190615920565b60405180910390a196505050505050509998505050505050505050565b3360008181526034602090815260408083206001600160a01b038716845290915281205490919083811015610e925760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610e9f82868684036126d9565b506001949350505050565b604080516003808252608082019092526060916000919060208201848036833701905050905060005b6003811015610f1f57609a54610ef290610eed90836132f7565b61332b565b828281518110610f0457610f0461580c565b6020908102919091010152610f18816158f3565b9050610ed3565b50919050565b6000336106cb8185856128f5565b610f656040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b610f8f7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612556565b600080610f9f6060850185615951565b905067ffffffffffffffff811115610fb957610fb961553b565b604051908082528060200260200182016040528015610fe2578160200160208202803683370190505b50905060005b610ff56060860186615951565b90508110156110e75761100b6060860186615951565b8281811061101b5761101b61580c565b90506020020160208101906110309190615263565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109a91906158da565b8282815181106110ac576110ac61580c565b60200260200101818152505060008282815181106110cc576110cc61580c565b602002602001015111156110df57600192505b600101610fe8565b506110f9816105626040870187615951565b61110e60a08501356103416040870187615951565b611116615021565b6111248561010001356133b2565b6040850152600061115a61113b6060880188615951565b61114860208a018a615951565b61115560408c018c615951565b6133c1565b905064e8d4a51000856040015182611172919061599b565b61117c91906159e1565b6111869082615a0f565b856040018181516111979190615a0f565b9052505060408401516111ae906101208701613504565b506112076111bf6080870187615951565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061120292505050610100880160e08901615263565b612f1b565b81526000808060a0880135861561134b57600061122b6101008b0160e08c01615263565b6001600160a01b031663a2d2657f61124660608d018d615951565b8a8e80608001906112579190615951565b6040518663ffffffff1660e01b8152600401611277959493929190615a6d565b602060405180830381865afa158015611294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b891906158da565b905064e8d4a510006112c960355490565b10156112e2576112db816103e8615ae7565b9350611335565b8551156113035785516035546112f9908390615ae7565b6112db9190615afe565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561134557839450611349565b8194505b505b600061135a60608b018b615951565b905067ffffffffffffffff8111156113745761137461553b565b60405190808252806020026020018201604052801561139d578160200160208202803683370190505b5090506000828511156117c257851561145e5760005b6113c060608d018d615951565b90508110156114585785878a83815181106113dd576113dd61580c565b602002602001015102816113f3576113f36159cb565b048382815181106114065761140661580c565b6020026020010181815250508281815181106114245761142461580c565b602002602001015189828151811061143e5761143e61580c565b6020908102919091010180519190910390526001016113b3565b50600190505b6000885167ffffffffffffffff81111561147a5761147a61553b565b6040519080825280602002602001820160405280156114a3578160200160208202803683370190505b50905060006114b28d80615951565b905011156116625761151b6114ca60608e018e615951565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906107ff9190615951565b60005b61152b60608e018e615951565b905081101561165c578981815181106115465761154661580c565b60200260200101518282815181106115605761156061580c565b60200260200101818152505083818151811061157e5761157e61580c565b60200260200101518d80606001906115969190615951565b838181106115a6576115a661580c565b90506020020160208101906115bb9190615263565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611601573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162591906158da565b61162f919061590d565b8a82815181106116415761164161580c565b6020908102919091010152611655816158f3565b905061151e565b506116c4565b60005b61167260608e018e615951565b90508110156116c25789818151811061168d5761168d61580c565b60200260200101518282815181106116a7576116a761580c565b60209081029190910101526116bb816158f3565b9050611665565b505b6116ea6116d460608e018e615951565b8b8f80604001906116e59190615951565b613177565b61174d6116fa60808e018e615951565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906112029190615263565b60208901819052885161175f91613269565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc9187916117969161590d565b838c6040516117a89493929190615920565b60405180910390a16117ba8786615838565b9450506119f3565b848311156119845785156117d95785830392508593505b6117ff6117e960608d018d615951565b858e80604001906117fa9190615951565b61367e565b6118093084613797565b50600161185f61181c60808d018d615951565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611202925050506101008e0160e08f01615263565b602088015260005b61187460608d018d615951565b905081101561193e5761188a60608d018d615951565b8281811061189a5761189a61580c565b90506020020160208101906118af9190615263565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906158da565b83828151811061192b5761192b61580c565b6020908102919091010152600101611867565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611977918691908690615b12565b60405180910390a16119f3565b85156119eb5782935060005b61199d60608d018d615951565b90508110156119e5578881815181106119b8576119b861580c565b60200260200101518382815181106119d2576119d261580c565b6020908102919091010152600101611990565b50600190505b865160208801525b8015611a8e5760005b611a0960608d018d615951565b9050811015611a8c57611a84611a2560e08e0160c08f01615263565b848381518110611a3757611a3761580c565b60200260200101518e8060600190611a4f9190615951565b85818110611a5f57611a5f61580c565b9050602002016020810190611a749190615263565b6001600160a01b03169190613902565b6001016119fc565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a611af36109de565b6040518263ffffffff1660e01b8152600401611b1191815260200190565b600060405180830381865afa158015611b2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b56919081019061584b565b90506000611b626139ab565b90506000609960009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdd91906158da565b9050825167ffffffffffffffff811115611bf957611bf961553b565b604051908082528060200260200182016040528015611c22578160200160208202803683370190505b50935060005b8351811015611c8c578183611c4b610eed84609a546132f790919063ffffffff16565b611c559190615ae7565b611c5f9190615afe565b858281518110611c7157611c7161580c565b6020908102919091010152611c85816158f3565b9050611c28565b5050505090565b32611df95760408051600680825260e082019092526000916020820160c08036833701905050905060005b6003811015611dbb57848181518110611cd957611cd961580c565b6020026020010151828281518110611cf357611cf361580c565b6020908102919091010152609b546040517f4903b0d1000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690634903b0d190602401602060405180830381865afa158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8491906158da565b82611d90836003615838565b81518110611da057611da061580c565b6020908102919091010152611db4816158f3565b9050611cbe565b507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611deb9190615393565b60405180910390a150505050565b600282826000818110611e0e57611e0e61580c565b905060200201351115611e4d576040517ffca7200200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b60038110156107ff57609b546040517f4903b0d1000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b031690634903b0d190602401602060405180830381865afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee091906158da565b9050611f278484611ef2856001615838565b818110611f0157611f0161580c565b90506020020135868481518110611f1a57611f1a61580c565b6020026020010151612831565b1580611f5c5750611f5a8484611f3e856004615838565b818110611f4d57611f4d61580c565b9050602002013582612831565b155b15611f93576040517ffca7200200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50611f9d816158f3565b9050611e50565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611fd28282612556565b611fdc8585612f1b565b92505b505092915050565b60606097805461063a906157d8565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336120228282612556565b6107ff8430856128f5565b600054610100900460ff161580801561204d5750600054600160ff909116105b806120675750303b158015612067575060005460ff166001145b6120d95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610e89565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561211a576000805461ff0019166101001790555b61218b876000866001600160a01b03166382c630666040518163ffffffff1660e01b8152600401602060405180830381865afa15801561215e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121829190615b31565b888a8888613a18565b6001600160a01b0384166121cb576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609c805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155604080517f0754617200000000000000000000000000000000000000000000000000000000815290516307546172916004808201926020929091908290030181865afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226e9190615b31565b609d60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836001600160a01b03166376d8b1176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f69190615b31565b609e805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055801561236a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b50505050505050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190615b4e565b15801561250e57506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156124e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250c9190615b4e565b155b15612547576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610e89565b6109d187308888888888612d47565b6040517f91d14854000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa1580156125dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126009190615b4e565b612648576040517f75000dc0000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0382166024820152604401610e89565b5050565b600081600f0b138061266d575061266764e8d4a51000615b70565b81600f0b125b156126a4576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055565b6001600160a01b0383166127545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610e89565b6001600160a01b0382166127d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610e89565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061284f600170010000000000000000000000000000000061590d565b83168210806128615750608083901c82115b159392505050565b6001600160a01b0383811660009081526034602090815260408083209386168352929052205460001981146107ff57818110156128e85760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610e89565b6107ff84848484036126d9565b6001600160a01b0383166129715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610e89565b6001600160a01b0382166129ed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610e89565b6001600160a01b03831660009081526033602052604090205481811015612a7c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610e89565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612adc9086815260200190565b60405180910390a36107ff565b82826000818110612afc57612afc61580c565b90506020020135600314612b3c576040517f40dfc94c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b50612b476139ab565b60018585613ab9565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a612b896109de565b6040518263ffffffff1660e01b8152600401612ba791815260200190565b600060405180830381865afa158015612bc4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bec919081019061584b565b905060005b60038110156108d857612cb683838381518110612c1057612c1061580c565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8491906158da565b848481518110612c9657612c9661580c565b60200260200101516001600160a01b03166139029092919063ffffffff16565b612cbf816158f3565b9050612bf1565b600081600f0b1215612d04576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b60606000612d5886868b8787613dad565b9050612d64888a613797565b60005b85811015612da757612d9f88838381518110612d8557612d8561580c565b6020026020010151898985818110611a5f57611a5f61580c565b600101612d67565b5090505b979650505050505050565b6060806000612dc3613fc2565b90506000815167ffffffffffffffff811115612de157612de161553b565b604051908082528060200260200182016040528015612e0a578160200160208202803683370190505b50905060005b8251811015612f11576000838281518110612e2d57612e2d61580c565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea191906158da565b90508015612f0057612ee07f000000000000000000000000000000000000000000000000000000000000000082868581518110612c9657612c9661580c565b80838381518110612ef357612ef361580c565b6020026020010181815250505b50612f0a816158f3565b9050612e10565b5090939092509050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a612f556109de565b6040518263ffffffff1660e01b8152600401612f7391815260200190565b600060405180830381865afa158015612f90573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fb8919081019061584b565b9050600080612fc56139ab565b90506000609960009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561301c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304091906158da565b905060005b845181101561316b57866001600160a01b0316639115900c86838151811061306f5761306f61580c565b60200260200101518486613091610eed87609a546132f790919063ffffffff16565b61309b9190615ae7565b6130a59190615afe565b8b85815181106130b7576130b761580c565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401602060405180830381865afa15801561312b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314f91906158da565b6131599085615838565b9350613164816158f3565b9050613045565b50919695505050505050565b60008282600081811061318c5761318c61580c565b905060200201356000036131bb57828260098181106131ad576131ad61580c565b905060200201359050613221565b828260008181106131ce576131ce61580c565b905060200201356002036131ef57828260078181106131ad576131ad61580c565b6040517fdc939be700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132618686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508591506140969050565b505050505050565b60008061327560355490565b905064e8d4a510008110156132bd576132906103e884615ae7565b915064e8d4a51000819003808310156132a65750815b80830392506132b761dead826141da565b506132e6565b83156113035783816132cf828661590d565b6132d99190615ae7565b6132e39190615afe565b91505b6132f030836141da565b5092915050565b60006010821061330657600080fd5b61331460016201000061590d565b61331f836010615ae7565b84901c16905092915050565b609b546040517f4903b0d1000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b031690634903b0d190602401602060405180830381865afa15801561338e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d191906158da565b60006133bd8261429b565b5090565b600083156109d45760006133d3612db6565b50905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166367c152628389898d8d306040518763ffffffff1660e01b815260040161342e96959493929190615bb7565b6000604051808303816000875af115801561344d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526134759190810190615cf8565b905060006134816139ab565b90506134c48a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508692508a9150899050614336565b6000816134cf6139ab565b6134d9919061590d565b9050816134eb8264e8d4a51000615ae7565b6134f59190615afe565b9b9a5050505050505050505050565b6000808313156106d15782600061352264e8d4a51000612710615ae7565b6135326080860160608701615d7e565b6bffffffffffffffffffffffff166135506040870160208801615d7e565b61356a906bffffffffffffffffffffffff1661271061590d565b613574919061590d565b61357e9084615ae7565b6135889190615838565b905060008261359660355490565b6135a09190615ae7565b90506000826135b56040880160208901615d7e565b6135cd906bffffffffffffffffffffffff1684615ae7565b6135d79190615afe565b90506135ef6135e96020880188615263565b826141da565b6000836136026080890160608a01615d7e565b61361a906bffffffffffffffffffffffff1685615ae7565b6136249190615afe565b90506136396135e96060890160408a01615263565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b6000828260008181106136935761369361580c565b905060200201356001036136a957506009613761565b828260008181106136bc576136bc61580c565b905060200201356002036136d257506002613761565b828260008181106136e5576136e561580c565b905060200201356003036136fb57506001613761565b8282600081811061370e5761370e61580c565b905060200201356000148015613722575032155b1561372f57506009613761565b6040517f40dfc94c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061376c60355490565b856137756139ab565b61377f9190615ae7565b6137899190615afe565b905061236a81838686613ab9565b6001600160a01b0382166138135760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610e89565b6001600160a01b038216600090815260336020526040902054818110156138a25760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610e89565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b0383166024820152604481018290526106269084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526143ae565b609c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156139f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099191906158da565b600054610100900460ff16613a835760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610e89565b609b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03851617905561236a878787878686614493565b613ac2846146d3565b613aca61503f565b60005b6003811015613b33578383613ae28388615838565b818110613af157613af161580c565b9050602002013582613b0e83609a546132f790919063ffffffff16565b60038110613b1e57613b1e61580c565b6020020152613b2c816158f3565b9050613acd565b50609b546040517fecb586a50000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ecb586a590613b7f9088908590600401615dcf565b600060405180830381600087803b158015613b9957600080fd5b505af1158015613bad573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a613bea6109de565b6040518263ffffffff1660e01b8152600401613c0891815260200190565b600060405180830381865afa158015613c25573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c4d919081019061584b565b90506000815167ffffffffffffffff811115613c6b57613c6b61553b565b604051908082528060200260200182016040528015613c94578160200160208202803683370190505b50905060005b8251811015613d5657828181518110613cb557613cb561580c565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613d05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d2991906158da565b828281518110613d3b57613d3b61580c565b6020908102919091010152613d4f816158f3565b9050613c9a565b503261236a577f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a9060008083604051602001613d919190615393565b60408051601f1981840301815290829052612361939291615de3565b60608467ffffffffffffffff811115613dc857613dc861553b565b604051908082528060200260200182016040528015613df1578160200160208202803683370190505b50905060005b85811015613ebd57868682818110613e1157613e1161580c565b9050602002016020810190613e269190615263565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e9091906158da565b828281518110613ea257613ea261580c565b6020908102919091010152613eb6816158f3565b9050613df7565b50613ecb868686868661367e565b60005b85811015613fb857818181518110613ee857613ee861580c565b6020026020010151878783818110613f0257613f0261580c565b9050602002016020810190613f179190615263565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613f5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f8191906158da565b613f8b919061590d565b828281518110613f9d57613f9d61580c565b6020908102919091010152613fb1816158f3565b9050613ece565b5095945050505050565b60408051600180825281830190925260609160009190602080830190803683375050609e5482519293506001600160a01b0316918391506000906140085761400861580c565b6001600160a01b039283166020918202929092010152609d54609c546040517f6a6278420000000000000000000000000000000000000000000000000000000081529083166004820152911690636a62784290602401600060405180830381600087803b15801561407857600080fd5b505af115801561408c573d6000803e3d6000fd5b5092949350505050565b61409e61503f565b60005b6003811015614154578381815181106140bc576140bc61580c565b6020026020010151826140da83609a546132f790919063ffffffff16565b600381106140ea576140ea61580c565b60200201528451614144908690839081106141075761410761580c565b6020026020010151609b60009054906101000a90046001600160a01b03168684815181106141375761413761580c565b6020026020010151614746565b61414d816158f3565b90506140a1565b50609b546040517f4515cef30000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634515cef3906141a09084908690600401615e04565b600060405180830381600087803b1580156141ba57600080fd5b505af11580156141ce573d6000803e3d6000fd5b505050506107ff614764565b6001600160a01b0382166142305760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610e89565b80603560008282546142429190615838565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b609654600f0b8113156142dd576040517fe4efd19b00000000000000000000000000000000000000000000000000000000815260048101829052602401610e89565b6096547001000000000000000000000000000000009004600f0b811215614333576040517feaaa5fe600000000000000000000000000000000000000000000000000000000815260048101829052602401610e89565b50565b60018282600081811061434b5761434b61580c565b90506020020135111561438a576040517f3499a3c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107ff8484848460088181106143a2576143a261580c565b90506020020135614096565b6000614403826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166148c19092919063ffffffff16565b80519091501561062657808060200190518101906144219190615b4e565b6106265760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610e89565b600054610100900460ff166144fe5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610e89565b61450886866148d8565b6001600160a01b038416614548576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a6145816109de565b6040518263ffffffff1660e01b815260040161459f91815260200190565b600060405180830381865afa1580156145bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526145e4919081019061584b565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055905060038151146146545761461f6109de565b6040517f4b1f57ad000000000000000000000000000000000000000000000000000000008152600401610e8991815260200190565b60005b60038110156146bb5761467261466d86836132f7565b614b25565b6001600160a01b031682828151811061468d5761468d61580c565b60200260200101516001600160a01b0316146146ab5761461f6109de565b6146b4816158f3565b9050614657565b50609a8490556146ca83612cc6565b61236a8261264c565b609c546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561473257600080fd5b505af11580156108d8573d6000803e3d6000fd5b6147508383614bac565b6106266001600160a01b0384168383614c50565b6099546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156147ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147d191906158da565b609954609c549192506147f1916001600160a01b03918216911683614746565b609c546040517fb6b55f25000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b15801561485057600080fd5b505af1158015614864573d6000803e3d6000fd5b50505050614870321590565b1561433357604080516001815260208101839052606081830181905260009082015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a150565b60606148d08484600085614d9e565b949350505050565b600054610100900460ff166149435760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610e89565b815160000361497e576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006149e457806149da576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6098819055614a1c565b8015614a1c576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e065ce6e614a536109de565b6040518263ffffffff1660e01b8152600401614a7191815260200190565b60006040518083038186803b158015614a8957600080fd5b505afa158015614a9d573d6000803e3d6000fd5b505050508160979081614ab09190615e65565b506126486040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250614e85565b609b546040517fc6610657000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b03169063c661065790602401602060405180830381865afa158015614b88573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d19190615b31565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c3991906158da565b1115612648576126486001600160a01b0383168260005b801580614ce357506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ce191906158da565b155b614d555760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610e89565b6040516001600160a01b0383166024820152604481018290526106269084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613947565b606082471015614e165760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610e89565b600080866001600160a01b03168587604051614e329190615f25565b60006040518083038185875af1925050503d8060008114614e6f576040519150601f19603f3d011682016040523d82523d6000602084013e614e74565b606091505b5091509150612dab87838387614efa565b600054610100900460ff16614ef05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610e89565b6126488282614f73565b60608315614f69578251600003614f62576001600160a01b0385163b614f625760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e89565b50816148d0565b6148d08383614ff7565b600054610100900460ff16614fde5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610e89565b6036614fea8382615e65565b5060376106268282615e65565b8151156150075781518083602001fd5b8060405162461bcd60e51b8152600401610e8991906150df565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b8035600f81900b811461506f57600080fd5b919050565b60006020828403121561508657600080fd5b6108248261505d565b60005b838110156150aa578181015183820152602001615092565b50506000910152565b600081518084526150cb81602086016020860161508f565b601f01601f19169290920160200192915050565b60208152600061082460208301846150b3565b6001600160a01b038116811461433357600080fd5b6000806040838503121561511a57600080fd5b8235615125816150f2565b946020939093013593505050565b60008083601f84011261514557600080fd5b50813567ffffffffffffffff81111561515d57600080fd5b6020830191508360208260051b850101111561517857600080fd5b9250929050565b60008060006040848603121561519457600080fd5b83359250602084013567ffffffffffffffff8111156151b257600080fd5b6151be86828701615133565b9497909650939450505050565b6000806000606084860312156151e057600080fd5b83356151eb816150f2565b925060208401356151fb816150f2565b929592945050506040919091013590565b60008060006040848603121561522157600080fd5b833567ffffffffffffffff81111561523857600080fd5b61524486828701615133565b9094509250506020840135615258816150f2565b809150509250925092565b60006020828403121561527557600080fd5b8135610824816150f2565b600081518084526020808501945080840160005b838110156152b95781516001600160a01b031687529582019590820190600101615294565b509495945050505050565b6020815260006108246020830184615280565b600080600080600080608087890312156152f057600080fd5b863595506020870135615302816150f2565b9450604087013567ffffffffffffffff8082111561531f57600080fd5b61532b8a838b01615133565b9096509450606089013591508082111561534457600080fd5b5061535189828a01615133565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b838110156152b957815187529582019590820190600101615377565b6020815260006108246020830184615363565b6040815260006153b96040830185615280565b82810360208401526153cb8185615363565b95945050505050565b600080600080600080600080600060a08a8c0312156153f257600080fd5b893567ffffffffffffffff8082111561540a57600080fd5b6154168d838e01615133565b909b50995060208c013591508082111561542f57600080fd5b61543b8d838e01615133565b909950975060408c01359150615450826150f2565b90955060608b0135908082111561546657600080fd5b6154728d838e01615133565b909650945060808c013591508082111561548b57600080fd5b506154988c828d01615133565b915080935050809150509295985092959850929598565b6000602082840312156154c157600080fd5b813567ffffffffffffffff8111156154d857600080fd5b82016101a0818503121561082457600080fd5b60208152815160208201526000602083015160a0604084015261551160c0840182615363565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561557a5761557a61553b565b604052919050565b600067ffffffffffffffff82111561559c5761559c61553b565b5060051b60200190565b600082601f8301126155b757600080fd5b813560206155cc6155c783615582565b615551565b82815260059290921b840181019181810190868411156155eb57600080fd5b8286015b8481101561560657803583529183019183016155ef565b509695505050505050565b60008060006040848603121561562657600080fd5b833567ffffffffffffffff8082111561563e57600080fd5b61564a878388016155a6565b9450602086013591508082111561566057600080fd5b506151be86828701615133565b6000806040838503121561568057600080fd5b823567ffffffffffffffff81111561569757600080fd5b6156a3858286016155a6565b92505060208301356156b4816150f2565b809150509250929050565b600080604083850312156156d257600080fd5b82356156dd816150f2565b915060208301356156b4816150f2565b803561506f816150f2565b60008060008060008060c0878903121561571157600080fd5b863567ffffffffffffffff8082111561572957600080fd5b818901915089601f83011261573d57600080fd5b81356020828211156157515761575161553b565b61576381601f19601f85011601615551565b92508183528b8183860101111561577957600080fd5b81818501828501376000818385010152829950615797818c016156ed565b985050505050604087013593506157b0606088016156ed565b92506157be6080880161505d565b91506157cc60a0880161505d565b90509295509295509295565b600181811c908216806157ec57607f821691505b602082108103610f1f57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156106d1576106d1615822565b6000602080838503121561585e57600080fd5b825167ffffffffffffffff81111561587557600080fd5b8301601f8101851361588657600080fd5b80516158946155c782615582565b81815260059190911b820183019083810190878311156158b357600080fd5b928401925b82841015612dab5783516158cb816150f2565b825292840192908401906158b8565b6000602082840312156158ec57600080fd5b5051919050565b6000600019820361590657615906615822565b5060010190565b818103818111156106d1576106d1615822565b84815283602082015260806040820152600061593f6080830185615363565b8281036060840152612dab8185615363565b6000808335601e1984360301811261596857600080fd5b83018035915067ffffffffffffffff82111561598357600080fd5b6020019150600581901b360382131561517857600080fd5b80820260008212600160ff1b841416156159b7576159b7615822565b81810583148215176106d1576106d1615822565b634e487b7160e01b600052601260045260246000fd5b6000826159f0576159f06159cb565b6000198314600160ff1b83141615615a0a57615a0a615822565b500590565b8082018281126000831280158216821582161715611fdf57611fdf615822565b8183526000602080850194508260005b858110156152b9578135615a52816150f2565b6001600160a01b031687529582019590820190600101615a3f565b606081526000615a81606083018789615a2f565b8281036020840152615a938187615363565b905082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115615acd57600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176106d1576106d1615822565b600082615b0d57615b0d6159cb565b500490565b8381528260208201526060604082015260006153cb6060830184615363565b600060208284031215615b4357600080fd5b8151610824816150f2565b600060208284031215615b6057600080fd5b8151801515811461082457600080fd5b6000600160ff1b8203615b8557615b85615822565b5060000390565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b608081526000615bca6080830189615280565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615cc857601f1986840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18e3603018112615c2b57600080fd5b8d0160608135615c3a816150f2565b6001600160a01b0390811686528288013590615c55826150f2565b168588015260408281013536849003601e19018112615c7357600080fd5b90920187810192903567ffffffffffffffff811115615c9157600080fd5b803603841315615ca057600080fd5b8282880152615cb28388018286615b8c565b9789019796505050928601925050600101615be8565b50508581036040870152615cdd81898b615a2f565b945050505050612dab60608301846001600160a01b03169052565b60006020808385031215615d0b57600080fd5b825167ffffffffffffffff811115615d2257600080fd5b8301601f81018513615d3357600080fd5b8051615d416155c782615582565b81815260059190911b82018301908381019087831115615d6057600080fd5b928401925b82841015612dab57835182529284019290840190615d65565b600060208284031215615d9057600080fd5b81356bffffffffffffffffffffffff8116811461082457600080fd5b8060005b60038110156107ff578151845260209384019390910190600101615db0565b828152608081016108246020830184615dac565b83151581528260208201526060604082015260006153cb60608301846150b3565b60808101615e128285615dac565b8260608301529392505050565b601f82111561062657600081815260208120601f850160051c81016020861015615e465750805b601f850160051c820191505b8181101561326157828155600101615e52565b815167ffffffffffffffff811115615e7f57615e7f61553b565b615e9381615e8d84546157d8565b84615e1f565b602080601f831160018114615ec85760008415615eb05750858301515b600019600386901b1c1916600185901b178555613261565b600085815260208120601f198616915b82811015615ef757888601518255948401946001909101908401615ed8565b5085821015615f155787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251615f3781846020870161508f565b919091019291505056fea2646970667358221220606b837297bc9106c0de378f856043a6094d2654320f420927ba4597eaaf685a64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000000000000000000000000000000000000000000500000000000000000000000033e52c206d584550193e642c8982f2fff6339994", + "nonce": "0x25", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x1237a5a72105b01d6e5d550dea9361d8358ed2385f6312f36821ff63a511978d", + "transactionType": "CREATE", + "contractName": "MetamorphoStrategy", + "contractAddress": "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x33E52c206d584550193E642C8982f2Fff6339994" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x6a10ba", + "value": "0x0", + "data": "0x6101006040523480156200001257600080fd5b50604051620061dd380380620061dd8339810160408190526200003591620001a0565b828281816000816001600160a01b038116620000645760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000925760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390921660a0525060c05250620000b19050620000c6565b6001600160a01b031660e05250620001f49050565b600054610100900460ff1615620001335760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000185576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200019d57600080fd5b50565b600080600060608486031215620001b657600080fd5b8351620001c38162000187565b6020850151909350620001d68162000187565b6040850151909250620001e98162000187565b809150509250925092565b60805160a05160c05160e051615f77620002666000396000818161027501528181612afa0152612ea80152600081816108480152818161087601526148df01526000818161075e01528181612b9e015261497d015260008181611dd301528181611ea201526126910152615f776000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80639b6aaa471161010f578063c8d31e74116100a2578063ed7a7d0e11610071578063ed7a7d0e146104e8578063f9ae44a4146104fb578063fbfa77cf1461050e578063fc195d8c1461059a57600080fd5b8063c8d31e7414610481578063dd62ed3e14610494578063e173ad25146104cd578063ebbd6bc7146104d557600080fd5b8063a9059cbb116100de578063a9059cbb14610433578063beef8a7114610446578063c1a0ff4c14610466578063c1a7d80e1461046e57600080fd5b80639b6aaa47146103ef578063a3ea6c9714610405578063a457c2d714610418578063a63e8c4b1461042b57600080fd5b8063395093511161018757806371a973051161015657806371a97305146103aa5780637817bf4a146103bf57806384ba89e3146103df57806395d89b41146103e757600080fd5b806339509351146102d15780636c60d9e7146102e45780636e1383be146102f757806370a082311461038157600080fd5b806323b872dd116101c357806323b872dd1461025d5780632b3297f9146102705780632ce5183f146102af578063313ce567146102c257600080fd5b806306fdde03146101f5578063095ea7b3146102135780631480fce31461023657806318160ddd1461024b575b600080fd5b6101fd6105ad565b60405161020a9190614fcb565b60405180910390f35b610226610221366004615013565b61063f565b604051901515815260200161020a565b61024961024436600461508b565b610659565b005b6035545b60405190815260200161020a565b61022661026b3660046150d7565b61067a565b6102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161020a565b6102496102bd366004615013565b6106a0565b6040516012815260200161020a565b6102266102df366004615013565b6106dd565b6102496102f2366004615118565b61071c565b604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b031660208201527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254910181905261024f565b61024f61038f36600461516f565b6001600160a01b031660009081526033602052604090205490565b6103b261075a565b60405161020a91906151d0565b6103d26103cd3660046151e3565b6107fb565b60405161020a919061529f565b61024f610843565b6101fd610898565b6103f76108a7565b60405161020a9291906152b2565b61024f6104133660046152e0565b6108c5565b610226610426366004615013565b610c55565b6103d2610d0f565b610226610441366004615013565b610d5a565b6104596104543660046153bb565b610d68565b60405161020a91906153f7565b6103d26118ed565b61024961047c36600461551d565b611939565b61024f61048f366004615579565b611b46565b61024f6104a23660046155cb565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6101fd611b89565b6102496104e3366004615013565b611b98565b6102496104f6366004615609565b611bcf565b6102496105093660046156cc565b611d45565b604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221102549190920152610297565b6103d26105a83660046151e3565b611d7c565b6060603680546105bc9061570e565b80601f01602080910402602001604051908101604052809291908181526020018280546105e89061570e565b80156106355780601f1061060a57610100808354040283529160200191610635565b820191906000526020600020905b81548152906001019060200180831161061857829003601f168201915b5050505050905090565b60003361064d818585611f5f565b60019150505b92915050565b6106648383836120b7565b610675610670846121df565b612305565b505050565b6000336106888582856123d2565b61069385858561245e565b60019150505b9392505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336106cc8282612652565b6106d730858561245e565b50505050565b3360008181526034602090815260408083206001600160a01b038716845290915281205490919061064d908290869061071790879061575e565b611f5f565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336107488282612652565b610753858585612748565b5050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a610793610843565b6040518263ffffffff1660e01b81526004016107b191815260200190565b600060405180830381865afa1580156107ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107f69190810190615771565b905090565b60606108277fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612652565b61083687878888888888612883565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610873575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b6060603780546105bc9061570e565b60608032156108b557600080fd5b6108bd6128f2565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336108f38282612652565b60008b67ffffffffffffffff81111561090e5761090e615447565b604051908082528060200260200182016040528015610937578160200160208202803683370190505b50905060005b8c811015610a03578d8d8281811061095757610957615800565b905060200201602081019061096c919061516f565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d69190615816565b8282815181106109e8576109e8615800565b60209081029190910101526109fc8161582f565b905061093d565b50610a3d8d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610a5857610a58615447565b604051908082528060200260200182016040528015610a81578160200160208202803683370190505b50905060005b8d811015610b4d578e8e82818110610aa157610aa1615800565b9050602002016020810190610ab6919061516f565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b209190615816565b828281518110610b3257610b32615800565b6020908102919091010152610b468161582f565b9050610a87565b506000610b8e8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612b87915050565b9050610b9d8f8f848d8d612d15565b6000610bea8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612b87565b90506000610bf88383612d6f565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610c268585615849565b8787604051610c38949392919061585c565b60405180910390a196505050505050509998505050505050505050565b3360008181526034602090815260408083206001600160a01b038716845290915281205490919083811015610cf75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610d048286868403611f5f565b506001949350505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050600181600081518110610d4a57610d4a615800565b6020908102919091010152919050565b60003361064d81858561245e565b610d9a6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b610dc47fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612652565b600080610dd4606085018561588d565b905067ffffffffffffffff811115610dee57610dee615447565b604051908082528060200260200182016040528015610e17578160200160208202803683370190505b50905060005b610e2a606086018661588d565b9050811015610f1c57610e40606086018661588d565b82818110610e5057610e50615800565b9050602002016020810190610e65919061516f565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf9190615816565b828281518110610ee157610ee1615800565b6020026020010181815250506000828281518110610f0157610f01615800565b60200260200101511115610f1457600192505b600101610e1d565b50610f2e8161047c604087018761588d565b610f4360a0850135610244604087018761588d565b610f4b614ef9565b610f59856101000135612df6565b60408501526000610f8f610f70606088018861588d565b610f7d60208a018a61588d565b610f8a60408c018c61588d565b612e3b565b905064e8d4a51000856040015182610fa791906158d7565b610fb1919061591d565b610fbb908261594b565b85604001818151610fcc919061594b565b905250506040840151610fe39061012087016130fa565b5061103c610ff4608087018761588d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061103792505050610100880160e0890161516f565b612b87565b81526000808060a088013586156111805760006110606101008b0160e08c0161516f565b6001600160a01b031663a2d2657f61107b60608d018d61588d565b8a8e806080019061108c919061588d565b6040518663ffffffff1660e01b81526004016110ac9594939291906159a9565b602060405180830381865afa1580156110c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ed9190615816565b905064e8d4a510006110fe60355490565b101561111757611110816103e8615a23565b935061116a565b85511561113857855160355461112e908390615a23565b6111109190615a3a565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561117a5783945061117e565b8194505b505b600061118f60608b018b61588d565b905067ffffffffffffffff8111156111a9576111a9615447565b6040519080825280602002602001820160405280156111d2578160200160208202803683370190505b5090506000828511156115f75785156112935760005b6111f560608d018d61588d565b905081101561128d5785878a838151811061121257611212615800565b6020026020010151028161122857611228615907565b0483828151811061123b5761123b615800565b60200260200101818152505082818151811061125957611259615800565b602002602001015189828151811061127357611273615800565b6020908102919091010180519190910390526001016111e8565b50600190505b6000885167ffffffffffffffff8111156112af576112af615447565b6040519080825280602002602001820160405280156112d8578160200160208202803683370190505b50905060006112e78d8061588d565b90501115611497576113506112ff60608e018e61588d565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906106d7919061588d565b60005b61136060608e018e61588d565b90508110156114915789818151811061137b5761137b615800565b602002602001015182828151811061139557611395615800565b6020026020010181815250508381815181106113b3576113b3615800565b60200260200101518d80606001906113cb919061588d565b838181106113db576113db615800565b90506020020160208101906113f0919061516f565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145a9190615816565b6114649190615849565b8a828151811061147657611476615800565b602090810291909101015261148a8161582f565b9050611353565b506114f9565b60005b6114a760608e018e61588d565b90508110156114f7578981815181106114c2576114c2615800565b60200260200101518282815181106114dc576114dc615800565b60209081029190910101526114f08161582f565b905061149a565b505b61151f61150960608e018e61588d565b8b8f806040019061151a919061588d565b612d15565b61158261152f60808e018e61588d565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e0016020810190611037919061516f565b60208901819052885161159491612d6f565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc9187916115cb91615849565b838c6040516115dd949392919061585c565b60405180910390a16115ef878661575e565b945050611828565b848311156117b957851561160e5785830392508593505b61163461161e60608d018d61588d565b858e806040019061162f919061588d565b613274565b61163e3084613299565b50600161169461165160808d018d61588d565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611037925050506101008e0160e08f0161516f565b602088015260005b6116a960608d018d61588d565b9050811015611773576116bf60608d018d61588d565b828181106116cf576116cf615800565b90506020020160208101906116e4919061516f565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561172a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174e9190615816565b83828151811061176057611760615800565b602090810291909101015260010161169c565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b3916117ac918691908690615a4e565b60405180910390a1611828565b85156118205782935060005b6117d260608d018d61588d565b905081101561181a578881815181106117ed576117ed615800565b602002602001015183828151811061180757611807615800565b60209081029190910101526001016117c5565b50600190505b865160208801525b80156118c35760005b61183e60608d018d61588d565b90508110156118c1576118b961185a60e08e0160c08f0161516f565b84838151811061186c5761186c615800565b60200260200101518e8060600190611884919061588d565b8581811061189457611894615800565b90506020020160208101906118a9919061516f565b6001600160a01b03169190613404565b600101611831565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b604080516001808252818301909252606091602080830190803683370190505090506119176134ad565b8160008151811061192a5761192a615800565b60200260200101818152505090565b6119448383836136a0565b6119f46119d4604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b846000815181106119e7576119e7615800565b6020026020010151613805565b15611a2b576040517f0a0431bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610675611abb604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b6001600160a01b031663ef8b30f785600081518110611adc57611adc615800565b60200260200101516040518263ffffffff1660e01b8152600401611b0291815260200190565b602060405180830381865afa158015611b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b439190615816565b50565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611b748282612652565b611b7e8585612b87565b92505b505092915050565b6060609680546105bc9061570e565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611bc48282612652565b6106d784308561245e565b600054610100900460ff1615808015611bef5750600054600160ff909116105b80611c095750303b158015611c09575060005460ff166001145b611c7b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610cee565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611cbc576000805461ff0019166101001790555b611cc887878787613893565b7fba80ae0a45b1697a500a91d31dd2530d1622d0566cbb38bdf5b7a847a4c4ee00611cf4818585614f17565b50508015611d3c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b611d50600033612652565b7fba80ae0a45b1697a500a91d31dd2530d1622d0566cbb38bdf5b7a847a4c4ee006106d7818484614f17565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015611e22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e469190615a6d565b158015611f1757506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015611ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f159190615a6d565b155b15611f50576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610cee565b61083687308888888888612883565b6001600160a01b038316611fda5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b0382166120565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b326120f4576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b600060028383600081811061210b5761210b615800565b905060200201351015612139578282600281811061212b5761212b615800565b90506020020135905061219f565b8282600081811061214c5761214c615800565b9050602002013560020361216d578282600181811061212b5761212b615800565b6040517f59129a9300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121a9818561390a565b6106d7576040517f59129a9300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806121eb60355490565b90508015610653578083612282604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156122c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ec9190615816565b6122f69190615a23565b6123009190615a3a565b610699565b61239b612395604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b82613942565b15611b43576040517f59129a9300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383811660009081526034602090815260408083209386168352929052205460001981146106d757818110156124515760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610cee565b6106d78484848403611f5f565b6001600160a01b0383166124da5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b0382166125565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b038316600090815260336020526040902054818110156125e55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906126459086815260200190565b60405180910390a36106d7565b6040517f91d14854000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa1580156126d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126fc9190615a6d565b612744576040517f75000dc0000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0382166024820152604401610cee565b5050565b60408051606080820183527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221100548083527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b031660208085018290527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221102549486018590528551938401865291835290820181905292015263ba0876526127f48261394a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260048101919091526001600160a01b03841660248201523060448201526064016020604051808303816000875af115801561285f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d79190615816565b6060600061289486868b8787613ad0565b90506128a0888a613299565b60005b858110156128e3576128db888383815181106128c1576128c1615800565b602002602001015189898581811061189457611894615800565b6001016128a3565b5090505b979650505050505050565b60608060007fba80ae0a45b1697a500a91d31dd2530d1622d0566cbb38bdf5b7a847a4c4ee0060408051825460208181028301840184528201818152919392849291849184018282801561296f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612951575b5050505050815250509050600081600001515167ffffffffffffffff81111561299a5761299a615447565b6040519080825280602002602001820160405280156129c3578160200160208202803683370190505b50905060006129d061075a565b6000815181106129e2576129e2615800565b6020026020010151905060005b835151811015612b7b578351805182908110612a0d57612a0d615800565b60200260200101516001600160a01b0316826001600160a01b031614612b69578351805182908110612a4157612a41615800565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190615816565b838281518110612ac757612ac7615800565b6020026020010181815250506000838281518110612ae757612ae7615800565b60200260200101511115612b6957612b697f0000000000000000000000000000000000000000000000000000000000000000848381518110612b2b57612b2b615800565b602002602001015186600001518481518110612b4957612b49615800565b60200260200101516001600160a01b03166134049092919063ffffffff16565b80612b738161582f565b9150506129ef565b50509051939092509050565b600080612b926134ad565b90508015612d0e5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0fe31a612bd3610843565b6040518263ffffffff1660e01b8152600401612bf191815260200190565b600060405180830381865afa158015612c0e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c369190810190615771565b9050836001600160a01b0316639115900c82600081518110612c5a57612c5a615800565b60200260200101518488600081518110612c7657612c76615800565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401602060405180830381865afa158015612cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7e9190615816565b5092915050565b6000612d218383613ce5565b9050611d3c86866000818110612d3957612d39615800565b9050602002016020810190612d4e919061516f565b85600081518110612d6157612d61615800565b602002602001015183613d8f565b600080612d7b60355490565b905064e8d4a51000811015612dc357612d966103e884615a23565b915064e8d4a5100081900380831015612dac5750815b8083039250612dbd61dead82613f59565b50612dec565b8315611138578381612dd58286615849565b612ddf9190615a23565b612de99190615a3a565b91505b612d0e3083613f59565b600080612e0161401a565b7f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221100805491925090612e329083614142565b91905592915050565b6000831561083957600183836000818110612e5857612e58615800565b905060200201351115612e97576040517fed7e526500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ea16128f2565b50905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166367c152628389898d8d306040518763ffffffff1660e01b8152600401612efc96959493929190615aba565b6000604051808303816000875af1158015612f1b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f439190810190615bfb565b600081518110612f5557612f55615800565b602002602001015190506000612fee604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130589190615816565b905060008686600581811061306f5761306f615800565b90506020020135905060006130ce8c8c600081811061309057613090615800565b90506020020160208101906130a5919061516f565b6130af848761575e565b8a8a60038181106130c2576130c2615800565b90506020020135613d8f565b9050826130e08264e8d4a51000615a23565b6130ea9190615a3a565b9c9b505050505050505050505050565b6000808313156106535782600061311864e8d4a51000612710615a23565b6131286080860160608701615c81565b6bffffffffffffffffffffffff166131466040870160208801615c81565b613160906bffffffffffffffffffffffff16612710615849565b61316a9190615849565b6131749084615a23565b61317e919061575e565b905060008261318c60355490565b6131969190615a23565b90506000826131ab6040880160208901615c81565b6131c3906bffffffffffffffffffffffff1684615a23565b6131cd9190615a3a565b90506131e56131df602088018861516f565b82613f59565b6000836131f86080890160608a01615c81565b613210906bffffffffffffffffffffffff1685615a23565b61321a9190615a3a565b905061322f6131df6060890160408a0161516f565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b600061328083836141ae565b9050600061328d856121df565b9050611d3c8183614284565b6001600160a01b0382166133155760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b038216600090815260336020526040902054818110156133a45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b0383166024820152604481018290526106759084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526143bb565b600061353c604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b6001600160a01b0316634cdad5066135d7604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561361d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136419190615816565b6040518263ffffffff1660e01b815260040161365f91815260200190565b602060405180830381865afa15801561367c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f69190615816565b3261373e5760408051600180825281830190925260009160208083019080368337019050509050836000815181106136da576136da615800565b6020026020010151816000815181106136f5576136f5615800565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051613730919061529f565b60405180910390a150505050565b60028282600081811061375357613753615800565b905060200201351115613792576040517f0a0431bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6137cf828260018181106137a8576137a8615800565b90506020020135846000815181106137c2576137c2615800565b602002602001015161390a565b610675576040517f0a0431bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f402d267d00000000000000000000000000000000000000000000000000000000815230600482015260009082906001600160a01b0385169063402d267d90602401602060405180830381865afa158015613867573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061388b9190615816565b109392505050565b600054610100900460ff166138fe5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610cee565b6106d7848484846144a0565b60006139286001700100000000000000000000000000000000615849565b831682108061393a5750608083901c82115b159392505050565b60008161388b845b6040517fd905777e00000000000000000000000000000000000000000000000000000000815230600482015260009081906001600160a01b0384169063d905777e90602401602060405180830381865afa1580156139ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139d09190615816565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa158015613a1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3e9190615816565b90506003846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa49190615caf565b613aae9190615cd2565b613ab990600a615dcf565b613ac38383615849565b1015612d0e579392505050565b60608467ffffffffffffffff811115613aeb57613aeb615447565b604051908082528060200260200182016040528015613b14578160200160208202803683370190505b50905060005b85811015613be057868682818110613b3457613b34615800565b9050602002016020810190613b49919061516f565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb39190615816565b828281518110613bc557613bc5615800565b6020908102919091010152613bd98161582f565b9050613b1a565b50613bee8686868686613274565b60005b85811015613cdb57818181518110613c0b57613c0b615800565b6020026020010151878783818110613c2557613c25615800565b9050602002016020810190613c3a919061516f565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca49190615816565b613cae9190615849565b828281518110613cc057613cc0615800565b6020908102919091010152613cd48161582f565b9050613bf1565b5095945050505050565b600082826000818110613cfa57613cfa615800565b90506020020135600003613d295782826004818110613d1b57613d1b615800565b905060200201359050610653565b82826000818110613d3c57613d3c615800565b90506020020135600203613d5d5782826002818110613d1b57613d1b615800565b6040517fd510633200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821561069957613e2e84613e28604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b856146e9565b613f4d613ebe604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b6040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018690523060248201526001600160a01b039190911690636e553f65906044016020604051808303816000875af1158015613f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f4a9190615816565b90565b90506106998183614707565b6001600160a01b038216613faf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610cee565b8060356000828254613fc1919061575e565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60006140a9604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b6001600160a01b0316634cdad506613641604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b031660208201527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254910181905290565b600082821115614178578264e8d4a5100061415d8285615849565b6141679190615a23565b6141719190615a3a565b9050610653565b81831115610653578264e8d4a510006141918483615849565b61419b9190615a23565b6141a59190615a3a565b61069990615dde565b6000828260008181106141c3576141c3615800565b905060200201356001036141e45782826004818110613d1b57613d1b615800565b828260008181106141f7576141f7615800565b905060200201356002036142185782826002818110613d1b57613d1b615800565b8282600081811061422b5761422b615800565b9050602002013560030361424c5782826001818110613d1b57613d1b615800565b3215610653576040517f61e4723000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115612744576000614319604080516060810182527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211005481527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e59221101546001600160a01b0316602082018190527f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110254919092015290565b6001600160a01b031663ba087652846040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152306024820181905260448201526064016020604051808303816000875af115801561438b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143af9190615816565b90506106758183614798565b6000614410826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166148209092919063ffffffff16565b805190915015610675578080602001905181019061442e9190615a6d565b6106755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610cee565b600054610100900460ff1661450b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610cee565b6145158484614837565b600061451f61075a565b90506001600160a01b038316614561576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160011415806145ff5750826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf9190615dfa565b6001600160a01b0316816000815181106145eb576145eb615800565b60200260200101516001600160a01b031614155b156146415761460c610843565b6040517f4b1f57ad000000000000000000000000000000000000000000000000000000008152600401610cee91815260200190565b7f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e5922110180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0385161790557f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211028290557f11ba5c891c7881610cf5544a7d19e9392b2a209b7a1ec9171f5d610e592211006146e061401a565b90555050505050565b6146f38383614a84565b6106756001600160a01b0384168383614b28565b80821015614741576040517fd510633200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b326127445760408051600181526020810184905260609181018290526000918101919091527f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a90906080015b60405180910390a15050565b808210156147d2576040517f61e4723000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3261274457604080516000808252602082018590526060928201839052918101919091527f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909060800161478c565b606061482f8484600085614c76565b949350505050565b600054610100900460ff166148a25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610cee565b81516000036148dd576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006149435780614939576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609781905561497b565b801561497b576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e065ce6e6149b2610843565b6040518263ffffffff1660e01b81526004016149d091815260200190565b60006040518083038186803b1580156149e857600080fd5b505afa1580156149fc573d6000803e3d6000fd5b505050508160969081614a0f9190615e65565b506127446040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250614d5d565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b119190615816565b1115612744576127446001600160a01b0383168260005b801580614bbb57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bb99190615816565b155b614c2d5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610cee565b6040516001600160a01b0383166024820152604481018290526106759084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613449565b606082471015614cee5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610cee565b600080866001600160a01b03168587604051614d0a9190615f25565b60006040518083038185875af1925050503d8060008114614d47576040519150601f19603f3d011682016040523d82523d6000602084013e614d4c565b606091505b50915091506128e787838387614dd2565b600054610100900460ff16614dc85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610cee565b6127448282614e4b565b60608315614e41578251600003614e3a576001600160a01b0385163b614e3a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610cee565b508161482f565b61482f8383614ecf565b600054610100900460ff16614eb65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610cee565b6036614ec28382615e65565b5060376106758282615e65565b815115614edf5781518083602001fd5b8060405162461bcd60e51b8152600401610cee9190614fcb565b60405180604001604052806002906020820280368337509192915050565b828054828255906000526020600020908101928215614f82579160200282015b82811115614f825781547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03843516178255602090920191600190910190614f37565b50614f8e929150614f92565b5090565b5b80821115614f8e5760008155600101614f93565b60005b83811015614fc2578181015183820152602001614faa565b50506000910152565b6020815260008251806020840152614fea816040850160208701614fa7565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611b4357600080fd5b6000806040838503121561502657600080fd5b823561503181614ffe565b946020939093013593505050565b60008083601f84011261505157600080fd5b50813567ffffffffffffffff81111561506957600080fd5b6020830191508360208260051b850101111561508457600080fd5b9250929050565b6000806000604084860312156150a057600080fd5b83359250602084013567ffffffffffffffff8111156150be57600080fd5b6150ca8682870161503f565b9497909650939450505050565b6000806000606084860312156150ec57600080fd5b83356150f781614ffe565b9250602084013561510781614ffe565b929592945050506040919091013590565b60008060006040848603121561512d57600080fd5b833567ffffffffffffffff81111561514457600080fd5b6151508682870161503f565b909450925050602084013561516481614ffe565b809150509250925092565b60006020828403121561518157600080fd5b813561069981614ffe565b600081518084526020808501945080840160005b838110156151c55781516001600160a01b0316875295820195908201906001016151a0565b509495945050505050565b602081526000610699602083018461518c565b600080600080600080608087890312156151fc57600080fd5b86359550602087013561520e81614ffe565b9450604087013567ffffffffffffffff8082111561522b57600080fd5b6152378a838b0161503f565b9096509450606089013591508082111561525057600080fd5b5061525d89828a0161503f565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b838110156151c557815187529582019590820190600101615283565b602081526000610699602083018461526f565b6040815260006152c5604083018561518c565b82810360208401526152d7818561526f565b95945050505050565b600080600080600080600080600060a08a8c0312156152fe57600080fd5b893567ffffffffffffffff8082111561531657600080fd5b6153228d838e0161503f565b909b50995060208c013591508082111561533b57600080fd5b6153478d838e0161503f565b909950975060408c0135915061535c82614ffe565b90955060608b0135908082111561537257600080fd5b61537e8d838e0161503f565b909650945060808c013591508082111561539757600080fd5b506153a48c828d0161503f565b915080935050809150509295985092959850929598565b6000602082840312156153cd57600080fd5b813567ffffffffffffffff8111156153e457600080fd5b82016101a0818503121561069957600080fd5b60208152815160208201526000602083015160a0604084015261541d60c084018261526f565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561548657615486615447565b604052919050565b600067ffffffffffffffff8211156154a8576154a8615447565b5060051b60200190565b600082601f8301126154c357600080fd5b813560206154d86154d38361548e565b61545d565b82815260059290921b840181019181810190868411156154f757600080fd5b8286015b8481101561551257803583529183019183016154fb565b509695505050505050565b60008060006040848603121561553257600080fd5b833567ffffffffffffffff8082111561554a57600080fd5b615556878388016154b2565b9450602086013591508082111561556c57600080fd5b506150ca8682870161503f565b6000806040838503121561558c57600080fd5b823567ffffffffffffffff8111156155a357600080fd5b6155af858286016154b2565b92505060208301356155c081614ffe565b809150509250929050565b600080604083850312156155de57600080fd5b82356155e981614ffe565b915060208301356155c081614ffe565b803561560481614ffe565b919050565b60008060008060008060a0878903121561562257600080fd5b863567ffffffffffffffff8082111561563a57600080fd5b818901915089601f83011261564e57600080fd5b813560208282111561566257615662615447565b61567481601f19601f8501160161545d565b8281528c8284870101111561568857600080fd5b8282860183830137600092810182019290925290985089013596506156af60408a016155f9565b955060608901359450608089013591508082111561525057600080fd5b600080602083850312156156df57600080fd5b823567ffffffffffffffff8111156156f657600080fd5b6157028582860161503f565b90969095509350505050565b600181811c9082168061572257607f821691505b60208210810361574257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561065357610653615748565b6000602080838503121561578457600080fd5b825167ffffffffffffffff81111561579b57600080fd5b8301601f810185136157ac57600080fd5b80516157ba6154d38261548e565b81815260059190911b820183019083810190878311156157d957600080fd5b928401925b828410156128e75783516157f181614ffe565b825292840192908401906157de565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561582857600080fd5b5051919050565b6000600019820361584257615842615748565b5060010190565b8181038181111561065357610653615748565b84815283602082015260806040820152600061587b608083018561526f565b82810360608401526128e7818561526f565b6000808335601e198436030181126158a457600080fd5b83018035915067ffffffffffffffff8211156158bf57600080fd5b6020019150600581901b360382131561508457600080fd5b80820260008212600160ff1b841416156158f3576158f3615748565b818105831482151761065357610653615748565b634e487b7160e01b600052601260045260246000fd5b60008261592c5761592c615907565b6000198314600160ff1b8314161561594657615946615748565b500590565b8082018281126000831280158216821582161715611b8157611b81615748565b8183526000602080850194508260005b858110156151c557813561598e81614ffe565b6001600160a01b03168752958201959082019060010161597b565b6060815260006159bd60608301878961596b565b82810360208401526159cf818761526f565b905082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115615a0957600080fd5b8360051b8086602084013701602001979650505050505050565b808202811582820484141761065357610653615748565b600082615a4957615a49615907565b500490565b8381528260208201526060604082015260006152d7606083018461526f565b600060208284031215615a7f57600080fd5b8151801515811461069957600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b608081526000615acd608083018961518c565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615bcb57601f1986840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18e3603018112615b2e57600080fd5b8d0160608135615b3d81614ffe565b6001600160a01b0390811686528288013590615b5882614ffe565b168588015260408281013536849003601e19018112615b7657600080fd5b90920187810192903567ffffffffffffffff811115615b9457600080fd5b803603841315615ba357600080fd5b8282880152615bb58388018286615a8f565b9789019796505050928601925050600101615aeb565b50508581036040870152615be081898b61596b565b9450505050506128e760608301846001600160a01b03169052565b60006020808385031215615c0e57600080fd5b825167ffffffffffffffff811115615c2557600080fd5b8301601f81018513615c3657600080fd5b8051615c446154d38261548e565b81815260059190911b82018301908381019087831115615c6357600080fd5b928401925b828410156128e757835182529284019290840190615c68565b600060208284031215615c9357600080fd5b81356bffffffffffffffffffffffff8116811461069957600080fd5b600060208284031215615cc157600080fd5b815160ff8116811461069957600080fd5b60ff828116828216039081111561065357610653615748565b600181815b80851115615d26578160001904821115615d0c57615d0c615748565b80851615615d1957918102915b93841c9390800290615cf0565b509250929050565b600082615d3d57506001610653565b81615d4a57506000610653565b8160018114615d605760028114615d6a57615d86565b6001915050610653565b60ff841115615d7b57615d7b615748565b50506001821b610653565b5060208310610133831016604e8410600b8410161715615da9575081810a610653565b615db38383615ceb565b8060001904821115615dc757615dc7615748565b029392505050565b600061069960ff841683615d2e565b6000600160ff1b8203615df357615df3615748565b5060000390565b600060208284031215615e0c57600080fd5b815161069981614ffe565b601f82111561067557600081815260208120601f850160051c81016020861015615e3e5750805b601f850160051c820191505b81811015615e5d57828155600101615e4a565b505050505050565b815167ffffffffffffffff811115615e7f57615e7f615447565b615e9381615e8d845461570e565b84615e17565b602080601f831160018114615ec85760008415615eb05750858301515b600019600386901b1c1916600185901b178555615e5d565b600085815260208120601f198616915b82811015615ef757888601518255948401946001909101908401615ed8565b5085821015615f155787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251615f37818460208701614fa7565b919091019291505056fea26469706673582212206db8c8646301c2ed938250d851d6f9b190bae73deccfa17b55e8c9ce00bb861264736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd1300000000000000000000000033e52c206d584550193e642c8982f2fff6339994", + "nonce": "0x26", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x948b6b0c3b38f1b9c739f0c934568bc988eca7e238e7af43256e56b4fd5d2b10", + "transactionIndex": "0x3b", + "blockHash": "0xb2b8ee776322294e3149e17e37c2792bf976a1d4cfc565a282a1046d7507e5d3", + "blockNumber": "0x1328b9e", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0xc197f9", + "gasUsed": "0x5122d4", + "contractAddress": "0xDB90a96095f53a015f6C69EF5e05f8f7B5a649fD", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2486b94de" + }, + { + "transactionHash": "0x1237a5a72105b01d6e5d550dea9361d8358ed2385f6312f36821ff63a511978d", + "transactionIndex": "0x2b", + "blockHash": "0xdb36e8bb7a08c77d35306bdcc7f7533a00c46f1287e36aa5c4a083dfcd65c929", + "blockNumber": "0x1328b9f", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x8ee65d", + "gasUsed": "0x5196b7", + "contractAddress": "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "logs": [ + { + "address": "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xdb36e8bb7a08c77d35306bdcc7f7533a00c46f1287e36aa5c4a083dfcd65c929", + "blockNumber": "0x1328b9f", + "transactionHash": "0x1237a5a72105b01d6e5d550dea9361d8358ed2385f6312f36821ff63a511978d", + "transactionIndex": "0x2b", + "logIndex": "0x6f", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000001000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000002000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x26a3685f4" + } + ], + "libraries": [ + "script/helper/ArraysHelper.sol:ArraysHelper:0x7dF191D01252D2C0BABf77c725c63D69fe6EAA1a", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0", + "src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1", + "src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89", + "src/strategies/libraries/EthFrxEthAssetGroupAdapter.sol:EthFrxEthAssetGroupAdapter:0xE23681bAA697EF5054E2D8C397ae59145027625D", + "src/strategies/libraries/EthStEthAssetGroupAdapter.sol:EthStEthAssetGroupAdapter:0x1516eb3a54377168b6b184326200f4258C3529dF" + ], + "pending": [], + "returns": {}, + "timestamp": 1718364699, + "chain": 1, + "multi": false, + "commit": "d367aee" +} \ No newline at end of file diff --git a/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718365923.json b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718365923.json new file mode 100644 index 00000000..4fc68234 --- /dev/null +++ b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-1718365923.json @@ -0,0 +1,430 @@ +{ + "transactions": [ + { + "hash": "0x3fa8995e30dcae9ee43cf6e3db19b73a61bbb36797e760b04b85cee1f43cdba6", + "transactionType": "CREATE", + "contractName": "AaveV2Strategy", + "contractAddress": "0x3Bb41F7A05535CC05Ab6263dd01a4fa3462bE3c9", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x5cc70b", + "value": "0x0", + "data": "0x6101006040523480156200001257600080fd5b50604051620055dd380380620055dd8339810160408190526200003591620000f0565b82826000816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b031660e05250620001449050565b6001600160a01b0381168114620000ed57600080fd5b50565b6000806000606084860312156200010657600080fd5b83516200011381620000d7565b60208501519093506200012681620000d7565b60408501519092506200013981620000d7565b809150509250925092565b60805160a05160c05160e0516153fd620001e060003960008181610202015281816109f701528181610b7a015281816127d801528181612ea4015281816131d5015261356101526000818161075e0152818161078c0152612a9c01526000818161064b0152818161091301528181612b3a01528181612ceb015261310c01526000818161201a015281816120f6015261270601526153fd6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806395d89b4111610104578063beef8a71116100a2578063dd62ed3e11610071578063dd62ed3e1461043c578063e173ad2514610482578063ebbd6bc71461048a578063fc195d8c1461049d57600080fd5b8063beef8a71146103f3578063c1a0ff4c14610413578063c1a7d80e1461041b578063c8d31e741461042957600080fd5b8063a3ea6c97116100de578063a3ea6c97146103b2578063a457c2d7146103c5578063a63e8c4b146103d8578063a9059cbb146103e057600080fd5b806395d89b41146103745780639b6aaa471461037c578063a0c1f15e1461039257600080fd5b8063313ce5671161017c57806371a973051161014b57806371a97305146103245780637817bf4a1461033957806384ba89e3146103595780638beaf7d71461036157600080fd5b8063313ce567146102b957806339509351146102c85780636c60d9e7146102db57806370a08231146102ee57600080fd5b80631480fce3116101b85780631480fce31461026c57806318160ddd1461028157806323b872dd146102935780632ce5183f146102a657600080fd5b806306fdde03146101df578063085d4883146101fd578063095ea7b314610249575b600080fd5b6101e76104b0565b6040516101f49190614442565b60405180910390f35b6102247f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b61025c6102573660046144b8565b610542565b60405190151581526020016101f4565b61027f61027a366004614530565b505050565b005b6035545b6040519081526020016101f4565b61025c6102a136600461457c565b61055c565b61027f6102b43660046144b8565b610580565b604051601281526020016101f4565b61025c6102d63660046144b8565b6105bd565b61027f6102e93660046145bd565b610609565b6102856102fc366004614614565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b61032c610647565b6040516101f49190614682565b61034c610347366004614695565b610713565b6040516101f49190614751565b610285610759565b61027f61036f36600461480c565b6107ae565b6101e7610d21565b610384610d30565b6040516101f49291906148c4565b6098546102249073ffffffffffffffffffffffffffffffffffffffff1681565b6102856103c03660046148f2565b610d47565b61025c6103d33660046144b8565b611123565b61034c6111f4565b61025c6103ee3660046144b8565b61123f565b6104066104013660046149cd565b61124d565b6040516101f49190614a09565b61034c611e65565b61027f61027a366004614ae8565b610285610437366004614b44565b611f3a565b61028561044a366004614b96565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6101e7611f7d565b61027f6104983660046144b8565b611f8c565b61034c6104ab366004614695565b611fc3565b6060603680546104bf90614bc4565b80601f01602080910402602001604051908101604052809291908181526020018280546104eb90614bc4565b80156105385780601f1061050d57610100808354040283529160200191610538565b820191906000526020600020905b81548152906001019060200180831161051b57829003601f168201915b5050505050905090565b6000336105508185856121c0565b60019150505b92915050565b60003361056a858285612373565b610575858585612444565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336105ac82826126ba565b6105b7308585612444565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105509082908690610604908790614c46565b6121c0565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361063582826126ba565b6106408585856127ca565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a61068d610759565b6040518263ffffffff1660e01b81526004016106ab91815260200190565b600060405180830381865afa1580156106c8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261070e9190810190614c69565b905090565b606061073f7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336126ba565b61074e8787888888888861295b565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610789575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b600054610100900460ff16158080156107ce5750600054600160ff909116105b806107e85750303b1580156107e8575060005460ff166001145b610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108d757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108e183836129c8565b6040517fdd0fe31a000000000000000000000000000000000000000000000000000000008152600481018390526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063dd0fe31a90602401600060405180830381865afa15801561096f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526109b59190810190614c69565b905080516001146109f5576040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260048101849052602401610870565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a849190614cf8565b73ffffffffffffffffffffffffffffffffffffffff166335ea6a7582600081518110610ab257610ab2614d15565b60200260200101516040518263ffffffff1660e01b8152600401610af2919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b61018060405180830381865afa158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b349190614dcc565b60e00151609860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c079190614cf8565b73ffffffffffffffffffffffffffffffffffffffff1663d15e005382600081518110610c3557610c35614d15565b60200260200101516040518263ffffffff1660e01b8152600401610c75919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190614eb9565b60995550801561027a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6060603780546104bf90614bc4565b6060803215610d3e57600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610d7582826126ba565b60008b67ffffffffffffffff811115610d9057610d90614764565b604051908082528060200260200182016040528015610db9578160200160208202803683370190505b50905060005b8c811015610eab578d8d82818110610dd957610dd9614d15565b9050602002016020810190610dee9190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7e9190614eb9565b828281518110610e9057610e90614d15565b6020908102919091010152610ea481614ed2565b9050610dbf565b50610ee58d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610f0057610f00614764565b604051908082528060200260200182016040528015610f29578160200160208202803683370190505b50905060005b8d81101561101b578e8e82818110610f4957610f49614d15565b9050602002016020810190610f5e9190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee9190614eb9565b82828151811061100057611000614d15565b602090810291909101015261101481614ed2565b9050610f2f565b50600061105c8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612c4e915050565b905061106b8f8f848d8d612ea0565b60006110b88e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612c4e565b905060006110c68383613079565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc816110f48585614f0a565b87876040516111069493929190614f1d565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156111e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610870565b61057582868684036121c0565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061122f5761122f614d15565b6020908102919091010152919050565b600033610550818585612444565b61127f6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6112a97fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336126ba565b6000806112b96060850185614f4e565b905067ffffffffffffffff8111156112d3576112d3614764565b6040519080825280602002602001820160405280156112fc578160200160208202803683370190505b50905060005b61130f6060860186614f4e565b9050811015611427576113256060860186614f4e565b8281811061133557611335614d15565b905060200201602081019061134a9190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da9190614eb9565b8282815181106113ec576113ec614d15565b602002602001018181525050600082828151811061140c5761140c614d15565b6020026020010151111561141f57600192505b600101611302565b506114398161027a6040870187614f4e565b61144e60a085013561027a6040870187614f4e565b611456614400565b611464856101000135613107565b604085015260006114a161147b6060880188614f4e565b61148860208a018a614f4e565b61149560408c018c614f4e565b60009695505050505050565b905064e8d4a510008560400151826114b99190614fb6565b6114c39190615031565b6114cd9082615099565b856040018181516114de9190615099565b9052505060408401516114f590610120870161332c565b5061154e6115066080870187614f4e565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061154992505050610100880160e08901614614565b612c4e565b81526000808060a0880135861561169f5760006115726101008b0160e08c01614614565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61159a60608d018d614f4e565b8a8e80608001906115ab9190614f4e565b6040518663ffffffff1660e01b81526004016115cb9594939291906150b9565b602060405180830381865afa1580156115e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160c9190614eb9565b905064e8d4a5100061161d60355490565b10156116365761162f816103e8615171565b9350611689565b85511561165757855160355461164d908390615171565b61162f9190615188565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156116995783945061169d565b8194505b505b60006116ae60608b018b614f4e565b905067ffffffffffffffff8111156116c8576116c8614764565b6040519080825280602002602001820160405280156116f1578160200160208202803683370190505b509050600082851115611b3c5785156117b25760005b61171460608d018d614f4e565b90508110156117ac5785878a838151811061173157611731614d15565b6020026020010151028161174757611747615002565b0483828151811061175a5761175a614d15565b60200260200101818152505082818151811061177857611778614d15565b602002602001015189828151811061179257611792614d15565b602090810291909101018051919091039052600101611707565b50600190505b6000885167ffffffffffffffff8111156117ce576117ce614764565b6040519080825280602002602001820160405280156117f7578160200160208202803683370190505b50905060006118068d80614f4e565b905011156119dc5761186f61181e60608e018e614f4e565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906105b79190614f4e565b60005b61187f60608e018e614f4e565b90508110156119d65789818151811061189a5761189a614d15565b60200260200101518282815181106118b4576118b4614d15565b6020026020010181815250508381815181106118d2576118d2614d15565b60200260200101518d80606001906118ea9190614f4e565b838181106118fa576118fa614d15565b905060200201602081019061190f9190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561197b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199f9190614eb9565b6119a99190614f0a565b8a82815181106119bb576119bb614d15565b60209081029190910101526119cf81614ed2565b9050611872565b50611a3e565b60005b6119ec60608e018e614f4e565b9050811015611a3c57898181518110611a0757611a07614d15565b6020026020010151828281518110611a2157611a21614d15565b6020908102919091010152611a3581614ed2565b90506119df565b505b611a64611a4e60608e018e614f4e565b8b8f8060400190611a5f9190614f4e565b612ea0565b611ac7611a7460808e018e614f4e565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906115499190614614565b602089018190528851611ad991613079565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611b1091614f0a565b838c604051611b229493929190614f1d565b60405180910390a1611b348786614c46565b945050611d93565b84831115611d24578515611b535785830392508593505b611b79611b6360608d018d614f4e565b858e8060400190611b749190614f4e565b6134a6565b611b8330846136d6565b506001611bd9611b9660808d018d614f4e565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611549925050506101008e0160e08f01614614565b602088015260005b611bee60608d018d614f4e565b9050811015611cde57611c0460608d018d614f4e565b82818110611c1457611c14614d15565b9050602002016020810190611c299190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb99190614eb9565b838281518110611ccb57611ccb614d15565b6020908102919091010152600101611be1565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611d1791869190869061519c565b60405180910390a1611d93565b8515611d8b5782935060005b611d3d60608d018d614f4e565b9050811015611d8557888181518110611d5857611d58614d15565b6020026020010151838281518110611d7257611d72614d15565b6020908102919091010152600101611d30565b50600190505b865160208801525b8015611e3b5760005b611da960608d018d614f4e565b9050811015611e3957611e31611dc560e08e0160c08f01614614565b848381518110611dd757611dd7614d15565b60200260200101518e8060600190611def9190614f4e565b85818110611dff57611dff614d15565b9050602002016020810190611e149190614614565b73ffffffffffffffffffffffffffffffffffffffff16919061389c565b600101611d9c565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291925073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f189190614eb9565b81600081518110611f2b57611f2b614d15565b60200260200101818152505090565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611f6882826126ba565b611f728585612c4e565b92505b505092915050565b6060609680546104bf90614bc4565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611fb882826126ba565b6105b7843085612444565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209a91906151bb565b15801561217857506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612152573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217691906151bb565b155b156121b1576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610870565b61074e8730888888888861295b565b73ffffffffffffffffffffffffffffffffffffffff8316612262576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff8216612305576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105b75781811015612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610870565b6105b784848484036121c0565b73ffffffffffffffffffffffffffffffffffffffff83166124e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff821661258a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906126ad9086815260200190565b60405180910390a36105b7565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa15801561274d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277191906151bb565b6127c6576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610870565b5050565b60006127d4610647565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128659190614cf8565b73ffffffffffffffffffffffffffffffffffffffff166369328dec8260008151811061289357612893614d15565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602482015290851660448201526064016020604051808303816000875af1158015612937573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190614eb9565b6060600061296c86868b8787613970565b9050612978888a6136d6565b60005b858110156129bb576129b38883838151811061299957612999614d15565b6020026020010151898985818110611dff57611dff614d15565b60010161297b565b5098975050505050505050565b600054610100900460ff16612a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610870565b8151600003612a9a576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000612b005780612af6576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055612b38565b8015612b38576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e612b7c610759565b6040518263ffffffff1660e01b8152600401612b9a91815260200190565b60006040518083038186803b158015612bb257600080fd5b505afa158015612bc6573d6000803e3d6000fd5b505050508160969081612bd9919061522b565b506127c66040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613bd1565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce59190614eb9565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a612d2d610759565b6040518263ffffffff1660e01b8152600401612d4b91815260200190565b600060405180830381865afa158015612d68573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612dae9190810190614c69565b90508373ffffffffffffffffffffffffffffffffffffffff16639115900c82600081518110612ddf57612ddf614d15565b60200260200101518488600081518110612dfb57612dfb614d15565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f729190614eb9565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f319190614cf8565b9050612f7f86866000818110612f4957612f49614d15565b9050602002016020810190612f5e9190614614565b8286600081518110612f7257612f72614d15565b6020026020010151613c72565b8073ffffffffffffffffffffffffffffffffffffffff1663e8eda9df87876000818110612fae57612fae614d15565b9050602002016020810190612fc39190614614565b86600081518110612fd657612fd6614d15565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9092166004830152602482015230604482015260006064820152608401600060405180830381600087803b15801561305957600080fd5b505af115801561306d573d6000803e3d6000fd5b50505050505050505050565b60008061308560355490565b905064e8d4a510008110156130cd576130a06103e884615171565b915064e8d4a51000819003808310156130b65750815b80830392506130c761dead82613c9d565b506130f6565b83156116575783816130df8286614f0a565b6130e99190615171565b6130f39190615188565b91505b6131003083613c9d565b5092915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a61314e610759565b6040518263ffffffff1660e01b815260040161316c91815260200190565b600060405180830381865afa158015613189573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526131cf9190810190614c69565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561323e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132629190614cf8565b73ffffffffffffffffffffffffffffffffffffffff1663d15e00538360008151811061329057613290614d15565b60200260200101516040518263ffffffff1660e01b81526004016132d0919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156132ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133119190614eb9565b905061331f60995482613d92565b6099919091559392505050565b6000808313156105565782600061334a64e8d4a51000612710615171565b61335a6080860160608701615345565b6bffffffffffffffffffffffff166133786040870160208801615345565b613392906bffffffffffffffffffffffff16612710614f0a565b61339c9190614f0a565b6133a69084615171565b6133b09190614c46565b90506000826133be60355490565b6133c89190615171565b90506000826133dd6040880160208901615345565b6133f5906bffffffffffffffffffffffff1684615171565b6133ff9190615188565b90506134176134116020880188614614565b82613c9d565b60008361342a6080890160608a01615345565b613442906bffffffffffffffffffffffff1685615171565b61344c9190615188565b90506134616134116060890160408a01614614565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b82156106405760006134b760355490565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152869173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613525573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135499190614eb9565b6135539190615171565b61355d9190615188565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ee9190614cf8565b73ffffffffffffffffffffffffffffffffffffffff166369328dec8787600081811061361c5761361c614d15565b90506020020160208101906136319190614614565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490523060448201526064016020604051808303816000875af11580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136cd9190614eb9565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216613779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260409020548181101561382f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261027a9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613e05565b60608467ffffffffffffffff81111561398b5761398b614764565b6040519080825280602002602001820160405280156139b4578160200160208202803683370190505b50905060005b85811015613aa6578686828181106139d4576139d4614d15565b90506020020160208101906139e99190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613a55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a799190614eb9565b828281518110613a8b57613a8b614d15565b6020908102919091010152613a9f81614ed2565b90506139ba565b50613ab486868686866134a6565b60005b85811015613bc757818181518110613ad157613ad1614d15565b6020026020010151878783818110613aeb57613aeb614d15565b9050602002016020810190613b009190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b909190614eb9565b613b9a9190614f0a565b828281518110613bac57613bac614d15565b6020908102919091010152613bc081614ed2565b9050613ab7565b5095945050505050565b600054610100900460ff16613c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610870565b6127c68282613f11565b613c7c8383613fc1565b61027a73ffffffffffffffffffffffffffffffffffffffff8416838361407f565b73ffffffffffffffffffffffffffffffffffffffff8216613d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610870565b8060356000828254613d2c9190614c46565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115613dc8578264e8d4a51000613dad8285614f0a565b613db79190615171565b613dc19190615188565b9050610556565b81831115610556578264e8d4a51000613de18483614f0a565b613deb9190615171565b613df59190615188565b613dfe90615373565b9392505050565b6000613e67826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166142019092919063ffffffff16565b80519091501561027a5780806020019051810190613e8591906151bb565b61027a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610870565b600054610100900460ff16613fa8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610870565b6036613fb4838261522b565b50603761027a828261522b565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405b9190614eb9565b11156127c6576127c673ffffffffffffffffffffffffffffffffffffffff83168260005b80158061411f57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156140f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061411d9190614eb9565b155b6141ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610870565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261027a9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016138ee565b60606142108484600085614218565b949350505050565b6060824710156142aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610870565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516142d391906153ab565b60006040518083038185875af1925050503d8060008114614310576040519150601f19603f3d011682016040523d82523d6000602084013e614315565b606091505b509150915061074e87838387606083156143b75782516000036143b05773ffffffffffffffffffffffffffffffffffffffff85163b6143b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610870565b5081614210565b61421083838151156143cc5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108709190614442565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614439578181015183820152602001614421565b50506000910152565b602081526000825180602084015261446181604085016020870161441e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff811681146144b557600080fd5b50565b600080604083850312156144cb57600080fd5b82356144d681614493565b946020939093013593505050565b60008083601f8401126144f657600080fd5b50813567ffffffffffffffff81111561450e57600080fd5b6020830191508360208260051b850101111561452957600080fd5b9250929050565b60008060006040848603121561454557600080fd5b83359250602084013567ffffffffffffffff81111561456357600080fd5b61456f868287016144e4565b9497909650939450505050565b60008060006060848603121561459157600080fd5b833561459c81614493565b925060208401356145ac81614493565b929592945050506040919091013590565b6000806000604084860312156145d257600080fd5b833567ffffffffffffffff8111156145e957600080fd5b6145f5868287016144e4565b909450925050602084013561460981614493565b809150509250925092565b60006020828403121561462657600080fd5b8135613dfe81614493565b600081518084526020808501945080840160005b8381101561467757815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614645565b509495945050505050565b602081526000613dfe6020830184614631565b600080600080600080608087890312156146ae57600080fd5b8635955060208701356146c081614493565b9450604087013567ffffffffffffffff808211156146dd57600080fd5b6146e98a838b016144e4565b9096509450606089013591508082111561470257600080fd5b5061470f89828a016144e4565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b8381101561467757815187529582019590820190600101614735565b602081526000613dfe6020830184614721565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff811182821017156147b7576147b7614764565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561480457614804614764565b604052919050565b6000806040838503121561481f57600080fd5b823567ffffffffffffffff8082111561483757600080fd5b818501915085601f83011261484b57600080fd5b813560208282111561485f5761485f614764565b61488f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f850116016147bd565b925081835287818386010111156148a557600080fd5b8181850182850137600091830181019190915290969401359450505050565b6040815260006148d76040830185614631565b82810360208401526148e98185614721565b95945050505050565b600080600080600080600080600060a08a8c03121561491057600080fd5b893567ffffffffffffffff8082111561492857600080fd5b6149348d838e016144e4565b909b50995060208c013591508082111561494d57600080fd5b6149598d838e016144e4565b909950975060408c0135915061496e82614493565b90955060608b0135908082111561498457600080fd5b6149908d838e016144e4565b909650945060808c01359150808211156149a957600080fd5b506149b68c828d016144e4565b915080935050809150509295985092959850929598565b6000602082840312156149df57600080fd5b813567ffffffffffffffff8111156149f657600080fd5b82016101a08185031215613dfe57600080fd5b60208152815160208201526000602083015160a06040840152614a2f60c0840182614721565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff821115614a7357614a73614764565b5060051b60200190565b600082601f830112614a8e57600080fd5b81356020614aa3614a9e83614a59565b6147bd565b82815260059290921b84018101918181019086841115614ac257600080fd5b8286015b84811015614add5780358352918301918301614ac6565b509695505050505050565b600080600060408486031215614afd57600080fd5b833567ffffffffffffffff80821115614b1557600080fd5b614b2187838801614a7d565b94506020860135915080821115614b3757600080fd5b5061456f868287016144e4565b60008060408385031215614b5757600080fd5b823567ffffffffffffffff811115614b6e57600080fd5b614b7a85828601614a7d565b9250506020830135614b8b81614493565b809150509250929050565b60008060408385031215614ba957600080fd5b8235614bb481614493565b91506020830135614b8b81614493565b600181811c90821680614bd857607f821691505b602082108103614c11577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561055657610556614c17565b8051614c6481614493565b919050565b60006020808385031215614c7c57600080fd5b825167ffffffffffffffff811115614c9357600080fd5b8301601f81018513614ca457600080fd5b8051614cb2614a9e82614a59565b81815260059190911b82018301908381019087831115614cd157600080fd5b928401925b8284101561074e578351614ce981614493565b82529284019290840190614cd6565b600060208284031215614d0a57600080fd5b8151613dfe81614493565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215614d5657600080fd5b6040516020810181811067ffffffffffffffff82111715614d7957614d79614764565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114614c6457600080fd5b805164ffffffffff81168114614c6457600080fd5b805160ff81168114614c6457600080fd5b60006101808284031215614ddf57600080fd5b614de7614793565b614df18484614d44565b8152614dff60208401614d86565b6020820152614e1060408401614d86565b6040820152614e2160608401614d86565b6060820152614e3260808401614d86565b6080820152614e4360a08401614d86565b60a0820152614e5460c08401614da6565b60c0820152614e6560e08401614c59565b60e0820152610100614e78818501614c59565b90820152610120614e8a848201614c59565b90820152610140614e9c848201614c59565b90820152610160614eae848201614dbb565b908201529392505050565b600060208284031215614ecb57600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f0357614f03614c17565b5060010190565b8181038181111561055657610556614c17565b848152836020820152608060408201526000614f3c6080830185614721565b828103606084015261074e8185614721565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f8357600080fd5b83018035915067ffffffffffffffff821115614f9e57600080fd5b6020019150600581901b360382131561452957600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615614fee57614fee614c17565b818105831482151761055657610556614c17565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261504057615040615002565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561509457615094614c17565b500590565b8082018281126000831280158216821582161715611f7557611f75614c17565b6060808252810185905260008660808301825b888110156151095782356150df81614493565b73ffffffffffffffffffffffffffffffffffffffff168252602092830192909101906001016150cc565b50838103602085015261511c8188614721565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561515757600080fd5b8360051b8086602084013701602001979650505050505050565b808202811582820484141761055657610556614c17565b60008261519757615197615002565b500490565b8381528260208201526060604082015260006148e96060830184614721565b6000602082840312156151cd57600080fd5b81518015158114613dfe57600080fd5b601f82111561027a57600081815260208120601f850160051c810160208610156152045750805b601f850160051c820191505b8181101561522357828155600101615210565b505050505050565b815167ffffffffffffffff81111561524557615245614764565b615259816152538454614bc4565b846151dd565b602080601f8311600181146152ac57600084156152765750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555615223565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156152f9578886015182559484019460019091019084016152da565b508582101561533557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561535757600080fd5b81356bffffffffffffffffffffffff81168114613dfe57600080fd5b60007f800000000000000000000000000000000000000000000000000000000000000082036153a4576153a4614c17565b5060000390565b600082516153bd81846020870161441e565b919091019291505056fea2646970667358221220032fdd601c926e010586111d152bd6eec9e5b0a35eead5c16e3faf952db0239964736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000b53c1a33016b2dc2ff3653530bff1848a515c8c5", + "nonce": "0x27", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xaabedaf83b85212aba4aa2b364585b61f81aeb9e860b130aec4e4aebb3cfb3f4", + "transactionType": "CREATE", + "contractName": "CompoundV2Strategy", + "contractAddress": "0x8fE41e9B43bB45d0eFBc86C32Aa4705935Bf8b13", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x33E52c206d584550193E642C8982f2Fff6339994", + "0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x65262a", + "value": "0x0", + "data": "0x610160604052670de0b6b3a764000060e0523480156200001e57600080fd5b5060405162005f0b38038062005f0b833981016040819052620000419162000222565b83836000816001600160a01b0381166200006e5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660805283166200009c5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508216620000ce5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038116620000f65760405163bb0e4c3560e01b815260040160405180910390fd5b806001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015a91906200028a565b620001785760405163c52a9bd360e01b815260040160405180910390fd5b6001600160a01b0380831661010052811661012081905260408051634e8dad0560e11b81529051639d1b5a0a916004808201926020929091908290030181865afa158015620001cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f19190620002b5565b6001600160a01b03166101405250620002d592505050565b6001600160a01b03811681146200021f57600080fd5b50565b600080600080608085870312156200023957600080fd5b8451620002468162000209565b6020860151909450620002598162000209565b60408601519093506200026c8162000209565b60608601519092506200027f8162000209565b939692955090935050565b6000602082840312156200029d57600080fd5b81518015158114620002ae57600080fd5b9392505050565b600060208284031215620002c857600080fd5b8151620002ae8162000209565b60805160a05160c05160e051610100516101205161014051615b6b620003a06000396000818161025601528181612ea301528181613365015281816133d0015261407f015260008181610372015281816109c60152613fe80152600081816103030152818161338701526134400152600081816102dc01528181611f22015261411b015260008181610d3a01528181610d6801526129d0015260008181610c2501528181612a6e0152612fee01526000818161214c0152818161222801526128380152615b6b6000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c806371a973051161012a578063a9059cbb116100bd578063c8d31e741161008c578063e173ad2511610071578063e173ad2514610528578063ebbd6bc714610530578063fc195d8c1461054357600080fd5b8063c8d31e74146104cf578063dd62ed3e146104e257600080fd5b8063a9059cbb14610486578063beef8a7114610499578063c1a0ff4c146104b9578063c1a7d80e146104c157600080fd5b80639b6aaa47116100f95780639b6aaa4714610442578063a3ea6c9714610458578063a457c2d71461046b578063a63e8c4b1461047e57600080fd5b806371a97305146103fd5780637817bf4a1461041257806384ba89e31461043257806395d89b411461043a57600080fd5b80632ce5183f116101a25780635fe3b567116101715780635fe3b5671461036d57806369e527da146103945780636c60d9e7146103b457806370a08231146103c757600080fd5b80632ce5183f14610325578063313ce5671461033857806339509351146103475780634f3bddeb1461035a57600080fd5b806318160ddd116101de57806318160ddd146102b257806323b872dd146102c45780632703984c146102d75780632b3297f9146102fe57600080fd5b806306fdde0314610210578063095ea7b31461022e578063109d0af8146102515780631480fce31461029d575b600080fd5b610218610556565b6040516102259190614aab565b60405180910390f35b61024161023c366004614b21565b6105e8565b6040519015158152602001610225565b6102787f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610225565b6102b06102ab366004614b99565b505050565b005b6035545b604051908152602001610225565b6102416102d2366004614be5565b610602565b6102b67f000000000000000000000000000000000000000000000000000000000000000081565b6102787f000000000000000000000000000000000000000000000000000000000000000081565b6102b0610333366004614b21565b610626565b60405160128152602001610225565b610241610355366004614b21565b610663565b6102b0610368366004614cb4565b6106af565b6102787f000000000000000000000000000000000000000000000000000000000000000081565b6098546102789073ffffffffffffffffffffffffffffffffffffffff1681565b6102b06103c2366004614d81565b610be3565b6102b66103d5366004614dd8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b610405610c21565b6040516102259190614e46565b610425610420366004614e59565b610ced565b6040516102259190614f15565b6102b6610d35565b610218610d8a565b61044a610d99565b604051610225929190614f28565b6102b6610466366004614f56565b610db7565b610241610479366004614b21565b611193565b610425611264565b610241610494366004614b21565b6112af565b6104ac6104a7366004615031565b6112bd565b604051610225919061506d565b610425611ece565b6102b06102ab366004615141565b6102b66104dd36600461519d565b61206c565b6102b66104f03660046151ef565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6102186120af565b6102b061053e366004614b21565b6120be565b610425610551366004614e59565b6120f5565b6060603680546105659061521d565b80601f01602080910402602001604051908101604052809291908181526020018280546105919061521d565b80156105de5780601f106105b3576101008083540402835291602001916105de565b820191906000526020600020905b8154815290600101906020018083116105c157829003601f168201915b5050505050905090565b6000336105f68185856122f2565b60019150505b92915050565b6000336106108582856124a5565b61061b858585612576565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361065282826127ec565b61065d308585612576565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105f690829086906106aa90879061529f565b6122f2565b600054610100900460ff16158080156106cf5750600054600160ff909116105b806106e95750303b1580156106e9575060005460ff166001145b61077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107d857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107e284846128fc565b73ffffffffffffffffffffffffffffffffffffffff821661082f576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610839610c21565b90508051600114158061090057508273ffffffffffffffffffffffffffffffffffffffff16636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b691906152b2565b73ffffffffffffffffffffffffffffffffffffffff16816000815181106108df576108df6152cf565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156109425761090d610d35565b6040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260040161077191815260200190565b604080516001808252818301909252600091602080830190803683370190505090508381600081518110610978576109786152cf565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517fc29982380000000000000000000000000000000000000000000000000000000081526000917f0000000000000000000000000000000000000000000000000000000000000000169063c2998238906109fb908590600401614e46565b6000604051808303816000875af1158015610a1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a6091908101906152fe565b9050600081600081518110610a7757610a776152cf565b60200260200101511115610ab7576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908117909155604080517fbd6d894d000000000000000000000000000000000000000000000000000000008152905163bd6d894d9160048082019260209290919082900301816000875af1158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b749190615384565b60995550508115905061065d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610c0f82826127ec565b610c1a858585612b82565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610c67610d35565b6040518263ffffffff1660e01b8152600401610c8591815260200190565b600060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ce8919081019061539d565b905090565b6060610d197fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336127ec565b610d2887878888888888612de8565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610d65575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b6060603780546105659061521d565b6060803215610da757600080fd5b610daf612e57565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610de582826127ec565b60008b67ffffffffffffffff811115610e0057610e00614c26565b604051908082528060200260200182016040528015610e29578160200160208202803683370190505b50905060005b8c811015610f1b578d8d82818110610e4957610e496152cf565b9050602002016020810190610e5e9190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee9190615384565b828281518110610f0057610f006152cf565b6020908102919091010152610f148161542c565b9050610e2f565b50610f558d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610f7057610f70614c26565b604051908082528060200260200182016040528015610f99578160200160208202803683370190505b50905060005b8d81101561108b578e8e82818110610fb957610fb96152cf565b9050602002016020810190610fce9190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561103a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105e9190615384565b828281518110611070576110706152cf565b60209081029190910101526110848161542c565b9050610f9f565b5060006110cc8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612f3e915050565b90506110db8f8f848d8d6131af565b60006111288e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612f3e565b9050600061113683836131fa565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc816111648585615464565b87876040516111769493929190615477565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610771565b61061b82868684036122f2565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061129f5761129f6152cf565b6020908102919091010152919050565b6000336105f6818585612576565b6112ef6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6113197fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336127ec565b60008061132960608501856154a8565b905067ffffffffffffffff81111561134357611343614c26565b60405190808252806020026020018201604052801561136c578160200160208202803683370190505b50905060005b61137f60608601866154a8565b90508110156114975761139560608601866154a8565b828181106113a5576113a56152cf565b90506020020160208101906113ba9190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144a9190615384565b82828151811061145c5761145c6152cf565b602002602001018181525050600082828151811061147c5761147c6152cf565b6020026020010151111561148f57600192505b600101611372565b506114a9816102ab60408701876154a8565b6114be60a08501356102ab60408701876154a8565b6114c6614a69565b6114d4856101000135613281565b6040850152600061150a6114eb60608801886154a8565b6114f860208a018a6154a8565b61150560408c018c6154a8565b613331565b905064e8d4a510008560400151826115229190615510565b61152c919061558b565b61153690826155f3565b8560400181815161154791906155f3565b90525050604084015161155e9061012087016136a0565b506115b761156f60808701876154a8565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506115b292505050610100880160e08901614dd8565b612f3e565b81526000808060a088013586156117085760006115db6101008b0160e08c01614dd8565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61160360608d018d6154a8565b8a8e806080019061161491906154a8565b6040518663ffffffff1660e01b815260040161163495949392919061565e565b602060405180830381865afa158015611651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116759190615384565b905064e8d4a5100061168660355490565b101561169f57611698816103e86156d8565b93506116f2565b8551156116c05785516035546116b69083906156d8565b61169891906156ef565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561170257839450611706565b8194505b505b600061171760608b018b6154a8565b905067ffffffffffffffff81111561173157611731614c26565b60405190808252806020026020018201604052801561175a578160200160208202803683370190505b509050600082851115611ba557851561181b5760005b61177d60608d018d6154a8565b90508110156118155785878a838151811061179a5761179a6152cf565b602002602001015102816117b0576117b061555c565b048382815181106117c3576117c36152cf565b6020026020010181815250508281815181106117e1576117e16152cf565b60200260200101518982815181106117fb576117fb6152cf565b602090810291909101018051919091039052600101611770565b50600190505b6000885167ffffffffffffffff81111561183757611837614c26565b604051908082528060200260200182016040528015611860578160200160208202803683370190505b509050600061186f8d806154a8565b90501115611a45576118d861188760608e018e6154a8565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061065d91906154a8565b60005b6118e860608e018e6154a8565b9050811015611a3f57898181518110611903576119036152cf565b602002602001015182828151811061191d5761191d6152cf565b60200260200101818152505083818151811061193b5761193b6152cf565b60200260200101518d806060019061195391906154a8565b83818110611963576119636152cf565b90506020020160208101906119789190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156119e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a089190615384565b611a129190615464565b8a8281518110611a2457611a246152cf565b6020908102919091010152611a388161542c565b90506118db565b50611aa7565b60005b611a5560608e018e6154a8565b9050811015611aa557898181518110611a7057611a706152cf565b6020026020010151828281518110611a8a57611a8a6152cf565b6020908102919091010152611a9e8161542c565b9050611a48565b505b611acd611ab760608e018e6154a8565b8b8f8060400190611ac891906154a8565b6131af565b611b30611add60808e018e6154a8565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906115b29190614dd8565b602089018190528851611b42916131fa565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611b7991615464565b838c604051611b8b9493929190615477565b60405180910390a1611b9d878661529f565b945050611dfc565b84831115611d8d578515611bbc5785830392508593505b611be2611bcc60608d018d6154a8565b858e8060400190611bdd91906154a8565b61381a565b611bec30846139af565b506001611c42611bff60808d018d6154a8565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506115b2925050506101008e0160e08f01614dd8565b602088015260005b611c5760608d018d6154a8565b9050811015611d4757611c6d60608d018d6154a8565b82818110611c7d57611c7d6152cf565b9050602002016020810190611c929190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d229190615384565b838281518110611d3457611d346152cf565b6020908102919091010152600101611c4a565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611d80918691908690615703565b60405180910390a1611dfc565b8515611df45782935060005b611da660608d018d6154a8565b9050811015611dee57888181518110611dc157611dc16152cf565b6020026020010151838281518110611ddb57611ddb6152cf565b6020908102919091010152600101611d99565b50600190505b865160208801525b8015611ea45760005b611e1260608d018d6154a8565b9050811015611ea257611e9a611e2e60e08e0160c08f01614dd8565b848381518110611e4057611e406152cf565b60200260200101518e8060600190611e5891906154a8565b85818110611e6857611e686152cf565b9050602002016020810190611e7d9190614dd8565b73ffffffffffffffffffffffffffffffffffffffff169190613b75565b600101611e05565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506098546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529192507f00000000000000000000000000000000000000000000000000000000000000009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa59190615384565b609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120369190615384565b61204091906156d8565b61204a91906156ef565b8160008151811061205d5761205d6152cf565b60200260200101818152505090565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361209a82826127ec565b6120a48585612f3e565b92505b505092915050565b6060609680546105659061521d565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336120ea82826127ec565b61065d843085612576565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156121a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cc9190615722565b1580156122aa57506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a89190615722565b155b156122e3576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610771565b610d2887308888888888612de8565b73ffffffffffffffffffffffffffffffffffffffff8316612394576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff8216612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461065d5781811015612569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610771565b61065d84848484036122f2565b73ffffffffffffffffffffffffffffffffffffffff8316612619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff82166126bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127df9086815260200190565b60405180910390a361065d565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa15801561287f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a39190615722565b6128f8576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610771565b5050565b600054610100900460ff16612993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610771565b81516000036129ce576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000612a345780612a2a576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055612a6c565b8015612a6c576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e612ab0610d35565b6040518263ffffffff1660e01b8152600401612ace91815260200190565b60006040518083038186803b158015612ae657600080fd5b505afa158015612afa573d6000803e3d6000fd5b505050508160969081612b0d919061578a565b506128f86040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613c49565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c159190615384565b9050801561065d576098546040517fdb006a750000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff169063db006a75906024016020604051808303816000875af1158015612c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb39190615384565b1115612ceb576040517f8107ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612cf5610c21565b9050610c1a8382600081518110612d0e57612d0e6152cf565b60209081029190910101516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da89190615384565b83600081518110612dbb57612dbb6152cf565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16613b759092919063ffffffff16565b60606000612df986868b8787613cea565b9050612e05888a6139af565b60005b85811015612e4857612e4088838381518110612e2657612e266152cf565b6020026020010151898985818110611e6857611e686152cf565b600101612e08565b5090505b979650505050505050565b60408051600180825281830190925260609182916000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000082600081518110612ed557612ed56152cf565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f17613f4b565b81600081518110612f2a57612f2a6152cf565b602090810291909101015290939092509050565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fd59190615384565b905080156131a8576000612fe882614107565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a613030610d35565b6040518263ffffffff1660e01b815260040161304e91815260200190565b600060405180830381865afa15801561306b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526130b1919081019061539d565b90508473ffffffffffffffffffffffffffffffffffffffff16639115900c826000815181106130e2576130e26152cf565b602002602001015184896000815181106130fe576130fe6152cf565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa15801561317f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a39190615384565b935050505b5092915050565b610c1a858560008181106131c5576131c56152cf565b90506020020160208101906131da9190614dd8565b846000815181106131ed576131ed6152cf565b60200260200101516141e2565b60008061320660355490565b905064e8d4a5100081101561324e576132216103e8846156d8565b915064e8d4a51000819003808310156132375750815b808303925061324861dead826142db565b50613277565b83156116c05783816132608286615464565b61326a91906156d8565b61327491906156ef565b91505b6131a830836142db565b600080609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd6d894d6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156132f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133179190615384565b9050613325609954826143d0565b60999190915592915050565b60008315610d2b576000613343613f4b565b90508015613695576133ac73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083613b75565b604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110613402576134026152cf565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166367c15262838a8a8e8e306040518763ffffffff1660e01b81526004016134a1969594939291906158ed565b6000604051808303816000875af11580156134c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261350691908101906152fe565b600081518110613518576135186152cf565b602002602001015190506000811115613692576098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561359a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135be9190615384565b90506135f18b8b60008181106135d6576135d66152cf565b90506020020160208101906135eb9190614dd8565b836141e2565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261368e91839173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015613665573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136899190615384565b6143d0565b9450505b50505b509695505050505050565b6000808313156105fc578260006136be64e8d4a510006127106156d8565b6136ce6080860160608701615a84565b6bffffffffffffffffffffffff166136ec6040870160208801615a84565b613706906bffffffffffffffffffffffff16612710615464565b6137109190615464565b61371a90846156d8565b613724919061529f565b905060008261373260355490565b61373c91906156d8565b90506000826137516040880160208901615a84565b613769906bffffffffffffffffffffffff16846156d8565b61377391906156ef565b905061378b6137856020880188614dd8565b826142db565b60008361379e6080890160608a01615a84565b6137b6906bffffffffffffffffffffffff16856156d8565b6137c091906156ef565b90506137d56137856060890160408a01614dd8565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b8215610c1a57600061382b60355490565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152869173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138bd9190615384565b6138c791906156d8565b6138d191906156ef565b905080156139a7576098546040517fdb006a750000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff169063db006a75906024016020604051808303816000875af115801561394b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061396f9190615384565b11156139a7576040517f8107ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216613a52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613b08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526102ab9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614443565b600054610100900460ff16613ce0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610771565b6128f8828261454f565b60608467ffffffffffffffff811115613d0557613d05614c26565b604051908082528060200260200182016040528015613d2e578160200160208202803683370190505b50905060005b85811015613e2057868682818110613d4e57613d4e6152cf565b9050602002016020810190613d639190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df39190615384565b828281518110613e0557613e056152cf565b6020908102919091010152613e198161542c565b9050613d34565b50613e2e868686868661381a565b60005b85811015613f4157818181518110613e4b57613e4b6152cf565b6020026020010151878783818110613e6557613e656152cf565b9050602002016020810190613e7a9190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613ee6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f0a9190615384565b613f149190615464565b828281518110613f2657613f266152cf565b6020908102919091010152613f3a8161542c565b9050613e31565b5095945050505050565b604080516001808252818301909252600091829190602080830190803683375050609854825192935073ffffffffffffffffffffffffffffffffffffffff1691839150600090613f9d57613f9d6152cf565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517f1c3db2e00000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090911690631c3db2e0906140219030908590600401615ab2565b600060405180830381600087803b15801561403b57600080fd5b505af115801561404f573d6000803e3d6000fd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1692506370a082319150602401602060405180830381865afa1580156140dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141019190615384565b91505090565b60008160000361411957506000919050565b7f000000000000000000000000000000000000000000000000000000000000000082609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd6d894d6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156141aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ce9190615384565b6141d891906156d8565b6105fc91906156ef565b80156128f85760985461420d90839073ffffffffffffffffffffffffffffffffffffffff16836145ff565b6098546040517fa0712d680000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff169063a0712d68906024016020604051808303816000875af115801561427f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a39190615384565b11156128f8576040517fc6e7c7a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216614358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610771565b806035600082825461436a919061529f565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115614406578264e8d4a510006143eb8285615464565b6143f591906156d8565b6143ff91906156ef565b90506105fc565b818311156105fc578264e8d4a5100061441f8483615464565b61442991906156d8565b61443391906156ef565b61443c90615ae1565b9392505050565b60006144a5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661462a9092919063ffffffff16565b8051909150156102ab57808060200190518101906144c39190615722565b6102ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610771565b600054610100900460ff166145e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610771565b60366145f2838261578a565b5060376102ab828261578a565b6146098383614641565b6102ab73ffffffffffffffffffffffffffffffffffffffff841683836146ff565b60606146398484600085614881565b949350505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156146b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146db9190615384565b11156128f8576128f873ffffffffffffffffffffffffffffffffffffffff83168260005b80158061479f57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061479d9190615384565b155b61482b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610771565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526102ab9084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613bc7565b606082471015614913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610771565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161493c9190615b19565b60006040518083038185875af1925050503d8060008114614979576040519150601f19603f3d011682016040523d82523d6000602084013e61497e565b606091505b5091509150612e4c8783838760608315614a20578251600003614a195773ffffffffffffffffffffffffffffffffffffffff85163b614a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610771565b5081614639565b6146398383815115614a355781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107719190614aab565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614aa2578181015183820152602001614a8a565b50506000910152565b6020815260008251806020840152614aca816040850160208701614a87565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114614b1e57600080fd5b50565b60008060408385031215614b3457600080fd5b8235614b3f81614afc565b946020939093013593505050565b60008083601f840112614b5f57600080fd5b50813567ffffffffffffffff811115614b7757600080fd5b6020830191508360208260051b8501011115614b9257600080fd5b9250929050565b600080600060408486031215614bae57600080fd5b83359250602084013567ffffffffffffffff811115614bcc57600080fd5b614bd886828701614b4d565b9497909650939450505050565b600080600060608486031215614bfa57600080fd5b8335614c0581614afc565b92506020840135614c1581614afc565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614c9c57614c9c614c26565b604052919050565b8035614caf81614afc565b919050565b600080600060608486031215614cc957600080fd5b833567ffffffffffffffff80821115614ce157600080fd5b818601915086601f830112614cf557600080fd5b8135602082821115614d0957614d09614c26565b614d39817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614c55565b92508183528881838601011115614d4f57600080fd5b8181850182850137600081838501015282965080880135955050505050614d7860408501614ca4565b90509250925092565b600080600060408486031215614d9657600080fd5b833567ffffffffffffffff811115614dad57600080fd5b614db986828701614b4d565b9094509250506020840135614dcd81614afc565b809150509250925092565b600060208284031215614dea57600080fd5b813561443c81614afc565b600081518084526020808501945080840160005b83811015614e3b57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614e09565b509495945050505050565b60208152600061443c6020830184614df5565b60008060008060008060808789031215614e7257600080fd5b863595506020870135614e8481614afc565b9450604087013567ffffffffffffffff80821115614ea157600080fd5b614ead8a838b01614b4d565b90965094506060890135915080821115614ec657600080fd5b50614ed389828a01614b4d565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614e3b57815187529582019590820190600101614ef9565b60208152600061443c6020830184614ee5565b604081526000614f3b6040830185614df5565b8281036020840152614f4d8185614ee5565b95945050505050565b600080600080600080600080600060a08a8c031215614f7457600080fd5b893567ffffffffffffffff80821115614f8c57600080fd5b614f988d838e01614b4d565b909b50995060208c0135915080821115614fb157600080fd5b614fbd8d838e01614b4d565b909950975060408c01359150614fd282614afc565b90955060608b01359080821115614fe857600080fd5b614ff48d838e01614b4d565b909650945060808c013591508082111561500d57600080fd5b5061501a8c828d01614b4d565b915080935050809150509295985092959850929598565b60006020828403121561504357600080fd5b813567ffffffffffffffff81111561505a57600080fd5b82016101a0818503121561443c57600080fd5b60208152815160208201526000602083015160a0604084015261509360c0840182614ee5565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff8211156150d7576150d7614c26565b5060051b60200190565b600082601f8301126150f257600080fd5b81356020615107615102836150bd565b614c55565b82815260059290921b8401810191818101908684111561512657600080fd5b8286015b84811015613695578035835291830191830161512a565b60008060006040848603121561515657600080fd5b833567ffffffffffffffff8082111561516e57600080fd5b61517a878388016150e1565b9450602086013591508082111561519057600080fd5b50614bd886828701614b4d565b600080604083850312156151b057600080fd5b823567ffffffffffffffff8111156151c757600080fd5b6151d3858286016150e1565b92505060208301356151e481614afc565b809150509250929050565b6000806040838503121561520257600080fd5b823561520d81614afc565b915060208301356151e481614afc565b600181811c9082168061523157607f821691505b60208210810361526a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105fc576105fc615270565b6000602082840312156152c457600080fd5b815161443c81614afc565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602080838503121561531157600080fd5b825167ffffffffffffffff81111561532857600080fd5b8301601f8101851361533957600080fd5b8051615347615102826150bd565b81815260059190911b8201830190838101908783111561536657600080fd5b928401925b82841015612e4c5783518252928401929084019061536b565b60006020828403121561539657600080fd5b5051919050565b600060208083850312156153b057600080fd5b825167ffffffffffffffff8111156153c757600080fd5b8301601f810185136153d857600080fd5b80516153e6615102826150bd565b81815260059190911b8201830190838101908783111561540557600080fd5b928401925b82841015612e4c57835161541d81614afc565b8252928401929084019061540a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361545d5761545d615270565b5060010190565b818103818111156105fc576105fc615270565b8481528360208201526080604082015260006154966080830185614ee5565b8281036060840152612e4c8185614ee5565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126154dd57600080fd5b83018035915067ffffffffffffffff8211156154f857600080fd5b6020019150600581901b3603821315614b9257600080fd5b808202600082127f80000000000000000000000000000000000000000000000000000000000000008414161561554857615548615270565b81810583148215176105fc576105fc615270565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261559a5761559a61555c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156155ee576155ee615270565b500590565b80820182811260008312801582168215821617156120a7576120a7615270565b8183526000602080850194508260005b85811015614e3b57813561563681614afc565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101615623565b606081526000615672606083018789615613565b82810360208401526156848187614ee5565b905082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156156be57600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176105fc576105fc615270565b6000826156fe576156fe61555c565b500490565b838152826020820152606060408201526000614f4d6060830184614ee5565b60006020828403121561573457600080fd5b8151801515811461443c57600080fd5b601f8211156102ab57600081815260208120601f850160051c8101602086101561576b5750805b601f850160051c820191505b818110156139a757828155600101615777565b815167ffffffffffffffff8111156157a4576157a4614c26565b6157b8816157b2845461521d565b84615744565b602080601f83116001811461580b57600084156157d55750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556139a7565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561585857888601518255948401946001909101908401615839565b508582101561589457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6080815260006159006080830189614df5565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615a47577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18e360301811261597f57600080fd5b8d016060813561598e81614afc565b73ffffffffffffffffffffffffffffffffffffffff908116865282880135906159b682614afc565b1685880152604082810135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10181126159f257600080fd5b90920187810192903567ffffffffffffffff811115615a1057600080fd5b803603841315615a1f57600080fd5b8282880152615a3183880182866158a4565b978901979650505092860192505060010161591e565b50508581036040870152615a5c81898b615613565b945050505050612e4c606083018473ffffffffffffffffffffffffffffffffffffffff169052565b600060208284031215615a9657600080fd5b81356bffffffffffffffffffffffff8116811461443c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006146396040830184614df5565b60007f80000000000000000000000000000000000000000000000000000000000000008203615b1257615b12615270565b5060000390565b60008251615b2b818460208701614a87565b919091019291505056fea2646970667358221220b151108bac0165f38503c420d18d38cf48096db92aba8f1531417ac8a6f6cf8864736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd1300000000000000000000000033e52c206d584550193e642c8982f2fff63399940000000000000000000000003d9819210a31b4961b30ef54be2aed79b9c9cd3b", + "nonce": "0x28", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x5fda4f8c302c36e7f5f82765166b2e8dfb826425240d796ab9005cb8d8abcdcf", + "transactionType": "CREATE", + "contractName": "GearboxV3Strategy", + "contractAddress": "0xb170F18dca153752b2F35304e5ea581373095f4e", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x33E52c206d584550193E642C8982f2Fff6339994" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x67069f", + "value": "0x0", + "data": "0x6101006040523480156200001257600080fd5b5060405162005f1638038062005f168339810160408190526200003591620000f0565b82826000816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b031660e05250620001449050565b6001600160a01b0381168114620000ed57600080fd5b50565b6000806000606084860312156200010657600080fd5b83516200011381620000d7565b60208501519093506200012681620000d7565b60408501519092506200013981620000d7565b809150509250925092565b60805160a05160c05160e051615d60620001b6600039600081816102750152818161344201526134f4015260008181610e2401528181610e520152612ad4015260008181610d0f01528181612b7201526130200152600081816122500152818161232c015261293c0152615d606000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806395d89b411161010f578063c1a0ff4c116100a2578063dd62ed3e11610071578063dd62ed3e14610497578063e173ad25146104dd578063ebbd6bc7146104e5578063fc195d8c146104f857600080fd5b8063c1a0ff4c14610449578063c1a7d80e14610451578063c8d31e7414610464578063d9d7858a1461047757600080fd5b8063a457c2d7116100de578063a457c2d7146103fb578063a63e8c4b1461040e578063a9059cbb14610416578063beef8a711461042957600080fd5b806395d89b41146103aa5780639b6aaa47146103b25780639f2fd759146103c8578063a3ea6c97146103e857600080fd5b8063395093511161018757806371a973051161015657806371a973051461034d578063776c23fb146103625780637817bf4a1461038257806384ba89e3146103a257600080fd5b806339509351146102de5780634f3bddeb146102f15780636c60d9e71461030457806370a082311461031757600080fd5b806323b872dd116101c357806323b872dd1461025d5780632b3297f9146102705780632ce5183f146102bc578063313ce567146102cf57600080fd5b806306fdde03146101f5578063095ea7b3146102135780631480fce31461023657806318160ddd1461024b575b600080fd5b6101fd61050b565b60405161020a9190614b64565b60405180910390f35b610226610221366004614bd7565b61059d565b604051901515815260200161020a565b610249610244366004614c4f565b505050565b005b6035545b60405190815260200161020a565b61022661026b366004614c9b565b6105b7565b6102977f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161020a565b6102496102ca366004614bd7565b6105db565b6040516012815260200161020a565b6102266102ec366004614bd7565b610618565b6102496102ff366004614d6a565b610664565b610249610312366004614e37565b610ccd565b61024f610325366004614e8e565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b610355610d0b565b60405161020a9190614efc565b609a546102979073ffffffffffffffffffffffffffffffffffffffff1681565b610395610390366004614f0f565b610dd7565b60405161020a9190614fcb565b61024f610e1f565b6101fd610e74565b6103ba610e83565b60405161020a929190614fde565b6098546102979073ffffffffffffffffffffffffffffffffffffffff1681565b61024f6103f636600461500c565b610ea1565b610226610409366004614bd7565b61127d565b61039561134e565b610226610424366004614bd7565b611399565b61043c6104373660046150e7565b6113a7565b60405161020a9190615123565b610395611fb8565b61024961045f3660046151f7565b612098565b61024f610472366004615253565b612170565b6099546102979073ffffffffffffffffffffffffffffffffffffffff1681565b61024f6104a53660046152a5565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6101fd6121b3565b6102496104f3366004614bd7565b6121c2565b610395610506366004614f0f565b6121f9565b60606036805461051a906152d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610546906152d3565b80156105935780601f1061056857610100808354040283529160200191610593565b820191906000526020600020905b81548152906001019060200180831161057657829003601f168201915b5050505050905090565b6000336105ab8185856123f6565b60019150505b92915050565b6000336105c58582856125a9565b6105d085858561267a565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361060782826128f0565b61061230858561267a565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105ab908290869061065f908790615355565b6123f6565b600054610100900460ff16158080156106845750600054600160ff909116105b8061069e5750303b15801561069e575060005460ff166001145b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561078d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107978484612a00565b609a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155604080517f72f702f300000000000000000000000000000000000000000000000000000000815290516372f702f3916004808201926020929091908290030181865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190615368565b609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff1663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109019190615368565b609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556000610950610d0b565b905080516001141580610a395750609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ef9190615368565b73ffffffffffffffffffffffffffffffffffffffff1681600081518110610a1857610a18615385565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a7b57610a46610e1f565b6040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260040161072691815260200190565b609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0c91906153b4565b610b179060026153d7565b610b2290600a615513565b609c55609954604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff909216916318160ddd916004808201926020929091908290030181865afa158015610b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb99190615522565b609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4a9190615522565b609c54610c57919061553b565b610c619190615581565b609b5550801561061257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610cf982826128f0565b610d04858585612c86565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610d51610e1f565b6040518263ffffffff1660e01b8152600401610d6f91815260200190565b600060405180830381865afa158015610d8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610dd29190810190615595565b905090565b6060610e037fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336128f0565b610e1287878888888888612e21565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610e4f575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461051a906152d3565b6060803215610e9157600080fd5b610e99612e90565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610ecf82826128f0565b60008b67ffffffffffffffff811115610eea57610eea614cdc565b604051908082528060200260200182016040528015610f13578160200160208202803683370190505b50905060005b8c811015611005578d8d82818110610f3357610f33615385565b9050602002016020810190610f489190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610fb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd89190615522565b828281518110610fea57610fea615385565b6020908102919091010152610ffe81615624565b9050610f19565b5061103f8d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff81111561105a5761105a614cdc565b604051908082528060200260200182016040528015611083578160200160208202803683370190505b50905060005b8d811015611175578e8e828181106110a3576110a3615385565b90506020020160208101906110b89190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111489190615522565b82828151811061115a5761115a615385565b602090810291909101015261116e81615624565b9050611089565b5060006111b68d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612f70915050565b90506111c58f8f848d8d6131e1565b60006112128e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612f70565b90506000611220838361322c565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc8161124e858561565c565b8787604051611260949392919061566f565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610726565b6105d082868684036123f6565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061138957611389615385565b6020908102919091010152919050565b6000336105ab81858561267a565b6113d96040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6114037fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336128f0565b60008061141360608501856156a0565b905067ffffffffffffffff81111561142d5761142d614cdc565b604051908082528060200260200182016040528015611456578160200160208202803683370190505b50905060005b61146960608601866156a0565b90508110156115815761147f60608601866156a0565b8281811061148f5761148f615385565b90506020020160208101906114a49190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115349190615522565b82828151811061154657611546615385565b602002602001018181525050600082828151811061156657611566615385565b6020026020010151111561157957600192505b60010161145c565b506115938161045f60408701876156a0565b6115a860a085013561024460408701876156a0565b6115b0614b22565b6115be8561010001356132b3565b604085015260006115f46115d560608801886156a0565b6115e260208a018a6156a0565b6115ef60408c018c6156a0565b613409565b905064e8d4a5100085604001518261160c9190615708565b6116169190615754565b61162090826157bc565b8560400181815161163191906157bc565b905250506040840151611648906101208701613754565b506116a161165960808701876156a0565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061169c92505050610100880160e08901614e8e565b612f70565b81526000808060a088013586156117f25760006116c56101008b0160e08c01614e8e565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6116ed60608d018d6156a0565b8a8e80608001906116fe91906156a0565b6040518663ffffffff1660e01b815260040161171e959493929190615827565b602060405180830381865afa15801561173b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175f9190615522565b905064e8d4a5100061177060355490565b101561178957611782816103e861553b565b93506117dc565b8551156117aa5785516035546117a090839061553b565b6117829190615581565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156117ec578394506117f0565b8194505b505b600061180160608b018b6156a0565b905067ffffffffffffffff81111561181b5761181b614cdc565b604051908082528060200260200182016040528015611844578160200160208202803683370190505b509050600082851115611c8f5785156119055760005b61186760608d018d6156a0565b90508110156118ff5785878a838151811061188457611884615385565b6020026020010151028161189a5761189a615552565b048382815181106118ad576118ad615385565b6020026020010181815250508281815181106118cb576118cb615385565b60200260200101518982815181106118e5576118e5615385565b60209081029190910101805191909103905260010161185a565b50600190505b6000885167ffffffffffffffff81111561192157611921614cdc565b60405190808252806020026020018201604052801561194a578160200160208202803683370190505b50905060006119598d806156a0565b90501115611b2f576119c261197160608e018e6156a0565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061061291906156a0565b60005b6119d260608e018e6156a0565b9050811015611b29578981815181106119ed576119ed615385565b6020026020010151828281518110611a0757611a07615385565b602002602001018181525050838181518110611a2557611a25615385565b60200260200101518d8060600190611a3d91906156a0565b83818110611a4d57611a4d615385565b9050602002016020810190611a629190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af29190615522565b611afc919061565c565b8a8281518110611b0e57611b0e615385565b6020908102919091010152611b2281615624565b90506119c5565b50611b91565b60005b611b3f60608e018e6156a0565b9050811015611b8f57898181518110611b5a57611b5a615385565b6020026020010151828281518110611b7457611b74615385565b6020908102919091010152611b8881615624565b9050611b32565b505b611bb7611ba160608e018e6156a0565b8b8f8060400190611bb291906156a0565b6131e1565b611c1a611bc760808e018e6156a0565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e001602081019061169c9190614e8e565b602089018190528851611c2c9161322c565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611c639161565c565b838c604051611c75949392919061566f565b60405180910390a1611c878786615355565b945050611ee6565b84831115611e77578515611ca65785830392508593505b611ccc611cb660608d018d6156a0565b858e8060400190611cc791906156a0565b6138ce565b611cd63084613992565b506001611d2c611ce960808d018d6156a0565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061169c925050506101008e0160e08f01614e8e565b602088015260005b611d4160608d018d6156a0565b9050811015611e3157611d5760608d018d6156a0565b82818110611d6757611d67615385565b9050602002016020810190611d7c9190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0c9190615522565b838281518110611e1e57611e1e615385565b6020908102919091010152600101611d34565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611e6a9186919086906158a1565b60405180910390a1611ee6565b8515611ede5782935060005b611e9060608d018d6156a0565b9050811015611ed857888181518110611eab57611eab615385565b6020026020010151838281518110611ec557611ec5615385565b6020908102919091010152600101611e83565b50600190505b865160208801525b8015611f8e5760005b611efc60608d018d6156a0565b9050811015611f8c57611f84611f1860e08e0160c08f01614e8e565b848381518110611f2a57611f2a615385565b60200260200101518e8060600190611f4291906156a0565b85818110611f5257611f52615385565b9050602002016020810190611f679190614e8e565b73ffffffffffffffffffffffffffffffffffffffff169190613b58565b600101611eef565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b6040805160018082528183019092526060916020808301908036833701905050609a546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529192506120769173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120719190615522565b613c2c565b8160008151811061208957612089615385565b60200260200101818152505090565b609a546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526d04ee2d6d415b85acef81000000009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121389190615522565b1115610244576040517f09a3940800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361219e82826128f0565b6121a88585612f70565b92505b505092915050565b60606096805461051a906152d3565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336121ee82826128f0565b61061284308561267a565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156122ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d091906158c0565b1580156123ae57506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ac91906158c0565b155b156123e7576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610726565b610e1287308888888888612e21565b73ffffffffffffffffffffffffffffffffffffffff8316612498576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff821661253b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610612578181101561266d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610726565b61061284848484036123f6565b73ffffffffffffffffffffffffffffffffffffffff831661271d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff82166127c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128e39086815260200190565b60405180910390a3610612565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a791906158c0565b6129fc576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610726565b5050565b600054610100900460ff16612a97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610726565b8151600003612ad2576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000612b385780612b2e576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055612b70565b8015612b70576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e612bb4610e1f565b6040518263ffffffff1660e01b8152600401612bd291815260200190565b60006040518083038186803b158015612bea57600080fd5b505afa158015612bfe573d6000803e3d6000fd5b505050508160969081612c119190615928565b506129fc6040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613cd1565b609a546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d199190615522565b9050612d2481613d72565b6000612d2e610d0b565b9050610d048382600081518110612d4757612d47615385565b60209081029190910101516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de19190615522565b83600081518110612df457612df4615385565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16613b589092919063ffffffff16565b60606000612e3286868b8787613ea1565b9050612e3e888a613992565b60005b85811015612e8157612e7988838381518110612e5f57612e5f615385565b6020026020010151898985818110611f5257611f52615385565b600101612e41565b5090505b979650505050505050565b60408051600180825281830190925260609182916000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683375050609854845192935073ffffffffffffffffffffffffffffffffffffffff1691849150600090612f0757612f07615385565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f49614102565b81600081518110612f5c57612f5c615385565b602090810291909101015290939092509050565b609a546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612fe3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130079190615522565b905080156131da57600061301a82613c2c565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a613062610e1f565b6040518263ffffffff1660e01b815260040161308091815260200190565b600060405180830381865afa15801561309d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526130e39190810190615595565b90508473ffffffffffffffffffffffffffffffffffffffff16639115900c8260008151811061311457613114615385565b6020026020010151848960008151811061313057613130615385565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa1580156131b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d59190615522565b935050505b5092915050565b610d04858560008181106131f7576131f7615385565b905060200201602081019061320c9190614e8e565b8460008151811061321f5761321f615385565b6020026020010151614217565b60008061323860355490565b905064e8d4a51000811015613280576132536103e88461553b565b915064e8d4a51000819003808310156132695750815b808303925061327a61dead82614394565b506132a9565b83156117aa578381613292828661565c565b61329c919061553b565b6132a69190615581565b91505b6131da3083614394565b600080609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133479190615522565b609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d89190615522565b609c546133e5919061553b565b6133ef9190615581565b90506133fd609b5482614489565b609b9190915592915050565b60008315610e1557600061341b614102565b90508015613749576098546134679073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000083613b58565b604080516001808252818301909252600091602080830190803683375050609854825192935073ffffffffffffffffffffffffffffffffffffffff16918391506000906134b6576134b6615385565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166367c15262838a8a8e8e306040518763ffffffff1660e01b815260040161355596959493929190615a8b565b6000604051808303816000875af1158015613574573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526135ba9190810190615c22565b6000815181106135cc576135cc615385565b60200260200101519050600081111561374657609a546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561364e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136729190615522565b90506136a58b8b600081811061368a5761368a615385565b905060200201602081019061369f9190614e8e565b83614217565b609a546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261374291839173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015613719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373d9190615522565b614489565b9450505b50505b509695505050505050565b6000808313156105b15782600061377264e8d4a5100061271061553b565b6137826080860160608701615ca8565b6bffffffffffffffffffffffff166137a06040870160208801615ca8565b6137ba906bffffffffffffffffffffffff1661271061565c565b6137c4919061565c565b6137ce908461553b565b6137d89190615355565b90506000826137e660355490565b6137f0919061553b565b90506000826138056040880160208901615ca8565b61381d906bffffffffffffffffffffffff168461553b565b6138279190615581565b905061383f6138396020880188614e8e565b82614394565b6000836138526080890160608a01615ca8565b61386a906bffffffffffffffffffffffff168561553b565b6138749190615581565b90506138896138396060890160408a01614e8e565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b60006138d960355490565b609a546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152869173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061396b9190615522565b613975919061553b565b61397f9190615581565b905061398a81613d72565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216613a35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613aeb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526102449084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526144fc565b600081600003613c3e57506000919050565b6099546040517f4cdad5060000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff90911690634cdad50690602401602060405180830381865afa158015613cad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b19190615522565b600054610100900460ff16613d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610726565b6129fc8282614608565b8015613e9e57609a546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90602401600060405180830381600087803b158015613de457600080fd5b505af1158015613df8573d6000803e3d6000fd5b50506099546040517fba087652000000000000000000000000000000000000000000000000000000008152600481018590523060248201819052604482015273ffffffffffffffffffffffffffffffffffffffff909116925063ba08765291506064016020604051808303816000875af1158015613e7a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fc9190615522565b50565b60608467ffffffffffffffff811115613ebc57613ebc614cdc565b604051908082528060200260200182016040528015613ee5578160200160208202803683370190505b50905060005b85811015613fd757868682818110613f0557613f05615385565b9050602002016020810190613f1a9190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613faa9190615522565b828281518110613fbc57613fbc615385565b6020908102919091010152613fd081615624565b9050613eeb565b50613fe586868686866138ce565b60005b858110156140f85781818151811061400257614002615385565b602002602001015187878381811061401c5761401c615385565b90506020020160208101906140319190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561409d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140c19190615522565b6140cb919061565c565b8282815181106140dd576140dd615385565b60209081029190910101526140f181615624565b9050613fe8565b5095945050505050565b609a54604080517f4e71d92d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691634e71d92d916004808301928692919082900301818387803b15801561416d57600080fd5b505af1158015614181573d6000803e3d6000fd5b50506098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff90911692506370a082319150602401602060405180830381865afa1580156141f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd29190615522565b80156129fc5760995461424290839073ffffffffffffffffffffffffffffffffffffffff16836146b8565b6099546040517f6e553f650000000000000000000000000000000000000000000000000000000081526004810183905230602482015260009173ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af11580156142ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142de9190615522565b609954609a5491925061430b9173ffffffffffffffffffffffffffffffffffffffff9182169116836146b8565b609a546040517fb6b55f250000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff9091169063b6b55f2590602401600060405180830381600087803b15801561437757600080fd5b505af115801561438b573d6000803e3d6000fd5b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216614411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610726565b80603560008282546144239190615355565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000828211156144bf578264e8d4a510006144a4828561565c565b6144ae919061553b565b6144b89190615581565b90506105b1565b818311156105b1578264e8d4a510006144d8848361565c565b6144e2919061553b565b6144ec9190615581565b6144f590615cd6565b9392505050565b600061455e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166146e39092919063ffffffff16565b805190915015610244578080602001905181019061457c91906158c0565b610244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610726565b600054610100900460ff1661469f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610726565b60366146ab8382615928565b5060376102448282615928565b6146c283836146fa565b61024473ffffffffffffffffffffffffffffffffffffffff841683836147b8565b60606146f2848460008561493a565b949350505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147949190615522565b11156129fc576129fc73ffffffffffffffffffffffffffffffffffffffff83168260005b80158061485857506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148569190615522565b155b6148e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610726565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526102449084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613baa565b6060824710156149cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610726565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516149f59190615d0e565b60006040518083038185875af1925050503d8060008114614a32576040519150601f19603f3d011682016040523d82523d6000602084013e614a37565b606091505b5091509150612e858783838760608315614ad9578251600003614ad25773ffffffffffffffffffffffffffffffffffffffff85163b614ad2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610726565b50816146f2565b6146f28383815115614aee5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107269190614b64565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614b5b578181015183820152602001614b43565b50506000910152565b6020815260008251806020840152614b83816040850160208701614b40565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114613e9e57600080fd5b60008060408385031215614bea57600080fd5b8235614bf581614bb5565b946020939093013593505050565b60008083601f840112614c1557600080fd5b50813567ffffffffffffffff811115614c2d57600080fd5b6020830191508360208260051b8501011115614c4857600080fd5b9250929050565b600080600060408486031215614c6457600080fd5b83359250602084013567ffffffffffffffff811115614c8257600080fd5b614c8e86828701614c03565b9497909650939450505050565b600080600060608486031215614cb057600080fd5b8335614cbb81614bb5565b92506020840135614ccb81614bb5565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614d5257614d52614cdc565b604052919050565b8035614d6581614bb5565b919050565b600080600060608486031215614d7f57600080fd5b833567ffffffffffffffff80821115614d9757600080fd5b818601915086601f830112614dab57600080fd5b8135602082821115614dbf57614dbf614cdc565b614def817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614d0b565b92508183528881838601011115614e0557600080fd5b8181850182850137600081838501015282965080880135955050505050614e2e60408501614d5a565b90509250925092565b600080600060408486031215614e4c57600080fd5b833567ffffffffffffffff811115614e6357600080fd5b614e6f86828701614c03565b9094509250506020840135614e8381614bb5565b809150509250925092565b600060208284031215614ea057600080fd5b81356144f581614bb5565b600081518084526020808501945080840160005b83811015614ef157815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614ebf565b509495945050505050565b6020815260006144f56020830184614eab565b60008060008060008060808789031215614f2857600080fd5b863595506020870135614f3a81614bb5565b9450604087013567ffffffffffffffff80821115614f5757600080fd5b614f638a838b01614c03565b90965094506060890135915080821115614f7c57600080fd5b50614f8989828a01614c03565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614ef157815187529582019590820190600101614faf565b6020815260006144f56020830184614f9b565b604081526000614ff16040830185614eab565b82810360208401526150038185614f9b565b95945050505050565b600080600080600080600080600060a08a8c03121561502a57600080fd5b893567ffffffffffffffff8082111561504257600080fd5b61504e8d838e01614c03565b909b50995060208c013591508082111561506757600080fd5b6150738d838e01614c03565b909950975060408c0135915061508882614bb5565b90955060608b0135908082111561509e57600080fd5b6150aa8d838e01614c03565b909650945060808c01359150808211156150c357600080fd5b506150d08c828d01614c03565b915080935050809150509295985092959850929598565b6000602082840312156150f957600080fd5b813567ffffffffffffffff81111561511057600080fd5b82016101a081850312156144f557600080fd5b60208152815160208201526000602083015160a0604084015261514960c0840182614f9b565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff82111561518d5761518d614cdc565b5060051b60200190565b600082601f8301126151a857600080fd5b813560206151bd6151b883615173565b614d0b565b82815260059290921b840181019181810190868411156151dc57600080fd5b8286015b8481101561374957803583529183019183016151e0565b60008060006040848603121561520c57600080fd5b833567ffffffffffffffff8082111561522457600080fd5b61523087838801615197565b9450602086013591508082111561524657600080fd5b50614c8e86828701614c03565b6000806040838503121561526657600080fd5b823567ffffffffffffffff81111561527d57600080fd5b61528985828601615197565b925050602083013561529a81614bb5565b809150509250929050565b600080604083850312156152b857600080fd5b82356152c381614bb5565b9150602083013561529a81614bb5565b600181811c908216806152e757607f821691505b602082108103615320577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105b1576105b1615326565b60006020828403121561537a57600080fd5b81516144f581614bb5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156153c657600080fd5b815160ff811681146144f557600080fd5b60ff81811683821602908116908181146131da576131da615326565b600181815b8085111561544c57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561543257615432615326565b8085161561543f57918102915b93841c93908002906153f8565b509250929050565b600082615463575060016105b1565b81615470575060006105b1565b81600181146154865760028114615490576154ac565b60019150506105b1565b60ff8411156154a1576154a1615326565b50506001821b6105b1565b5060208310610133831016604e8410600b84101617156154cf575081810a6105b1565b6154d983836153f3565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561550b5761550b615326565b029392505050565b60006144f560ff841683615454565b60006020828403121561553457600080fd5b5051919050565b80820281158282048414176105b1576105b1615326565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261559057615590615552565b500490565b600060208083850312156155a857600080fd5b825167ffffffffffffffff8111156155bf57600080fd5b8301601f810185136155d057600080fd5b80516155de6151b882615173565b81815260059190911b820183019083810190878311156155fd57600080fd5b928401925b82841015612e8557835161561581614bb5565b82529284019290840190615602565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361565557615655615326565b5060010190565b818103818111156105b1576105b1615326565b84815283602082015260806040820152600061568e6080830185614f9b565b8281036060840152612e858185614f9b565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126156d557600080fd5b83018035915067ffffffffffffffff8211156156f057600080fd5b6020019150600581901b3603821315614c4857600080fd5b808202600082127f80000000000000000000000000000000000000000000000000000000000000008414161561574057615740615326565b81810583148215176105b1576105b1615326565b60008261576357615763615552565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156157b7576157b7615326565b500590565b80820182811260008312801582168215821617156121ab576121ab615326565b8183526000602080850194508260005b85811015614ef15781356157ff81614bb5565b73ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016157ec565b60608152600061583b6060830187896157dc565b828103602084015261584d8187614f9b565b905082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561588757600080fd5b8360051b8086602084013701602001979650505050505050565b8381528260208201526060604082015260006150036060830184614f9b565b6000602082840312156158d257600080fd5b815180151581146144f557600080fd5b601f82111561024457600081815260208120601f850160051c810160208610156159095750805b601f850160051c820191505b8181101561398a57828155600101615915565b815167ffffffffffffffff81111561594257615942614cdc565b6159568161595084546152d3565b846158e2565b602080601f8311600181146159a957600084156159735750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561398a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156159f6578886015182559484019460019091019084016159d7565b5085821015615a3257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b608081526000615a9e6080830189614eab565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615be5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18e3603018112615b1d57600080fd5b8d0160608135615b2c81614bb5565b73ffffffffffffffffffffffffffffffffffffffff90811686528288013590615b5482614bb5565b1685880152604082810135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112615b9057600080fd5b90920187810192903567ffffffffffffffff811115615bae57600080fd5b803603841315615bbd57600080fd5b8282880152615bcf8388018286615a42565b9789019796505050928601925050600101615abc565b50508581036040870152615bfa81898b6157dc565b945050505050612e85606083018473ffffffffffffffffffffffffffffffffffffffff169052565b60006020808385031215615c3557600080fd5b825167ffffffffffffffff811115615c4c57600080fd5b8301601f81018513615c5d57600080fd5b8051615c6b6151b882615173565b81815260059190911b82018301908381019087831115615c8a57600080fd5b928401925b82841015612e8557835182529284019290840190615c8f565b600060208284031215615cba57600080fd5b81356bffffffffffffffffffffffff811681146144f557600080fd5b60007f80000000000000000000000000000000000000000000000000000000000000008203615d0757615d07615326565b5060000390565b60008251615d20818460208701614b40565b919091019291505056fea2646970667358221220a177bd400ab19b1baed3c50c5e07e76be9c9b1bbae4a62635d155d3b9501aa6a64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd1300000000000000000000000033e52c206d584550193e642c8982f2fff6339994", + "nonce": "0x29", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x68108b6f0ed11f97c495be98ff227d8d1f519b24c2abdd16b90fb7191dc8a965", + "transactionType": "CREATE", + "contractName": "MorphoAaveV2Strategy", + "contractAddress": "0xdD55DAb8A52b1E2983a9c7297650DBA857dB4e3b", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x777777c9898D384F785Ee44Acfe945efDFf5f3E0", + "0x4da27a545c0c5B758a6BA100e3a049001de870f5", + "0x33E52c206d584550193E642C8982f2Fff6339994", + "0x507fA343d0A90786d86C7cd885f5C49263A91FF4" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x5755d4", + "value": "0x0", + "data": "0x6101606040523480156200001257600080fd5b506040516200519a3803806200519a833981016040819052620000359162000161565b858585858584846000816001600160a01b038116620000675760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000955760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c75760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038316620000ef5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001175760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e05291821661010052811661012052929092166101405250620001f595505050505050565b6001600160a01b03811681146200015e57600080fd5b50565b60008060008060008060c087890312156200017b57600080fd5b8651620001888162000148565b60208801519096506200019b8162000148565b6040880151909550620001ae8162000148565b6060880151909450620001c18162000148565b6080880151909350620001d48162000148565b60a0880151909250620001e78162000148565b809150509295509295509295565b60805160a05160c05160e051610100516101205161014051614efd6200029d600039600081816102d7015261305e015260006105f40152600081816105590152818161260f01528181612d0b0152818161348001526134fa0152600061035b0152600081816109030152818161093101526138c40152600081816107f00152818161286f0152613962015260008181611d6401528181611e400152611f560152614efd6000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80638bbcc0e711610160578063c1a0ff4c116100d8578063e173ad251161008c578063ebbd6bc711610071578063ebbd6bc7146105dc578063f70eebf5146105ef578063fc195d8c1461061657600080fd5b8063e173ad25146105c1578063e1e5ae0d146105c957600080fd5b8063c8d31e74116100bd578063c8d31e7414610541578063d8fbc83314610554578063dd62ed3e1461057b57600080fd5b8063c1a0ff4c1461052b578063c1a7d80e1461053357600080fd5b8063a3ea6c971161012f578063a63e8c4b11610114578063a63e8c4b146104f0578063a9059cbb146104f8578063beef8a711461050b57600080fd5b8063a3ea6c97146104ca578063a457c2d7146104dd57600080fd5b80638bbcc0e71461046b57806395d89b411461048b5780639b6aaa4714610493578063a0078347146104a957600080fd5b8063313ce567116101f35780636cc14600116101c257806371a97305116101a757806371a973051461042e5780637817bf4a1461044357806384ba89e31461046357600080fd5b80636cc14600146103e557806370a08231146103f857600080fd5b8063313ce56714610390578063395093511461039f5780634c4d7571146103b25780636c60d9e7146103d257600080fd5b80631480fce31161024a57806323b872dd1161022f57806323b872dd146103435780632b3297f9146103565780632ce5183f1461037d57600080fd5b80631480fce31461031e57806318160ddd1461033157600080fd5b806301a262ed1461027c57806306fdde0314610291578063095ea7b3146102af578063112666b7146102d2575b600080fd5b61028f61028a366004614063565b610629565b005b61029961063f565b6040516102a691906140a9565b60405180910390f35b6102c26102bd366004614127565b6106d1565b60405190151581526020016102a6565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102a6565b61028f61032c36600461419f565b505050565b6035545b6040519081526020016102a6565b6102c26103513660046141eb565b6106eb565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b61028f61038b366004614127565b61070f565b604051601281526020016102a6565b6102c26103ad366004614127565b61074c565b6099546102f99073ffffffffffffffffffffffffffffffffffffffff1681565b61028f6103e036600461422c565b610798565b61028f6103f3366004614063565b6107d6565b610335610406366004614283565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b6104366107ec565b6040516102a691906142f1565b610456610451366004614304565b6108b8565b6040516102a691906143c0565b6103356108fe565b60965461047890600f0b81565b604051600f9190910b81526020016102a6565b610299610953565b61049b610962565b6040516102a69291906143d3565b609654610478907001000000000000000000000000000000009004600f0b81565b6103356104d8366004614401565b610979565b6102c26104eb366004614127565b610d55565b610456610e2b565b6102c2610506366004614127565b610e76565b61051e6105193660046144dc565b610e84565b6040516102a69190614518565b610456611a9c565b61028f61032c366004614675565b61033561054f3660046146d1565b611ae8565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b610335610589366004614723565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b610299611b2b565b61028f6105d7366004614751565b611b3a565b61028f6105ea366004614127565b611cd6565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b610456610624366004614304565b611d0d565b6000336106368282611f0a565b61032c8361201a565b60606036805461064e90614840565b80601f016020809104026020016040519081016040528092919081815260200182805461067a90614840565b80156106c75780601f1061069c576101008083540402835291602001916106c7565b820191906000526020600020905b8154815290600101906020018083116106aa57829003601f168201915b5050505050905090565b6000336106df8185856120a7565b60019150505b92915050565b6000336106f985828561225a565b61070485858561232b565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361073b8282611f0a565b61074630858561232b565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106df90829086906107939087906148c2565b6120a7565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336107c48282611f0a565b6107cf8585856125a1565b5050505050565b6000336107e38282611f0a565b61032c8361276a565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6108326108fe565b6040518263ffffffff1660e01b815260040161085091815260200190565b600060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526108b391908101906148d5565b905090565b60606108e47fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233611f0a565b6108f3878788888888886127eb565b979650505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000001161092e575060985490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461064e90614840565b606080321561097057600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336109a78282611f0a565b60008b67ffffffffffffffff8111156109c2576109c2614568565b6040519080825280602002602001820160405280156109eb578160200160208202803683370190505b50905060005b8c811015610add578d8d82818110610a0b57610a0b614964565b9050602002016020810190610a209190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab09190614993565b828281518110610ac257610ac2614964565b6020908102919091010152610ad6816149ac565b90506109f1565b50610b178d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610b3257610b32614568565b604051908082528060200260200182016040528015610b5b578160200160208202803683370190505b50905060005b8d811015610c4d578e8e82818110610b7b57610b7b614964565b9050602002016020810190610b909190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c209190614993565b828281518110610c3257610c32614964565b6020908102919091010152610c46816149ac565b9050610b61565b506000610c8e8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612858915050565b9050610c9d8f8f848d8d612a2b565b6000610cea8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612858565b90506000610cf88383612a76565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610d2685856149e4565b8787604051610d3894939291906149f7565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61070482868684036120a7565b6040805160018082528183019092526060916000919060208083019080368337019050509050600181600081518110610e6657610e66614964565b6020908102919091010152919050565b6000336106df81858561232b565b610eb66040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b610ee07fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233611f0a565b600080610ef06060850185614a28565b905067ffffffffffffffff811115610f0a57610f0a614568565b604051908082528060200260200182016040528015610f33578160200160208202803683370190505b50905060005b610f466060860186614a28565b905081101561105e57610f5c6060860186614a28565b82818110610f6c57610f6c614964565b9050602002016020810190610f819190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610fed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110119190614993565b82828151811061102357611023614964565b602002602001018181525050600082828151811061104357611043614964565b6020026020010151111561105657600192505b600101610f39565b506110708161032c6040870187614a28565b61108560a085013561032c6040870187614a28565b61108d61402e565b61109b856101000135612afd565b604085015260006110d86110b26060880188614a28565b6110bf60208a018a614a28565b6110cc60408c018c614a28565b60009695505050505050565b905064e8d4a510008560400151826110f09190614a90565b6110fa9190614b0b565b6111049082614b73565b856040018181516111159190614b73565b90525050604084015161112c906101208701612b0c565b5061118561113d6080870187614a28565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061118092505050610100880160e08901614283565b612858565b81526000808060a088013586156112d65760006111a96101008b0160e08c01614283565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6111d160608d018d614a28565b8a8e80608001906111e29190614a28565b6040518663ffffffff1660e01b8152600401611202959493929190614b93565b602060405180830381865afa15801561121f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112439190614993565b905064e8d4a5100061125460355490565b101561126d57611266816103e8614c4b565b93506112c0565b85511561128e578551603554611284908390614c4b565b6112669190614c62565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156112d0578394506112d4565b8194505b505b60006112e560608b018b614a28565b905067ffffffffffffffff8111156112ff576112ff614568565b604051908082528060200260200182016040528015611328578160200160208202803683370190505b5090506000828511156117735785156113e95760005b61134b60608d018d614a28565b90508110156113e35785878a838151811061136857611368614964565b6020026020010151028161137e5761137e614adc565b0483828151811061139157611391614964565b6020026020010181815250508281815181106113af576113af614964565b60200260200101518982815181106113c9576113c9614964565b60209081029190910101805191909103905260010161133e565b50600190505b6000885167ffffffffffffffff81111561140557611405614568565b60405190808252806020026020018201604052801561142e578160200160208202803683370190505b509050600061143d8d80614a28565b90501115611613576114a661145560608e018e614a28565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906107469190614a28565b60005b6114b660608e018e614a28565b905081101561160d578981815181106114d1576114d1614964565b60200260200101518282815181106114eb576114eb614964565b60200260200101818152505083818151811061150957611509614964565b60200260200101518d80606001906115219190614a28565b8381811061153157611531614964565b90506020020160208101906115469190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614993565b6115e091906149e4565b8a82815181106115f2576115f2614964565b6020908102919091010152611606816149ac565b90506114a9565b50611675565b60005b61162360608e018e614a28565b90508110156116735789818151811061163e5761163e614964565b602002602001015182828151811061165857611658614964565b602090810291909101015261166c816149ac565b9050611616565b505b61169b61168560608e018e614a28565b8b8f80604001906116969190614a28565b612a2b565b6116fe6116ab60808e018e614a28565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906111809190614283565b60208901819052885161171091612a76565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611747916149e4565b838c60405161175994939291906149f7565b60405180910390a161176b87866148c2565b9450506119ca565b8483111561195b57851561178a5785830392508593505b6117b061179a60608d018d614a28565b858e80604001906117ab9190614a28565b612c86565b6117ba3084612d71565b5060016118106117cd60808d018d614a28565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611180925050506101008e0160e08f01614283565b602088015260005b61182560608d018d614a28565b90508110156119155761183b60608d018d614a28565b8281811061184b5761184b614964565b90506020020160208101906118609190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156118cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f09190614993565b83828151811061190257611902614964565b6020908102919091010152600101611818565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b39161194e918691908690614c76565b60405180910390a16119ca565b85156119c25782935060005b61197460608d018d614a28565b90508110156119bc5788818151811061198f5761198f614964565b60200260200101518382815181106119a9576119a9614964565b6020908102919091010152600101611967565b50600190505b865160208801525b8015611a725760005b6119e060608d018d614a28565b9050811015611a7057611a686119fc60e08e0160c08f01614283565b848381518110611a0e57611a0e614964565b60200260200101518e8060600190611a269190614a28565b85818110611a3657611a36614964565b9050602002016020810190611a4b9190614283565b73ffffffffffffffffffffffffffffffffffffffff169190612f37565b6001016119d3565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050509050611ac661300b565b81600081518110611ad957611ad9614964565b60200260200101818152505090565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611b168282611f0a565b611b208585612858565b92505b505092915050565b60606097805461064e90614840565b600054610100900460ff1615808015611b5a5750600054600160ff909116105b80611b745750303b158015611b74575060005460ff166001145b611c00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610e15565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611c5e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b611c6b86868686866130d3565b8015611cce57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611d028282611f0a565b61074684308561232b565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015611dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de49190614c95565b158015611ec257506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015611e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec09190614c95565b155b15611efb576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610e15565b6108f3873088888888886127eb565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190614c95565b612016576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610e15565b5050565b600081600f0b138061203b575061203564e8d4a51000614cb7565b81600f0b125b15612072576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316612149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff82166121ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610746578181101561231e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610e15565b61074684848484036120a7565b73ffffffffffffffffffffffffffffffffffffffff83166123ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff8216612471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125949086815260200190565b60405180910390a3610746565b6099546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b15801561265557600080fd5b505af1158015612669573d6000803e3d6000fd5b5050505060006126776107ec565b9050610746828260008151811061269057612690614964565b60209081029190910101516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272a9190614993565b8360008151811061273d5761273d614964565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16612f379092919063ffffffff16565b600081600f0b12156127a8576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b606060006127fc86868b8787613213565b9050612808888a612d71565b60005b8581101561284b576128438883838151811061282957612829614964565b6020026020010151898985818110611a3657611a36614964565b60010161280b565b5098975050505050505050565b60008061286361300b565b90508015612a245760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6128b16108fe565b6040518263ffffffff1660e01b81526004016128cf91815260200190565b600060405180830381865afa1580156128ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261293291908101906148d5565b90508373ffffffffffffffffffffffffffffffffffffffff16639115900c8260008151811061296357612963614964565b6020026020010151848860008151811061297f5761297f614964565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b209190614993565b5092915050565b6107cf85856000818110612a4157612a41614964565b9050602002016020810190612a569190614283565b84600081518110612a6957612a69614964565b6020026020010151613474565b600080612a8260355490565b905064e8d4a51000811015612aca57612a9d6103e884614c4b565b915064e8d4a5100081900380831015612ab35750815b8083039250612ac461dead82613554565b50612af3565b831561128e578381612adc82866149e4565b612ae69190614c4b565b612af09190614c62565b91505b612a243083613554565b6000612b0882613649565b5090565b6000808313156106e557826000612b2a64e8d4a51000612710614c4b565b612b3a6080860160608701614cef565b6bffffffffffffffffffffffff16612b586040870160208801614cef565b612b72906bffffffffffffffffffffffff166127106149e4565b612b7c91906149e4565b612b869084614c4b565b612b9091906148c2565b9050600082612b9e60355490565b612ba89190614c4b565b9050600082612bbd6040880160208901614cef565b612bd5906bffffffffffffffffffffffff1684614c4b565b612bdf9190614c62565b9050612bf7612bf16020880188614283565b82613554565b600083612c0a6080890160608a01614cef565b612c22906bffffffffffffffffffffffff1685614c4b565b612c2c9190614c62565b9050612c41612bf16060890160408a01614283565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b82156107cf576000612c9760355490565b84612ca061300b565b612caa9190614c4b565b612cb49190614c62565b90508015611cce576099546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b158015612d5157600080fd5b505af1158015612d65573d6000803e3d6000fd5b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216612e14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015612eca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261032c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526136e4565b6099546040517fa480b7ed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015230602482015260009182917f00000000000000000000000000000000000000000000000000000000000000009091169063a480b7ed90604401606060405180830381865afa1580156130a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130cb9190614d1d565b949350505050565b600054610100900460ff1661316a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e15565b61317485856137f0565b73ffffffffffffffffffffffffffffffffffffffff83166131c1576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff851617905561320a8261276a565b6107cf8161201a565b60608467ffffffffffffffff81111561322e5761322e614568565b604051908082528060200260200182016040528015613257578160200160208202803683370190505b50905060005b858110156133495786868281811061327757613277614964565b905060200201602081019061328c9190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156132f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061331c9190614993565b82828151811061332e5761332e614964565b6020908102919091010152613342816149ac565b905061325d565b506133578686868686612c86565b60005b8581101561346a5781818151811061337457613374614964565b602002602001015187878381811061338e5761338e614964565b90506020020160208101906133a39190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561340f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134339190614993565b61343d91906149e4565b82828151811061344f5761344f614964565b6020908102919091010152613463816149ac565b905061335a565b5095945050505050565b8015612016576134a5827f000000000000000000000000000000000000000000000000000000000000000083613a76565b6099546040517f0c0a769b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152306024820152604481018390527f000000000000000000000000000000000000000000000000000000000000000090911690630c0a769b90606401600060405180830381600087803b15801561354057600080fd5b505af1158015611cce573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff82166135d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610e15565b80603560008282546135e391906148c2565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b609654600f0b81131561368b576040517fe4efd19b00000000000000000000000000000000000000000000000000000000815260048101829052602401610e15565b6096547001000000000000000000000000000000009004600f0b8112156136e1576040517feaaa5fe600000000000000000000000000000000000000000000000000000000815260048101829052602401610e15565b50565b6000613746826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613aa19092919063ffffffff16565b80519091501561032c57808060200190518101906137649190614c95565b61032c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610e15565b600054610100900460ff16613887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e15565b81516000036138c2576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000613928578061391e576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6098819055613960565b8015613960576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e6139a46108fe565b6040518263ffffffff1660e01b81526004016139c291815260200190565b60006040518083038186803b1580156139da57600080fd5b505afa1580156139ee573d6000803e3d6000fd5b505050508160979081613a019190614d91565b506120166040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613ab0565b613a808383613b51565b61032c73ffffffffffffffffffffffffffffffffffffffff84168383613c0f565b60606130cb8484600085613d91565b600054610100900460ff16613b47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e15565b6120168282613e9f565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015613bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613beb9190614993565b11156120165761201673ffffffffffffffffffffffffffffffffffffffff83168260005b801580613caf57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cad9190614993565b155b613d3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610e15565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261032c9084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401612f89565b606082471015613e23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610e15565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613e4c9190614eab565b60006040518083038185875af1925050503d8060008114613e89576040519150601f19603f3d011682016040523d82523d6000602084013e613e8e565b606091505b50915091506108f387838387613f4f565b600054610100900460ff16613f36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e15565b6036613f428382614d91565b50603761032c8282614d91565b60608315613fe5578251600003613fde5773ffffffffffffffffffffffffffffffffffffffff85163b613fde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e15565b50816130cb565b6130cb8383815115613ffa5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1591906140a9565b60405180604001604052806002906020820280368337509192915050565b8035600f81900b811461405e57600080fd5b919050565b60006020828403121561407557600080fd5b61407e8261404c565b9392505050565b60005b838110156140a0578181015183820152602001614088565b50506000910152565b60208152600082518060208401526140c8816040850160208701614085565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff811681146136e157600080fd5b803561405e816140fa565b6000806040838503121561413a57600080fd5b8235614145816140fa565b946020939093013593505050565b60008083601f84011261416557600080fd5b50813567ffffffffffffffff81111561417d57600080fd5b6020830191508360208260051b850101111561419857600080fd5b9250929050565b6000806000604084860312156141b457600080fd5b83359250602084013567ffffffffffffffff8111156141d257600080fd5b6141de86828701614153565b9497909650939450505050565b60008060006060848603121561420057600080fd5b833561420b816140fa565b9250602084013561421b816140fa565b929592945050506040919091013590565b60008060006040848603121561424157600080fd5b833567ffffffffffffffff81111561425857600080fd5b61426486828701614153565b9094509250506020840135614278816140fa565b809150509250925092565b60006020828403121561429557600080fd5b813561407e816140fa565b600081518084526020808501945080840160005b838110156142e657815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016142b4565b509495945050505050565b60208152600061407e60208301846142a0565b6000806000806000806080878903121561431d57600080fd5b86359550602087013561432f816140fa565b9450604087013567ffffffffffffffff8082111561434c57600080fd5b6143588a838b01614153565b9096509450606089013591508082111561437157600080fd5b5061437e89828a01614153565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b838110156142e6578151875295820195908201906001016143a4565b60208152600061407e6020830184614390565b6040815260006143e660408301856142a0565b82810360208401526143f88185614390565b95945050505050565b600080600080600080600080600060a08a8c03121561441f57600080fd5b893567ffffffffffffffff8082111561443757600080fd5b6144438d838e01614153565b909b50995060208c013591508082111561445c57600080fd5b6144688d838e01614153565b909950975060408c0135915061447d826140fa565b90955060608b0135908082111561449357600080fd5b61449f8d838e01614153565b909650945060808c01359150808211156144b857600080fd5b506144c58c828d01614153565b915080935050809150509295985092959850929598565b6000602082840312156144ee57600080fd5b813567ffffffffffffffff81111561450557600080fd5b82016101a0818503121561407e57600080fd5b60208152815160208201526000602083015160a0604084015261453e60c0840182614390565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156145de576145de614568565b604052919050565b600067ffffffffffffffff82111561460057614600614568565b5060051b60200190565b600082601f83011261461b57600080fd5b8135602061463061462b836145e6565b614597565b82815260059290921b8401810191818101908684111561464f57600080fd5b8286015b8481101561466a5780358352918301918301614653565b509695505050505050565b60008060006040848603121561468a57600080fd5b833567ffffffffffffffff808211156146a257600080fd5b6146ae8783880161460a565b945060208601359150808211156146c457600080fd5b506141de86828701614153565b600080604083850312156146e457600080fd5b823567ffffffffffffffff8111156146fb57600080fd5b6147078582860161460a565b9250506020830135614718816140fa565b809150509250929050565b6000806040838503121561473657600080fd5b8235614741816140fa565b91506020830135614718816140fa565b600080600080600060a0868803121561476957600080fd5b853567ffffffffffffffff8082111561478157600080fd5b818801915088601f83011261479557600080fd5b81356020828211156147a9576147a9614568565b6147d9817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614597565b92508183528a818386010111156147ef57600080fd5b81818501828501376000818385010152829850808a01359750505050506148186040870161411c565b92506148266060870161404c565b91506148346080870161404c565b90509295509295909350565b600181811c9082168061485457607f821691505b60208210810361488d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156106e5576106e5614893565b600060208083850312156148e857600080fd5b825167ffffffffffffffff8111156148ff57600080fd5b8301601f8101851361491057600080fd5b805161491e61462b826145e6565b81815260059190911b8201830190838101908783111561493d57600080fd5b928401925b828410156108f3578351614955816140fa565b82529284019290840190614942565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156149a557600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036149dd576149dd614893565b5060010190565b818103818111156106e5576106e5614893565b848152836020820152608060408201526000614a166080830185614390565b82810360608401526108f38185614390565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a5d57600080fd5b83018035915067ffffffffffffffff821115614a7857600080fd5b6020019150600581901b360382131561419857600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615614ac857614ac8614893565b81810583148215176106e5576106e5614893565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614b1a57614b1a614adc565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614b6e57614b6e614893565b500590565b8082018281126000831280158216821582161715611b2357611b23614893565b6060808252810185905260008660808301825b88811015614be3578235614bb9816140fa565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101614ba6565b508381036020850152614bf68188614390565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614c3157600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176106e5576106e5614893565b600082614c7157614c71614adc565b500490565b8381528260208201526060604082015260006143f86060830184614390565b600060208284031215614ca757600080fd5b8151801515811461407e57600080fd5b60007f80000000000000000000000000000000000000000000000000000000000000008203614ce857614ce8614893565b5060000390565b600060208284031215614d0157600080fd5b81356bffffffffffffffffffffffff8116811461407e57600080fd5b600080600060608486031215614d3257600080fd5b8351925060208401519150604084015190509250925092565b601f82111561032c57600081815260208120601f850160051c81016020861015614d725750805b601f850160051c820191505b81811015611cce57828155600101614d7e565b815167ffffffffffffffff811115614dab57614dab614568565b614dbf81614db98454614840565b84614d4b565b602080601f831160018114614e125760008415614ddc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611cce565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015614e5f57888601518255948401946001909101908401614e40565b5085821015614e9b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614ebd818460208701614085565b919091019291505056fea26469706673582212203ebd6230d080de1a74d4fdf84082e84e7ff7f06861946237375e30bdb0827fff64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000777777c9898d384f785ee44acfe945efdff5f3e00000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f500000000000000000000000033e52c206d584550193e642c8982f2fff6339994000000000000000000000000507fa343d0a90786d86c7cd885f5c49263a91ff4", + "nonce": "0x2a", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7f1f918b80089a7cf9cf5dfb7032132a1d0f4c3b202d2e01994043f7af61a201", + "transactionType": "CREATE", + "contractName": "MorphoCompoundV2Strategy", + "contractAddress": "0x40844863f1a8945499501111f71eCdABDBedDEf5", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x8888882f8f843896699869179fB6E4f7e3B58888", + "0xc00e94Cb662C3520282E6f5717214004A7f26888", + "0x33E52c206d584550193E642C8982f2Fff6339994", + "0x930f1b46e1D081Ec1524efD95752bE3eCe51EF67" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x600b87", + "value": "0x0", + "data": "0x6101606040523480156200001257600080fd5b50604051620059c7380380620059c7833981016040819052620000359162000161565b858585858584846000816001600160a01b038116620000675760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000955760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c75760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038316620000ef5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001175760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e05291821661010052811661012052929092166101405250620001f595505050505050565b6001600160a01b03811681146200015e57600080fd5b50565b60008060008060008060c087890312156200017b57600080fd5b8651620001888162000148565b60208801519096506200019b8162000148565b6040880151909550620001ae8162000148565b6060880151909450620001c18162000148565b6080880151909350620001d48162000148565b60a0880151909250620001e78162000148565b809150509295509295509295565b60805160a05160c05160e0516101005161012051610140516156f9620002ce600039600081816102d701526133a50152600081816105f4015281816128a801528181612c2b01528181612c9601526138f00152600081816105590152818161261101528181613052015281816138580152818161398401526139fe01526000818161035b01528181612c4d0152612d06015260008181610905015281816109330152613e3b0152600081816107f00152818161295a0152613ed9015260008181611d6601528181611e420152611f5801526156f96000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80638bbcc0e711610160578063c1a0ff4c116100d8578063e173ad251161008c578063ebbd6bc711610071578063ebbd6bc7146105dc578063f70eebf5146105ef578063fc195d8c1461061657600080fd5b8063e173ad25146105c1578063e1e5ae0d146105c957600080fd5b8063c8d31e74116100bd578063c8d31e7414610541578063d8fbc83314610554578063dd62ed3e1461057b57600080fd5b8063c1a0ff4c1461052b578063c1a7d80e1461053357600080fd5b8063a3ea6c971161012f578063a63e8c4b11610114578063a63e8c4b146104f0578063a9059cbb146104f8578063beef8a711461050b57600080fd5b8063a3ea6c97146104ca578063a457c2d7146104dd57600080fd5b80638bbcc0e71461046b57806395d89b411461048b5780639b6aaa4714610493578063a0078347146104a957600080fd5b8063313ce567116101f35780636cc14600116101c257806371a97305116101a757806371a973051461042e5780637817bf4a1461044357806384ba89e31461046357600080fd5b80636cc14600146103e557806370a08231146103f857600080fd5b8063313ce56714610390578063395093511461039f5780634c4d7571146103b25780636c60d9e7146103d257600080fd5b80631480fce31161024a57806323b872dd1161022f57806323b872dd146103435780632b3297f9146103565780632ce5183f1461037d57600080fd5b80631480fce31461031e57806318160ddd1461033157600080fd5b806301a262ed1461027c57806306fdde0314610291578063095ea7b3146102af578063112666b7146102d2575b600080fd5b61028f61028a3660046145da565b610629565b005b61029961063f565b6040516102a69190614619565b60405180910390f35b6102c26102bd366004614697565b6106d1565b60405190151581526020016102a6565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102a6565b61028f61032c36600461470f565b505050565b6035545b6040519081526020016102a6565b6102c261035136600461475b565b6106eb565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b61028f61038b366004614697565b61070f565b604051601281526020016102a6565b6102c26103ad366004614697565b61074c565b6099546102f99073ffffffffffffffffffffffffffffffffffffffff1681565b61028f6103e036600461479c565b610798565b61028f6103f33660046145da565b6107d6565b6103356104063660046147f3565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b6104366107ec565b6040516102a69190614861565b610456610451366004614874565b6108b8565b6040516102a69190614930565b610335610900565b60965461047890600f0b81565b604051600f9190910b81526020016102a6565b610299610955565b61049b610964565b6040516102a6929190614943565b609654610478907001000000000000000000000000000000009004600f0b81565b6103356104d8366004614971565b610982565b6102c26104eb366004614697565b610d5e565b610456610e34565b6102c2610506366004614697565b610e7f565b61051e610519366004614a4c565b610e8d565b6040516102a69190614a88565b610456611a9e565b61028f61032c366004614bda565b61033561054f366004614c36565b611aea565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b610335610589366004614c88565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b610299611b2d565b61028f6105d7366004614cb6565b611b3c565b61028f6105ea366004614697565b611cd8565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b610456610624366004614874565b611d0f565b6000336106368282611f0c565b61032c8361201c565b60606036805461064e90614da5565b80601f016020809104026020016040519081016040528092919081815260200182805461067a90614da5565b80156106c75780601f1061069c576101008083540402835291602001916106c7565b820191906000526020600020905b8154815290600101906020018083116106aa57829003601f168201915b5050505050905090565b6000336106df8185856120a9565b60019150505b92915050565b6000336106f985828561225c565b61070485858561232d565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361073b8282611f0c565b61074630858561232d565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106df9082908690610793908790614e27565b6120a9565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336107c48282611f0c565b6107cf8585856125a3565b5050505050565b6000336107e38282611f0c565b61032c8361276c565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610832610900565b6040518263ffffffff1660e01b815260040161085091815260200190565b600060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526108b39190810190614e3a565b905090565b60606108e47fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233611f0c565b6108f3878788888888886127ed565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610930575060985490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461064e90614da5565b606080321561097257600080fd5b61097a61285c565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336109b08282611f0c565b60008b67ffffffffffffffff8111156109cb576109cb614ad8565b6040519080825280602002602001820160405280156109f4578160200160208202803683370190505b50905060005b8c811015610ae6578d8d82818110610a1457610a14614ec9565b9050602002016020810190610a2991906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab99190614ef8565b828281518110610acb57610acb614ec9565b6020908102919091010152610adf81614f11565b90506109fa565b50610b208d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610b3b57610b3b614ad8565b604051908082528060200260200182016040528015610b64578160200160208202803683370190505b50905060005b8d811015610c56578e8e82818110610b8457610b84614ec9565b9050602002016020810190610b9991906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610c05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c299190614ef8565b828281518110610c3b57610c3b614ec9565b6020908102919091010152610c4f81614f11565b9050610b6a565b506000610c978d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612943915050565b9050610ca68f8f848d8d612b16565b6000610cf38e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612943565b90506000610d018383612b61565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610d2f8585614f49565b8787604051610d419493929190614f5c565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61070482868684036120a9565b6040805160018082528183019092526060916000919060208083019080368337019050509050600181600081518110610e6f57610e6f614ec9565b6020908102919091010152919050565b6000336106df81858561232d565b610ebf6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b610ee97fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233611f0c565b600080610ef96060850185614f8d565b905067ffffffffffffffff811115610f1357610f13614ad8565b604051908082528060200260200182016040528015610f3c578160200160208202803683370190505b50905060005b610f4f6060860186614f8d565b905081101561106757610f656060860186614f8d565b82818110610f7557610f75614ec9565b9050602002016020810190610f8a91906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190614ef8565b82828151811061102c5761102c614ec9565b602002602001018181525050600082828151811061104c5761104c614ec9565b6020026020010151111561105f57600192505b600101610f42565b506110798161032c6040870187614f8d565b61108e60a085013561032c6040870187614f8d565b6110966145a5565b6110a4856101000135612be8565b604085015260006110da6110bb6060880188614f8d565b6110c860208a018a614f8d565b6110d560408c018c614f8d565b612bf7565b905064e8d4a510008560400151826110f29190614ff5565b6110fc9190615070565b61110690826150d8565b8560400181815161111791906150d8565b90525050604084015161112e906101208701612e53565b5061118761113f6080870187614f8d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061118292505050610100880160e089016147f3565b612943565b81526000808060a088013586156112d85760006111ab6101008b0160e08c016147f3565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6111d360608d018d614f8d565b8a8e80608001906111e49190614f8d565b6040518663ffffffff1660e01b8152600401611204959493929190615143565b602060405180830381865afa158015611221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112459190614ef8565b905064e8d4a5100061125660355490565b101561126f57611268816103e86151bd565b93506112c2565b8551156112905785516035546112869083906151bd565b61126891906151d4565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156112d2578394506112d6565b8194505b505b60006112e760608b018b614f8d565b905067ffffffffffffffff81111561130157611301614ad8565b60405190808252806020026020018201604052801561132a578160200160208202803683370190505b5090506000828511156117755785156113eb5760005b61134d60608d018d614f8d565b90508110156113e55785878a838151811061136a5761136a614ec9565b6020026020010151028161138057611380615041565b0483828151811061139357611393614ec9565b6020026020010181815250508281815181106113b1576113b1614ec9565b60200260200101518982815181106113cb576113cb614ec9565b602090810291909101018051919091039052600101611340565b50600190505b6000885167ffffffffffffffff81111561140757611407614ad8565b604051908082528060200260200182016040528015611430578160200160208202803683370190505b509050600061143f8d80614f8d565b90501115611615576114a861145760608e018e614f8d565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906107469190614f8d565b60005b6114b860608e018e614f8d565b905081101561160f578981815181106114d3576114d3614ec9565b60200260200101518282815181106114ed576114ed614ec9565b60200260200101818152505083818151811061150b5761150b614ec9565b60200260200101518d80606001906115239190614f8d565b8381811061153357611533614ec9565b905060200201602081019061154891906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156115b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d89190614ef8565b6115e29190614f49565b8a82815181106115f4576115f4614ec9565b602090810291909101015261160881614f11565b90506114ab565b50611677565b60005b61162560608e018e614f8d565b90508110156116755789818151811061164057611640614ec9565b602002602001015182828151811061165a5761165a614ec9565b602090810291909101015261166e81614f11565b9050611618565b505b61169d61168760608e018e614f8d565b8b8f80604001906116989190614f8d565b612b16565b6117006116ad60808e018e614f8d565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e001602081019061118291906147f3565b60208901819052885161171291612b61565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc91879161174991614f49565b838c60405161175b9493929190614f5c565b60405180910390a161176d8786614e27565b9450506119cc565b8483111561195d57851561178c5785830392508593505b6117b261179c60608d018d614f8d565b858e80604001906117ad9190614f8d565b612fcd565b6117bc30846130b8565b5060016118126117cf60808d018d614f8d565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611182925050506101008e0160e08f016147f3565b602088015260005b61182760608d018d614f8d565b90508110156119175761183d60608d018d614f8d565b8281811061184d5761184d614ec9565b905060200201602081019061186291906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156118ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f29190614ef8565b83828151811061190457611904614ec9565b602090810291909101015260010161181a565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b3916119509186919086906151e8565b60405180910390a16119cc565b85156119c45782935060005b61197660608d018d614f8d565b90508110156119be5788818151811061199157611991614ec9565b60200260200101518382815181106119ab576119ab614ec9565b6020908102919091010152600101611969565b50600190505b865160208801525b8015611a745760005b6119e260608d018d614f8d565b9050811015611a7257611a6a6119fe60e08e0160c08f016147f3565b848381518110611a1057611a10614ec9565b60200260200101518e8060600190611a289190614f8d565b85818110611a3857611a38614ec9565b9050602002016020810190611a4d91906147f3565b73ffffffffffffffffffffffffffffffffffffffff16919061327e565b6001016119d5565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050509050611ac8613352565b81600081518110611adb57611adb614ec9565b60200260200101818152505090565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611b188282611f0c565b611b228585612943565b92505b505092915050565b60606097805461064e90614da5565b600054610100900460ff1615808015611b5c5750600054600160ff909116105b80611b765750303b158015611b76575060005460ff166001145b611c02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610e1e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611c6057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b611c6d868686868661341a565b8015611cd057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611d048282611f0c565b61074684308561232d565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015611dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de69190615207565b158015611ec457506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015611e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec29190615207565b155b15611efd576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610e1e565b6108f3873088888888886127ed565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015611f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc39190615207565b612018576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610e1e565b5050565b600081600f0b138061203d575061203764e8d4a51000615229565b81600f0b125b15612074576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055565b73ffffffffffffffffffffffffffffffffffffffff831661214b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff82166121ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107465781811015612320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610e1e565b61074684848484036120a9565b73ffffffffffffffffffffffffffffffffffffffff83166123d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff8216612473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125969086815260200190565b60405180910390a3610746565b6099546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b15801561265757600080fd5b505af115801561266b573d6000803e3d6000fd5b5050505060006126796107ec565b9050610746828260008151811061269257612692614ec9565b60209081029190910101516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272c9190614ef8565b8360008151811061273f5761273f614ec9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1661327e9092919063ffffffff16565b600081600f0b12156127aa576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b606060006127fe86868b878761355a565b905061280a888a6130b8565b60005b8581101561284d576128458883838151811061282b5761282b614ec9565b6020026020010151898985818110611a3857611a38614ec9565b60010161280d565b5090505b979650505050505050565b60408051600180825281830190925260609182916000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000826000815181106128da576128da614ec9565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061291c6137bb565b8160008151811061292f5761292f614ec9565b602090810291909101015290939092509050565b60008061294e613352565b90508015612b0f5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a61299c610900565b6040518263ffffffff1660e01b81526004016129ba91815260200190565b600060405180830381865afa1580156129d7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612a1d9190810190614e3a565b90508373ffffffffffffffffffffffffffffffffffffffff16639115900c82600081518110612a4e57612a4e614ec9565b60200260200101518488600081518110612a6a57612a6a614ec9565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b229190614ef8565b5092915050565b6107cf85856000818110612b2c57612b2c614ec9565b9050602002016020810190612b4191906147f3565b84600081518110612b5457612b54614ec9565b6020026020010151613978565b600080612b6d60355490565b905064e8d4a51000811015612bb557612b886103e8846151bd565b915064e8d4a5100081900380831015612b9e5750815b8083039250612baf61dead82613a58565b50612bde565b8315611290578381612bc78286614f49565b612bd191906151bd565b612bdb91906151d4565b91505b612b0f3083613a58565b6000612bf382613b4d565b5090565b600083156108f6576000612c096137bb565b90508015612e4857612c7273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008361327e565b604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110612cc857612cc8614ec9565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166367c15262838a8a8e8e306040518763ffffffff1660e01b8152600401612d67969594939291906152aa565b6000604051808303816000875af1158015612d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612dcc9190810190615441565b600081518110612dde57612dde614ec9565b602002602001015190506000811115612e45576000612dfb613352565b9050612e2e8b8b6000818110612e1357612e13614ec9565b9050602002016020810190612e2891906147f3565b83613978565b612e4181612e3c8482614e27565b613be8565b9450505b50505b509695505050505050565b6000808313156106e557826000612e7164e8d4a510006127106151bd565b612e8160808601606087016154c7565b6bffffffffffffffffffffffff16612e9f60408701602088016154c7565b612eb9906bffffffffffffffffffffffff16612710614f49565b612ec39190614f49565b612ecd90846151bd565b612ed79190614e27565b9050600082612ee560355490565b612eef91906151bd565b9050600082612f0460408801602089016154c7565b612f1c906bffffffffffffffffffffffff16846151bd565b612f2691906151d4565b9050612f3e612f3860208801886147f3565b82613a58565b600083612f516080890160608a016154c7565b612f69906bffffffffffffffffffffffff16856151bd565b612f7391906151d4565b9050612f88612f386060890160408a016147f3565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b82156107cf576000612fde60355490565b84612fe7613352565b612ff191906151bd565b612ffb91906151d4565b90508015611cd0576099546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b15801561309857600080fd5b505af11580156130ac573d6000803e3d6000fd5b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff821661315b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261032c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613c5b565b6099546040517fa480b7ed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015230602482015260009182917f00000000000000000000000000000000000000000000000000000000000000009091169063a480b7ed90604401606060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341291906154f5565b949350505050565b600054610100900460ff166134b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e1e565b6134bb8585613d67565b73ffffffffffffffffffffffffffffffffffffffff8316613508576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790556135518261276c565b6107cf8161201c565b60608467ffffffffffffffff81111561357557613575614ad8565b60405190808252806020026020018201604052801561359e578160200160208202803683370190505b50905060005b85811015613690578686828181106135be576135be614ec9565b90506020020160208101906135d391906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561363f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136639190614ef8565b82828151811061367557613675614ec9565b602090810291909101015261368981614f11565b90506135a4565b5061369e8686868686612fcd565b60005b858110156137b1578181815181106136bb576136bb614ec9565b60200260200101518787838181106136d5576136d5614ec9565b90506020020160208101906136ea91906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377a9190614ef8565b6137849190614f49565b82828151811061379657613796614ec9565b60209081029190910101526137aa81614f11565b90506136a1565b5095945050505050565b604080516001808252818301909252600091829190602080830190803683375050609954825192935073ffffffffffffffffffffffffffffffffffffffff169183915060009061380d5761380d614ec9565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517f148e23ce0000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169063148e23ce90613892908490600090600401615523565b600060405180830381600087803b1580156138ac57600080fd5b505af11580156138c0573d6000803e3d6000fd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1692506370a082319150602401602060405180830381865afa15801561394e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139729190614ef8565b91505090565b8015612018576139a9827f000000000000000000000000000000000000000000000000000000000000000083613fed565b6099546040517f0c0a769b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152306024820152604481018390527f000000000000000000000000000000000000000000000000000000000000000090911690630c0a769b90606401600060405180830381600087803b158015613a4457600080fd5b505af1158015611cd0573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff8216613ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610e1e565b8060356000828254613ae79190614e27565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b609654600f0b811315613b8f576040517fe4efd19b00000000000000000000000000000000000000000000000000000000815260048101829052602401610e1e565b6096547001000000000000000000000000000000009004600f0b811215613be5576040517feaaa5fe600000000000000000000000000000000000000000000000000000000815260048101829052602401610e1e565b50565b600082821115613c1e578264e8d4a51000613c038285614f49565b613c0d91906151bd565b613c1791906151d4565b90506106e5565b818311156106e5578264e8d4a51000613c378483614f49565b613c4191906151bd565b613c4b91906151d4565b613c5490615229565b9392505050565b6000613cbd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166140189092919063ffffffff16565b80519091501561032c5780806020019051810190613cdb9190615207565b61032c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610e1e565b600054610100900460ff16613dfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e1e565b8151600003613e39576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000613e9f5780613e95576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6098819055613ed7565b8015613ed7576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e613f1b610900565b6040518263ffffffff1660e01b8152600401613f3991815260200190565b60006040518083038186803b158015613f5157600080fd5b505afa158015613f65573d6000803e3d6000fd5b505050508160979081613f78919061558d565b506120186040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250614027565b613ff783836140c8565b61032c73ffffffffffffffffffffffffffffffffffffffff84168383614186565b60606134128484600085614308565b600054610100900460ff166140be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e1e565b6120188282614416565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa15801561413e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141629190614ef8565b11156120185761201873ffffffffffffffffffffffffffffffffffffffff83168260005b80158061422657506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142249190614ef8565b155b6142b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610e1e565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261032c9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016132d0565b60608247101561439a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610e1e565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516143c391906156a7565b60006040518083038185875af1925050503d8060008114614400576040519150601f19603f3d011682016040523d82523d6000602084013e614405565b606091505b5091509150612851878383876144c6565b600054610100900460ff166144ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e1e565b60366144b9838261558d565b50603761032c828261558d565b6060831561455c5782516000036145555773ffffffffffffffffffffffffffffffffffffffff85163b614555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e1e565b5081613412565b61341283838151156145715781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e9190614619565b60405180604001604052806002906020820280368337509192915050565b8035600f81900b81146145d557600080fd5b919050565b6000602082840312156145ec57600080fd5b613c54826145c3565b60005b838110156146105781810151838201526020016145f8565b50506000910152565b60208152600082518060208401526146388160408501602087016145f5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114613be557600080fd5b80356145d58161466a565b600080604083850312156146aa57600080fd5b82356146b58161466a565b946020939093013593505050565b60008083601f8401126146d557600080fd5b50813567ffffffffffffffff8111156146ed57600080fd5b6020830191508360208260051b850101111561470857600080fd5b9250929050565b60008060006040848603121561472457600080fd5b83359250602084013567ffffffffffffffff81111561474257600080fd5b61474e868287016146c3565b9497909650939450505050565b60008060006060848603121561477057600080fd5b833561477b8161466a565b9250602084013561478b8161466a565b929592945050506040919091013590565b6000806000604084860312156147b157600080fd5b833567ffffffffffffffff8111156147c857600080fd5b6147d4868287016146c3565b90945092505060208401356147e88161466a565b809150509250925092565b60006020828403121561480557600080fd5b8135613c548161466a565b600081518084526020808501945080840160005b8381101561485657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614824565b509495945050505050565b602081526000613c546020830184614810565b6000806000806000806080878903121561488d57600080fd5b86359550602087013561489f8161466a565b9450604087013567ffffffffffffffff808211156148bc57600080fd5b6148c88a838b016146c3565b909650945060608901359150808211156148e157600080fd5b506148ee89828a016146c3565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b8381101561485657815187529582019590820190600101614914565b602081526000613c546020830184614900565b6040815260006149566040830185614810565b82810360208401526149688185614900565b95945050505050565b600080600080600080600080600060a08a8c03121561498f57600080fd5b893567ffffffffffffffff808211156149a757600080fd5b6149b38d838e016146c3565b909b50995060208c01359150808211156149cc57600080fd5b6149d88d838e016146c3565b909950975060408c013591506149ed8261466a565b90955060608b01359080821115614a0357600080fd5b614a0f8d838e016146c3565b909650945060808c0135915080821115614a2857600080fd5b50614a358c828d016146c3565b915080935050809150509295985092959850929598565b600060208284031215614a5e57600080fd5b813567ffffffffffffffff811115614a7557600080fd5b82016101a08185031215613c5457600080fd5b60208152815160208201526000602083015160a06040840152614aae60c0840182614900565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614b4e57614b4e614ad8565b604052919050565b600067ffffffffffffffff821115614b7057614b70614ad8565b5060051b60200190565b600082601f830112614b8b57600080fd5b81356020614ba0614b9b83614b56565b614b07565b82815260059290921b84018101918181019086841115614bbf57600080fd5b8286015b84811015612e485780358352918301918301614bc3565b600080600060408486031215614bef57600080fd5b833567ffffffffffffffff80821115614c0757600080fd5b614c1387838801614b7a565b94506020860135915080821115614c2957600080fd5b5061474e868287016146c3565b60008060408385031215614c4957600080fd5b823567ffffffffffffffff811115614c6057600080fd5b614c6c85828601614b7a565b9250506020830135614c7d8161466a565b809150509250929050565b60008060408385031215614c9b57600080fd5b8235614ca68161466a565b91506020830135614c7d8161466a565b600080600080600060a08688031215614cce57600080fd5b853567ffffffffffffffff80821115614ce657600080fd5b818801915088601f830112614cfa57600080fd5b8135602082821115614d0e57614d0e614ad8565b614d3e817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614b07565b92508183528a81838601011115614d5457600080fd5b81818501828501376000818385010152829850808a0135975050505050614d7d6040870161468c565b9250614d8b606087016145c3565b9150614d99608087016145c3565b90509295509295909350565b600181811c90821680614db957607f821691505b602082108103614df2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156106e5576106e5614df8565b60006020808385031215614e4d57600080fd5b825167ffffffffffffffff811115614e6457600080fd5b8301601f81018513614e7557600080fd5b8051614e83614b9b82614b56565b81815260059190911b82018301908381019087831115614ea257600080fd5b928401925b82841015612851578351614eba8161466a565b82529284019290840190614ea7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215614f0a57600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f4257614f42614df8565b5060010190565b818103818111156106e5576106e5614df8565b848152836020820152608060408201526000614f7b6080830185614900565b82810360608401526128518185614900565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614fc257600080fd5b83018035915067ffffffffffffffff821115614fdd57600080fd5b6020019150600581901b360382131561470857600080fd5b808202600082127f80000000000000000000000000000000000000000000000000000000000000008414161561502d5761502d614df8565b81810583148215176106e5576106e5614df8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261507f5761507f615041565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156150d3576150d3614df8565b500590565b8082018281126000831280158216821582161715611b2557611b25614df8565b8183526000602080850194508260005b8581101561485657813561511b8161466a565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101615108565b6060815260006151576060830187896150f8565b82810360208401526151698187614900565b905082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156151a357600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176106e5576106e5614df8565b6000826151e3576151e3615041565b500490565b8381528260208201526060604082015260006149686060830184614900565b60006020828403121561521957600080fd5b81518015158114613c5457600080fd5b60007f8000000000000000000000000000000000000000000000000000000000000000820361525a5761525a614df8565b5060000390565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6080815260006152bd6080830189614810565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615404577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18e360301811261533c57600080fd5b8d016060813561534b8161466a565b73ffffffffffffffffffffffffffffffffffffffff908116865282880135906153738261466a565b1685880152604082810135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10181126153af57600080fd5b90920187810192903567ffffffffffffffff8111156153cd57600080fd5b8036038413156153dc57600080fd5b82828801526153ee8388018286615261565b97890197965050509286019250506001016152db565b5050858103604087015261541981898b6150f8565b945050505050612851606083018473ffffffffffffffffffffffffffffffffffffffff169052565b6000602080838503121561545457600080fd5b825167ffffffffffffffff81111561546b57600080fd5b8301601f8101851361547c57600080fd5b805161548a614b9b82614b56565b81815260059190911b820183019083810190878311156154a957600080fd5b928401925b82841015612851578351825292840192908401906154ae565b6000602082840312156154d957600080fd5b81356bffffffffffffffffffffffff81168114613c5457600080fd5b60008060006060848603121561550a57600080fd5b8351925060208401519150604084015190509250925092565b6040815260006155366040830185614810565b905082151560208301529392505050565b601f82111561032c57600081815260208120601f850160051c8101602086101561556e5750805b601f850160051c820191505b81811015611cd05782815560010161557a565b815167ffffffffffffffff8111156155a7576155a7614ad8565b6155bb816155b58454614da5565b84615547565b602080601f83116001811461560e57600084156155d85750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611cd0565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561565b5788860151825594840194600190910190840161563c565b508582101561569757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600082516156b98184602087016145f5565b919091019291505056fea264697066735822122013594bd94376fb757656f9467513f69909df5ba9e4aebdc7c19cdaa98aeb326f64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd130000000000000000000000008888882f8f843896699869179fb6e4f7e3b58888000000000000000000000000c00e94cb662c3520282e6f5717214004a7f2688800000000000000000000000033e52c206d584550193e642c8982f2fff6339994000000000000000000000000930f1b46e1d081ec1524efd95752be3ece51ef67", + "nonce": "0x2b", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb91ddfd8d422aa9cfff66dc97d7272b22985add2eb89d32ab5b17e0e6a20035c", + "transactionType": "CREATE", + "contractName": "OEthHoldingStrategy", + "contractAddress": "0x120da9fA3F56D2179FACab9Ce9b3D00dF4BE1575", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "1", + "0x856c4Efb76C1D1AE02e20CEB03A2A6a08b0b8dC3", + "0x39254033945AA2E4809Cc2977E7087BEE48bd7Ab", + "0x94B17476A93b3262d87B9a326965D1E91f9c13E7", + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x62c84d", + "value": "0x0", + "data": "0x6101606040523480156200001257600080fd5b5060405162005cbf38038062005cbf83398101604081905262000035916200017f565b80878787816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e0528416620000f05760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038316620001185760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001405760405163bb0e4c3560e01b815260040160405180910390fd5b506001600160a01b0392831661010052908216610120521661014052506200021e915050565b6001600160a01b03811681146200017c57600080fd5b50565b600080600080600080600060e0888a0312156200019b57600080fd5b8751620001a88162000166565b6020890151909750620001bb8162000166565b604089015160608a01519197509550620001d58162000166565b6080890151909450620001e88162000166565b60a0890151909350620001fb8162000166565b60c08901519092506200020e8162000166565b8091505092959891949750929550565b60805160a05160c05160e0516101005161012051610140516159826200033d6000396000818161049f01528181613aa401528181613b0d01526141970152600081816102f701528181613e730152613fbf01526000818161042801528181611cf20152818161226e0152818161230301528181612cbd01528181612e6901528181613169015281816134b201528181613a8301528181613ec9015261405b0152600081816103ac015281816121c101528181612d6301528181612e4701528181613e5201528181613f86015281816145920152614643015260008181610b0801528181610b3601526138ca0152600081816109f5015281816120ee0152613968015260008181612438015281816125140152612b5c01526159826000f3fe60806040526004361061021d5760003560e01c806384ba89e31161011d578063c1a0ff4c116100b0578063e173ad251161007f578063eef0cbca11610064578063eef0cbca146106dc578063f62d1888146106f1578063fc195d8c1461071157600080fd5b8063e173ad25146106a7578063ebbd6bc7146106bc57600080fd5b8063c1a0ff4c146105ff578063c1a7d80e14610614578063c8d31e7414610634578063dd62ed3e1461065457600080fd5b8063a457c2d7116100ec578063a457c2d71461057d578063a63e8c4b1461059d578063a9059cbb146105b2578063beef8a71146105d257600080fd5b806384ba89e31461051057806395d89b41146105255780639b6aaa471461053a578063a3ea6c971461055d57600080fd5b806339509351116101b05780636da47feb1161017f5780637165485d116101645780637165485d1461048d57806371a97305146104c15780637817bf4a146104e357600080fd5b80636da47feb1461041657806370a082311461044a57600080fd5b8063395093511461037a5780633fc8cef31461039a578063458baa0c146103ce5780636c60d9e7146103f657600080fd5b806323b872dd116101ec57806323b872dd146102c55780632948c3c4146102e55780632ce5183f1461033e578063313ce5671461035e57600080fd5b806306fdde0314610229578063095ea7b3146102545780631480fce31461028457806318160ddd146102a657600080fd5b3661022457005b600080fd5b34801561023557600080fd5b5061023e610731565b60405161024b9190614be1565b60405180910390f35b34801561026057600080fd5b5061027461026f366004614c57565b6107c3565b604051901515815260200161024b565b34801561029057600080fd5b506102a461029f366004614ccf565b6107dd565b005b3480156102b257600080fd5b506035545b60405190815260200161024b565b3480156102d157600080fd5b506102746102e0366004614d1b565b61090c565b3480156102f157600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161024b565b34801561034a57600080fd5b506102a4610359366004614c57565b610930565b34801561036a57600080fd5b506040516012815260200161024b565b34801561038657600080fd5b50610274610395366004614c57565b610967565b3480156103a657600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b3480156103da57600080fd5b506103e3600181565b604051600f9190910b815260200161024b565b34801561040257600080fd5b506102a4610411366004614d5c565b6109b3565b34801561042257600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b34801561045657600080fd5b506102b7610465366004614db3565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b34801561049957600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cd57600080fd5b506104d66109f1565b60405161024b9190614e21565b3480156104ef57600080fd5b506105036104fe366004614e34565b610abd565b60405161024b9190614ef0565b34801561051c57600080fd5b506102b7610b03565b34801561053157600080fd5b5061023e610b58565b34801561054657600080fd5b5061054f610b67565b60405161024b929190614f03565b34801561056957600080fd5b506102b7610578366004614f31565b610b7e565b34801561058957600080fd5b50610274610598366004614c57565b610f5a565b3480156105a957600080fd5b50610503611030565b3480156105be57600080fd5b506102746105cd366004614c57565b61107b565b3480156105de57600080fd5b506105f26105ed36600461500c565b611089565b60405161024b9190615048565b34801561060b57600080fd5b50610503611ca1565b34801561062057600080fd5b506102a461062f3660046151a5565b611d94565b34801561064057600080fd5b506102b761064f366004615201565b611efe565b34801561066057600080fd5b506102b761066f366004615253565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b3480156106b357600080fd5b5061023e611f41565b3480156106c857600080fd5b506102a46106d7366004614c57565b611f50565b3480156106e857600080fd5b506103e3600081565b3480156106fd57600080fd5b506102a461070c366004615281565b611f87565b34801561071d57600080fd5b5061050361072c366004614e34565b6123e1565b606060368054610740906152f3565b80601f016020809104026020016040519081016040528092919081815260200182805461076c906152f3565b80156107b95780601f1061078e576101008083540402835291602001916107b9565b820191906000526020600020905b81548152906001019060200180831161079c57829003601f168201915b5050505050905090565b6000336107d18185856125de565b60019150505b92915050565b3261081b576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a906020015b60405180910390a1505050565b600060028383600081811061083257610832615346565b905060200201351015610860578282600281811061085257610852615346565b9050602002013590506108c6565b8282600081811061087357610873615346565b90506020020135600203610894578282600181811061085257610852615346565b6040517f96b391c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108d08185612791565b610906576040517f96b391c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60003361091a8582856127c9565b61092585858561289a565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361095c8282612b10565b61090630858561289a565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906107d190829086906109ae9087906153a4565b6125de565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336109df8282612b10565b6109ea858585612c20565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610a37610b03565b6040518263ffffffff1660e01b8152600401610a5591815260200190565b600060405180830381865afa158015610a72573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ab891908101906153b7565b905090565b6060610ae97fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612b10565b610af887878888888888612d8a565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610b33575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b606060378054610740906152f3565b6060803215610b7557600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610bac8282612b10565b60008b67ffffffffffffffff811115610bc757610bc7615098565b604051908082528060200260200182016040528015610bf0578160200160208202803683370190505b50905060005b8c811015610ce2578d8d82818110610c1057610c10615346565b9050602002016020810190610c259190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb59190615446565b828281518110610cc757610cc7615346565b6020908102919091010152610cdb8161545f565b9050610bf6565b50610d1c8d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610d3757610d37615098565b604051908082528060200260200182016040528015610d60578160200160208202803683370190505b50905060005b8d811015610e52578e8e82818110610d8057610d80615346565b9050602002016020810190610d959190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610e01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e259190615446565b828281518110610e3757610e37615346565b6020908102919091010152610e4b8161545f565b9050610d66565b506000610e938d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612df7915050565b9050610ea28f8f848d8d612f95565b6000610eef8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612df7565b90506000610efd83836130d6565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610f2b8585615497565b8787604051610f3d94939291906154aa565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61092582868684036125de565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061106b5761106b615346565b6020908102919091010152919050565b6000336107d181858561289a565b6110bb6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6110e57fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612b10565b6000806110f560608501856154db565b905067ffffffffffffffff81111561110f5761110f615098565b604051908082528060200260200182016040528015611138578160200160208202803683370190505b50905060005b61114b60608601866154db565b90508110156112635761116160608601866154db565b8281811061117157611171615346565b90506020020160208101906111869190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190615446565b82828151811061122857611228615346565b602002602001018181525050600082828151811061124857611248615346565b6020026020010151111561125b57600192505b60010161113e565b506112758161062f60408701876154db565b61128a60a085013561029f60408701876154db565b611292614b9f565b6112a0856101000135613164565b604085015260006112dd6112b760608801886154db565b6112c460208a018a6154db565b6112d160408c018c6154db565b60009695505050505050565b905064e8d4a510008560400151826112f59190615543565b6112ff91906155be565b6113099082615626565b8560400181815161131a9190615626565b905250506040840151611331906101208701613219565b5061138a61134260808701876154db565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061138592505050610100880160e08901614db3565b612df7565b81526000808060a088013586156114db5760006113ae6101008b0160e08c01614db3565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6113d660608d018d6154db565b8a8e80608001906113e791906154db565b6040518663ffffffff1660e01b8152600401611407959493929190615646565b602060405180830381865afa158015611424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114489190615446565b905064e8d4a5100061145960355490565b10156114725761146b816103e86156fe565b93506114c5565b8551156114935785516035546114899083906156fe565b61146b9190615715565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156114d5578394506114d9565b8194505b505b60006114ea60608b018b6154db565b905067ffffffffffffffff81111561150457611504615098565b60405190808252806020026020018201604052801561152d578160200160208202803683370190505b5090506000828511156119785785156115ee5760005b61155060608d018d6154db565b90508110156115e85785878a838151811061156d5761156d615346565b602002602001015102816115835761158361558f565b0483828151811061159657611596615346565b6020026020010181815250508281815181106115b4576115b4615346565b60200260200101518982815181106115ce576115ce615346565b602090810291909101018051919091039052600101611543565b50600190505b6000885167ffffffffffffffff81111561160a5761160a615098565b604051908082528060200260200182016040528015611633578160200160208202803683370190505b50905060006116428d806154db565b90501115611818576116ab61165a60608e018e6154db565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061090691906154db565b60005b6116bb60608e018e6154db565b9050811015611812578981815181106116d6576116d6615346565b60200260200101518282815181106116f0576116f0615346565b60200260200101818152505083818151811061170e5761170e615346565b60200260200101518d806060019061172691906154db565b8381811061173657611736615346565b905060200201602081019061174b9190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156117b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117db9190615446565b6117e59190615497565b8a82815181106117f7576117f7615346565b602090810291909101015261180b8161545f565b90506116ae565b5061187a565b60005b61182860608e018e6154db565b90508110156118785789818151811061184357611843615346565b602002602001015182828151811061185d5761185d615346565b60209081029190910101526118718161545f565b905061181b565b505b6118a061188a60608e018e6154db565b8b8f806040019061189b91906154db565b612f95565b6119036118b060808e018e6154db565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906113859190614db3565b602089018190528851611915916130d6565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc91879161194c91615497565b838c60405161195e94939291906154aa565b60405180910390a161197087866153a4565b945050611bcf565b84831115611b6057851561198f5785830392508593505b6119b561199f60608d018d6154db565b858e80604001906119b091906154db565b613393565b6119bf308461355c565b506001611a156119d260808d018d6154db565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611385925050506101008e0160e08f01614db3565b602088015260005b611a2a60608d018d6154db565b9050811015611b1a57611a4060608d018d6154db565b82818110611a5057611a50615346565b9050602002016020810190611a659190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af59190615446565b838281518110611b0757611b07615346565b6020908102919091010152600101611a1d565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611b53918691908690615729565b60405180910390a1611bcf565b8515611bc75782935060005b611b7960608d018d6154db565b9050811015611bc157888181518110611b9457611b94615346565b6020026020010151838281518110611bae57611bae615346565b6020908102919091010152600101611b6c565b50600190505b865160208801525b8015611c775760005b611be560608d018d6154db565b9050811015611c7557611c6d611c0160e08e0160c08f01614db3565b848381518110611c1357611c13615346565b60200260200101518e8060600190611c2b91906154db565b85818110611c3b57611c3b615346565b9050602002016020810190611c509190614db3565b73ffffffffffffffffffffffffffffffffffffffff169190613722565b600101611bd8565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611d4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d729190615446565b81600081518110611d8557611d85615346565b60200260200101818152505090565b32611e32576040805160018082528183019092526000916020808301908036833701905050905083600081518110611dce57611dce615346565b602002602001015181600081518110611de957611de9615346565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611e249190614ef0565b60405180910390a150505050565b600282826000818110611e4757611e47615346565b905060200201351115611e86576040517f670b5cfa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ec382826001818110611e9c57611e9c615346565b9050602002013584600081518110611eb657611eb6615346565b6020026020010151612791565b611ef9576040517f670b5cfa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611f2c8282612b10565b611f368585612df7565b92505b505092915050565b606060968054610740906152f3565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611f7c8282612b10565b61090684308561289a565b600054610100900460ff1615808015611fa75750600054600160ff909116105b80611fc15750303b158015611fc1575060005460ff166001145b61204d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161101a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156120ab57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6120ea83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506137f6915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a612130610b03565b6040518263ffffffff1660e01b815260040161214e91815260200190565b600060405180830381865afa15801561216b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526121b191908101906153b7565b90508051600114158061222a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168160008151811061220957612209615346565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561226c57612237610b03565b6040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260040161101a91815260200190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636691cb3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fb9190615446565b6098819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f51b0fd46040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561236957600080fd5b505af115801561237d573d6000803e3d6000fd5b50505050508015611ef957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161080e565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b89190615748565b15801561259657506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125949190615748565b155b156125cf576040517f7ab612a300000000000000000000000000000000000000000000000000000000815233600482015260240161101a565b610af887308888888888612d8a565b73ffffffffffffffffffffffffffffffffffffffff8316612680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff8216612723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006127af6001700100000000000000000000000000000000615497565b83168210806127c15750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610906578181101561288d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161101a565b61090684848484036125de565b73ffffffffffffffffffffffffffffffffffffffff831661293d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff82166129e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612b039086815260200190565b60405180910390a3610906565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc79190615748565b612c1c576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8216602482015260440161101a565b5050565b82826000818110612c3357612c33615346565b90506020020135600314612c73576040517f3f6f71a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090612d479073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d289190615446565b85856001818110612d3b57612d3b615346565b90506020020135613a7c565b905061090673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168383613722565b60606000612d9b86868b8787613bec565b9050612da7888a61355c565b60005b85811015612dea57612de288838381518110612dc857612dc8615346565b6020026020010151898985818110611c3b57611c3b615346565b600101612daa565b5098975050505050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff80841691639115900c917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015612eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed69190615446565b86600081518110612ee957612ee9615346565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f8e9190615446565b9392505050565b60008083836000818110612fab57612fab615346565b90506020020135600003612ff65783836003818110612fcc57612fcc615346565b90506020020135915083836004818110612fe857612fe8615346565b905060200201359050613078565b8383600081811061300957613009615346565b90506020020135600203613046578383600281811061302a5761302a615346565b90506020020135915083836003818110612fe857612fe8615346565b6040517f5640448e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001036130a9576130a48560008151811061309657613096615346565b602002602001015182613e4d565b6130cd565b6130cd856000815181106130bf576130bf615346565b602002602001015182614132565b50505050505050565b6000806130e260355490565b905064e8d4a5100081101561312a576130fd6103e8846156fe565b915064e8d4a51000819003808310156131135750815b808303925061312461dead82614257565b50613153565b831561149357838161313c8286615497565b61314691906156fe565b6131509190615715565b91505b61315d3083614257565b5092915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636691cb3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f69190615446565b90506132046098548261434c565b61320d9061576a565b60989190915592915050565b6000808313156107d75782600061323764e8d4a510006127106156fe565b61324760808601606087016157a2565b6bffffffffffffffffffffffff1661326560408701602088016157a2565b61327f906bffffffffffffffffffffffff16612710615497565b6132899190615497565b61329390846156fe565b61329d91906153a4565b90506000826132ab60355490565b6132b591906156fe565b90506000826132ca60408801602089016157a2565b6132e2906bffffffffffffffffffffffff16846156fe565b6132ec9190615715565b90506133046132fe6020880188614db3565b82614257565b6000836133176080890160608a016157a2565b61332f906bffffffffffffffffffffffff16856156fe565b6133399190615715565b905061334e6132fe6060890160408a01614db3565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b6000828260008181106133a8576133a8615346565b905060200201356001036133d757828260038181106133c9576133c9615346565b905060200201359050613477565b828260008181106133ea576133ea615346565b9050602002013560020361340b57828260028181106133c9576133c9615346565b8282600081811061341e5761341e615346565b9050602002013560030361343f57828260018181106133c9576133c9615346565b3215613477576040517f3f6f71a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061348260355490565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015286907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561350e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135329190615446565b61353c91906156fe565b6135469190615715565b90506135528183613a7c565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166135ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260336020526040902054818110156136b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611ef99084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526143b8565b600054610100900460ff1661388d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161101a565b81516000036138c8576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061392e5780613924576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055613966565b8015613966576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e6139aa610b03565b6040518263ffffffff1660e01b81526004016139c891815260200190565b60006040518083038186803b1580156139e057600080fd5b505afa1580156139f4573d6000803e3d6000fd5b505050508160969081613a079190615816565b50612c1c6040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f53535400000000000000000000000000000000000000000000000000000000008152506144c4565b6000613ac97f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085614565565b6040517f3df02124000000000000000000000000000000000000000000000000000000008152600160048201526000602482015260448101849052606481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690633df02124906084016020604051808303816000875af1158015613b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8f9190615446565b9050613b9a81614590565b326107d75760408051600080825260208201849052606082840181905282015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a192915050565b60608467ffffffffffffffff811115613c0757613c07615098565b604051908082528060200260200182016040528015613c30578160200160208202803683370190505b50905060005b85811015613d2257868682818110613c5057613c50615346565b9050602002016020810190613c659190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cf59190615446565b828281518110613d0757613d07615346565b6020908102919091010152613d1b8161545f565b9050613c36565b50613d308686868686613393565b60005b85811015613e4357818181518110613d4d57613d4d615346565b6020026020010151878783818110613d6757613d67615346565b9050602002016020810190613d7c9190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e0c9190615446565b613e169190615497565b828281518110613e2857613e28615346565b6020908102919091010152613e3c8161545f565b9050613d33565b5095945050505050565b613e987f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084614565565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f499190615446565b6040517f156e29f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063156e29f690606401600060405180830381600087803b15801561400557600080fd5b505af1158015614019573d6000803e3d6000fd5b50505050614025321590565b15611ef9576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156140b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140db9190615446565b90507f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a90600161410a8484615497565b604051611e249291909115158252602082015260606040820181905260009082015260800190565b61413b82614614565b6040517f3df021240000000000000000000000000000000000000000000000000000000081526000600482018190526001602483015260448201849052606482018390529073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690633df0212490859060840160206040518083038185885af11580156141e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906142069190615446565b905032611ef95760408051600181526020810183905260609181018290526000918101919091527f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909060800161080e565b73ffffffffffffffffffffffffffffffffffffffff82166142d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161101a565b80603560008282546142e691906153a4565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115614382578264e8d4a510006143678285615497565b61437191906156fe565b61437b9190615715565b90506107d7565b818311156107d7578264e8d4a5100061439b8483615497565b6143a591906156fe565b6143af9190615715565b612f8e9061576a565b600061441a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166146b09092919063ffffffff16565b805190915015611ef957808060200190518101906144389190615748565b611ef9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161101a565b600054610100900460ff1661455b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161101a565b612c1c82826146c7565b61456f8383614777565b611ef973ffffffffffffffffffffffffffffffffffffffff84168383614835565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156145f857600080fd5b505af115801561460c573d6000803e3d6000fd5b505050505050565b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b15801561469c57600080fd5b505af11580156109ea573d6000803e3d6000fd5b60606146bf84846000856149b7565b949350505050565b600054610100900460ff1661475e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161101a565b603661476a8382615816565b506037611ef98282615816565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156147ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148119190615446565b1115612c1c57612c1c73ffffffffffffffffffffffffffffffffffffffff83168260005b8015806148d557506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156148af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148d39190615446565b155b614961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161101a565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611ef99084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613774565b606082471015614a49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161101a565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614a729190615930565b60006040518083038185875af1925050503d8060008114614aaf576040519150601f19603f3d011682016040523d82523d6000602084013e614ab4565b606091505b5091509150610af88783838760608315614b56578251600003614b4f5773ffffffffffffffffffffffffffffffffffffffff85163b614b4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161101a565b50816146bf565b6146bf8383815115614b6b5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a9190614be1565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614bd8578181015183820152602001614bc0565b50506000910152565b6020815260008251806020840152614c00816040850160208701614bbd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114614c5457600080fd5b50565b60008060408385031215614c6a57600080fd5b8235614c7581614c32565b946020939093013593505050565b60008083601f840112614c9557600080fd5b50813567ffffffffffffffff811115614cad57600080fd5b6020830191508360208260051b8501011115614cc857600080fd5b9250929050565b600080600060408486031215614ce457600080fd5b83359250602084013567ffffffffffffffff811115614d0257600080fd5b614d0e86828701614c83565b9497909650939450505050565b600080600060608486031215614d3057600080fd5b8335614d3b81614c32565b92506020840135614d4b81614c32565b929592945050506040919091013590565b600080600060408486031215614d7157600080fd5b833567ffffffffffffffff811115614d8857600080fd5b614d9486828701614c83565b9094509250506020840135614da881614c32565b809150509250925092565b600060208284031215614dc557600080fd5b8135612f8e81614c32565b600081518084526020808501945080840160005b83811015614e1657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614de4565b509495945050505050565b602081526000612f8e6020830184614dd0565b60008060008060008060808789031215614e4d57600080fd5b863595506020870135614e5f81614c32565b9450604087013567ffffffffffffffff80821115614e7c57600080fd5b614e888a838b01614c83565b90965094506060890135915080821115614ea157600080fd5b50614eae89828a01614c83565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614e1657815187529582019590820190600101614ed4565b602081526000612f8e6020830184614ec0565b604081526000614f166040830185614dd0565b8281036020840152614f288185614ec0565b95945050505050565b600080600080600080600080600060a08a8c031215614f4f57600080fd5b893567ffffffffffffffff80821115614f6757600080fd5b614f738d838e01614c83565b909b50995060208c0135915080821115614f8c57600080fd5b614f988d838e01614c83565b909950975060408c01359150614fad82614c32565b90955060608b01359080821115614fc357600080fd5b614fcf8d838e01614c83565b909650945060808c0135915080821115614fe857600080fd5b50614ff58c828d01614c83565b915080935050809150509295985092959850929598565b60006020828403121561501e57600080fd5b813567ffffffffffffffff81111561503557600080fd5b82016101a08185031215612f8e57600080fd5b60208152815160208201526000602083015160a0604084015261506e60c0840182614ec0565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561510e5761510e615098565b604052919050565b600067ffffffffffffffff82111561513057615130615098565b5060051b60200190565b600082601f83011261514b57600080fd5b8135602061516061515b83615116565b6150c7565b82815260059290921b8401810191818101908684111561517f57600080fd5b8286015b8481101561519a5780358352918301918301615183565b509695505050505050565b6000806000604084860312156151ba57600080fd5b833567ffffffffffffffff808211156151d257600080fd5b6151de8783880161513a565b945060208601359150808211156151f457600080fd5b50614d0e86828701614c83565b6000806040838503121561521457600080fd5b823567ffffffffffffffff81111561522b57600080fd5b6152378582860161513a565b925050602083013561524881614c32565b809150509250929050565b6000806040838503121561526657600080fd5b823561527181614c32565b9150602083013561524881614c32565b6000806020838503121561529457600080fd5b823567ffffffffffffffff808211156152ac57600080fd5b818501915085601f8301126152c057600080fd5b8135818111156152cf57600080fd5b8660208285010111156152e157600080fd5b60209290920196919550909350505050565b600181811c9082168061530757607f821691505b602082108103615340577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156107d7576107d7615375565b600060208083850312156153ca57600080fd5b825167ffffffffffffffff8111156153e157600080fd5b8301601f810185136153f257600080fd5b805161540061515b82615116565b81815260059190911b8201830190838101908783111561541f57600080fd5b928401925b82841015610af857835161543781614c32565b82529284019290840190615424565b60006020828403121561545857600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361549057615490615375565b5060010190565b818103818111156107d7576107d7615375565b8481528360208201526080604082015260006154c96080830185614ec0565b8281036060840152610af88185614ec0565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261551057600080fd5b83018035915067ffffffffffffffff82111561552b57600080fd5b6020019150600581901b3603821315614cc857600080fd5b808202600082127f80000000000000000000000000000000000000000000000000000000000000008414161561557b5761557b615375565b81810583148215176107d7576107d7615375565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826155cd576155cd61558f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561562157615621615375565b500590565b8082018281126000831280158216821582161715611f3957611f39615375565b6060808252810185905260008660808301825b8881101561569657823561566c81614c32565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101615659565b5083810360208501526156a98188614ec0565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156156e457600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176107d7576107d7615375565b6000826157245761572461558f565b500490565b838152826020820152606060408201526000614f286060830184614ec0565b60006020828403121561575a57600080fd5b81518015158114612f8e57600080fd5b60007f8000000000000000000000000000000000000000000000000000000000000000820361579b5761579b615375565b5060000390565b6000602082840312156157b457600080fd5b81356bffffffffffffffffffffffff81168114612f8e57600080fd5b601f821115611ef957600081815260208120601f850160051c810160208610156157f75750805b601f850160051c820191505b8181101561460c57828155600101615803565b815167ffffffffffffffff81111561583057615830615098565b6158448161583e84546152f3565b846157d0565b602080601f83116001811461589757600084156158615750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561460c565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156158e4578886015182559484019460019091019084016158c5565b508582101561592057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008251615942818460208701614bbd565b919091019291505056fea2646970667358221220f86c8c85ef0d7ac70e86af4c7b26bfa4aece21c196ff5e997a6ccc12eaa4216164736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd130000000000000000000000000000000000000000000000000000000000000001000000000000000000000000856c4efb76c1d1ae02e20ceb03a2a6a08b0b8dc300000000000000000000000039254033945aa2e4809cc2977e7087bee48bd7ab00000000000000000000000094b17476a93b3262d87b9a326965d1e91f9c13e7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0x2c", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7c5e1f8832e1e22beb58b34b6ff7d11a6865592b503dcf5ba9a843c2347ac518", + "transactionType": "CREATE", + "contractName": "REthHoldingStrategy", + "contractAddress": "0x56a20C5D76d41338fBd5D7cB7Db37e937143f910", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "1", + "0x16D5A408e807db8eF7c578279BEeEe6b228f1c1C", + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x674715", + "value": "0x0", + "data": "0x6101406040523480156200001257600080fd5b50604051620060b0380380620060b0833981016040819052620000359162000194565b80858585816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e0528216620000f05760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216610100819052604080516332a2a83960e21b8152905163ca8aa0e4916004808201926020929091908290030181865afa1580156200013c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000162919062000208565b6001600160a01b031661012052506200022f9350505050565b6001600160a01b03811681146200019157600080fd5b50565b600080600080600060a08688031215620001ad57600080fd5b8551620001ba816200017b565b6020870151909550620001cd816200017b565b604087015160608801519195509350620001e7816200017b565b6080870151909250620001fa816200017b565b809150509295509295909350565b6000602082840312156200021b57600080fd5b815162000228816200017b565b9392505050565b60805160a05160c05160e0516101005161012051615d89620003276000396000818161027701528181611c4c01528181612b4401528181612ce3015281816132e80152818161392001528181613c3a0152818161430701526144e7015260008181610595015281816139f701528181613c5b01528181613c8201528181614091015261438b01526000818161036b0152818161214e01528181612c0701528181612dd5015281816148ae015261495f015260008181610a5701528181610a8501526137350152600081816109440152818161207b01526137d30152600081816122c30152818161239f01526129e70152615d896000f3fe6080604052600436106101dc5760003560e01c806395d89b4111610102578063c1a7d80e11610095578063e173ad2511610064578063e173ad251461060a578063ebbd6bc71461061f578063f62d18881461063f578063fc195d8c1461065f57600080fd5b8063c1a7d80e14610543578063c8d31e7414610563578063d5ddd50314610583578063dd62ed3e146105b757600080fd5b8063a63e8c4b116100d1578063a63e8c4b146104cc578063a9059cbb146104e1578063beef8a7114610501578063c1a0ff4c1461052e57600080fd5b806395d89b41146104545780639b6aaa4714610469578063a3ea6c971461048c578063a457c2d7146104ac57600080fd5b8063313ce5671161017a57806370a082311161014957806370a08231146103ad57806371a97305146103f05780637817bf4a1461041257806384ba89e31461043f57600080fd5b8063313ce5671461031d57806339509351146103395780633fc8cef3146103595780636c60d9e71461038d57600080fd5b806317094411116101b6578063170944111461026557806318160ddd146102be57806323b872dd146102dd5780632ce5183f146102fd57600080fd5b806306fdde03146101e8578063095ea7b3146102135780631480fce31461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61067f565b60405161020a9190614f3f565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004614f77565b610711565b604051901515815260200161020a565b34801561024f57600080fd5b5061026361025e366004614fef565b61072b565b005b34801561027157600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161020a565b3480156102ca57600080fd5b506035545b60405190815260200161020a565b3480156102e957600080fd5b506102336102f836600461503b565b610859565b34801561030957600080fd5b50610263610318366004614f77565b61087f565b34801561032957600080fd5b506040516012815260200161020a565b34801561034557600080fd5b50610233610354366004614f77565b6108b6565b34801561036557600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b34801561039957600080fd5b506102636103a836600461507c565b610902565b3480156103b957600080fd5b506102cf6103c83660046150d3565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b3480156103fc57600080fd5b50610405610940565b60405161020a9190615141565b34801561041e57600080fd5b5061043261042d366004615154565b610a0c565b60405161020a9190615210565b34801561044b57600080fd5b506102cf610a52565b34801561046057600080fd5b506101fd610aa7565b34801561047557600080fd5b5061047e610ab6565b60405161020a929190615223565b34801561049857600080fd5b506102cf6104a7366004615251565b610acd565b3480156104b857600080fd5b506102336104c7366004614f77565b610ea9565b3480156104d857600080fd5b50610432610f8a565b3480156104ed57600080fd5b506102336104fc366004614f77565b610fd5565b34801561050d57600080fd5b5061052161051c36600461532c565b610fe3565b60405161020a9190615368565b34801561053a57600080fd5b50610432611bfb565b34801561054f57600080fd5b5061026361055e3660046154c5565b611d55565b34801561056f57600080fd5b506102cf61057e366004615521565b611ebf565b34801561058f57600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b3480156105c357600080fd5b506102cf6105d2366004615573565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b34801561061657600080fd5b506101fd611f02565b34801561062b57600080fd5b5061026361063a366004614f77565b611f11565b34801561064b57600080fd5b5061026361065a3660046155a1565b611f48565b34801561066b57600080fd5b5061043261067a366004615154565b61226c565b60606036805461068e90615654565b80601f01602080910402602001604051908101604052809291908181526020018280546106ba90615654565b80156107075780601f106106dc57610100808354040283529160200191610707565b820191906000526020600020905b8154815290600101906020018083116106ea57829003601f168201915b5050505050905090565b60003361071f818585612469565b60019150505b92915050565b32610768576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b600060028383600081811061077f5761077f6156a7565b9050602002013510156107ad578282600281811061079f5761079f6156a7565b905060200201359050610813565b828260008181106107c0576107c06156a7565b905060200201356002036107e1578282600181811061079f5761079f6156a7565b6040517fb23013d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61081d818561261c565b610853576040517fb23013d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600033610867858285612654565b610872858585612725565b60019150505b9392505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336108ab828261299b565b610853308585612725565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061071f90829086906108fd908790615705565b612469565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361092e828261299b565b610939858585612aa7565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610986610a52565b6040518263ffffffff1660e01b81526004016109a491815260200190565b600060405180830381865afa1580156109c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a079190810190615718565b905090565b6060610a387fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361299b565b610a4787878888888888612c2e565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610a82575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461068e90615654565b6060803215610ac457600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610afb828261299b565b60008b67ffffffffffffffff811115610b1657610b166153b8565b604051908082528060200260200182016040528015610b3f578160200160208202803683370190505b50905060005b8c811015610c31578d8d82818110610b5f57610b5f6156a7565b9050602002016020810190610b7491906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0491906157a7565b828281518110610c1657610c166156a7565b6020908102919091010152610c2a816157c0565b9050610b45565b50610c6b8d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610c8657610c866153b8565b604051908082528060200260200182016040528015610caf578160200160208202803683370190505b50905060005b8d811015610da1578e8e82818110610ccf57610ccf6156a7565b9050602002016020810190610ce491906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7491906157a7565b828281518110610d8657610d866156a7565b6020908102919091010152610d9a816157c0565b9050610cb5565b506000610de28d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612c9b915050565b9050610df18f8f848d8d612eb5565b6000610e3e8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612c9b565b90506000610e4c8383612f9d565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610e7a85856157f8565b8787604051610e8c949392919061580b565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610f72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610f7f8286868403612469565b506001949350505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050600181600081518110610fc557610fc56156a7565b6020908102919091010152919050565b60003361071f818585612725565b6110156040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b61103f7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361299b565b60008061104f606085018561583c565b905067ffffffffffffffff811115611069576110696153b8565b604051908082528060200260200182016040528015611092578160200160208202803683370190505b50905060005b6110a5606086018661583c565b90508110156111bd576110bb606086018661583c565b828181106110cb576110cb6156a7565b90506020020160208101906110e091906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561114c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117091906157a7565b828281518110611182576111826156a7565b60200260200101818152505060008282815181106111a2576111a26156a7565b602002602001015111156111b557600192505b600101611098565b506111cf8161055e604087018761583c565b6111e460a085013561025e604087018761583c565b6111ec614eb3565b6111fa85610100013561302b565b60408501526000611237611211606088018861583c565b61121e60208a018a61583c565b61122b60408c018c61583c565b60009695505050505050565b905064e8d4a5100085604001518261124f91906158a4565b611259919061591f565b6112639082615987565b856040018181516112749190615987565b90525050604084015161128b906101208701613050565b506112e461129c608087018761583c565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506112df92505050610100880160e089016150d3565b612c9b565b81526000808060a088013586156114355760006113086101008b0160e08c016150d3565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61133060608d018d61583c565b8a8e8060800190611341919061583c565b6040518663ffffffff1660e01b81526004016113619594939291906159a7565b602060405180830381865afa15801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a291906157a7565b905064e8d4a510006113b360355490565b10156113cc576113c5816103e8615a5f565b935061141f565b8551156113ed5785516035546113e3908390615a5f565b6113c59190615a76565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561142f57839450611433565b8194505b505b600061144460608b018b61583c565b905067ffffffffffffffff81111561145e5761145e6153b8565b604051908082528060200260200182016040528015611487578160200160208202803683370190505b5090506000828511156118d25785156115485760005b6114aa60608d018d61583c565b90508110156115425785878a83815181106114c7576114c76156a7565b602002602001015102816114dd576114dd6158f0565b048382815181106114f0576114f06156a7565b60200260200101818152505082818151811061150e5761150e6156a7565b6020026020010151898281518110611528576115286156a7565b60209081029190910101805191909103905260010161149d565b50600190505b6000885167ffffffffffffffff811115611564576115646153b8565b60405190808252806020026020018201604052801561158d578160200160208202803683370190505b509050600061159c8d8061583c565b90501115611772576116056115b460608e018e61583c565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e8060000190610853919061583c565b60005b61161560608e018e61583c565b905081101561176c57898181518110611630576116306156a7565b602002602001015182828151811061164a5761164a6156a7565b602002602001018181525050838181518110611668576116686156a7565b60200260200101518d8060600190611680919061583c565b83818110611690576116906156a7565b90506020020160208101906116a591906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173591906157a7565b61173f91906157f8565b8a8281518110611751576117516156a7565b6020908102919091010152611765816157c0565b9050611608565b506117d4565b60005b61178260608e018e61583c565b90508110156117d25789818151811061179d5761179d6156a7565b60200260200101518282815181106117b7576117b76156a7565b60209081029190910101526117cb816157c0565b9050611775565b505b6117fa6117e460608e018e61583c565b8b8f80604001906117f5919061583c565b612eb5565b61185d61180a60808e018e61583c565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906112df91906150d3565b60208901819052885161186f91612f9d565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc9187916118a6916157f8565b838c6040516118b8949392919061580b565b60405180910390a16118ca8786615705565b945050611b29565b84831115611aba5785156118e95785830392508593505b61190f6118f960608d018d61583c565b858e806040019061190a919061583c565b6131ca565b61191930846133c7565b50600161196f61192c60808d018d61583c565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506112df925050506101008e0160e08f016150d3565b602088015260005b61198460608d018d61583c565b9050811015611a745761199a60608d018d61583c565b828181106119aa576119aa6156a7565b90506020020160208101906119bf91906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4f91906157a7565b838281518110611a6157611a616156a7565b6020908102919091010152600101611977565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611aad918691908690615a8a565b60405180910390a1611b29565b8515611b215782935060005b611ad360608d018d61583c565b9050811015611b1b57888181518110611aee57611aee6156a7565b6020026020010151838281518110611b0857611b086156a7565b6020908102919091010152600101611ac6565b50600190505b865160208801525b8015611bd15760005b611b3f60608d018d61583c565b9050811015611bcf57611bc7611b5b60e08e0160c08f016150d3565b848381518110611b6d57611b6d6156a7565b60200260200101518e8060600190611b85919061583c565b85818110611b9557611b956156a7565b9050602002016020810190611baa91906150d3565b73ffffffffffffffffffffffffffffffffffffffff16919061358d565b600101611b32565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b32fa239082906370a0823190602401602060405180830381865afa158015611cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd491906157a7565b6040518263ffffffff1660e01b8152600401611cf291815260200190565b602060405180830381865afa158015611d0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3391906157a7565b81600081518110611d4657611d466156a7565b60200260200101818152505090565b32611df3576040805160018082528183019092526000916020808301908036833701905050905083600081518110611d8f57611d8f6156a7565b602002602001015181600081518110611daa57611daa6156a7565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611de59190615210565b60405180910390a150505050565b600282826000818110611e0857611e086156a7565b905060200201351115611e47576040517fdfc8737800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611e8482826001818110611e5d57611e5d6156a7565b9050602002013584600081518110611e7757611e776156a7565b602002602001015161261c565b611eba576040517fdfc8737800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611eed828261299b565b611ef78585612c9b565b92505b505092915050565b60606096805461068e90615654565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611f3d828261299b565b610853843085612725565b600054610100900460ff1615808015611f685750600054600160ff909116105b80611f825750303b158015611f82575060005460ff166001145b61200e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610f69565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561206c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b612077826000613661565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6120bd610a52565b6040518263ffffffff1660e01b81526004016120db91815260200190565b600060405180830381865afa1580156120f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261213e9190810190615718565b9050805160011415806121b757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681600081518110612196576121966156a7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156121f9576121c4610a52565b6040517f4b1f57ad000000000000000000000000000000000000000000000000000000008152600401610f6991815260200190565b6122016138e7565b60985550801561226857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa15801561231f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123439190615aa9565b15801561242157506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156123fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241f9190615aa9565b155b1561245a576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610f69565b610a4787308888888888612c2e565b73ffffffffffffffffffffffffffffffffffffffff831661250b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff82166125ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061263a60017001000000000000000000000000000000006157f8565b831682108061264c5750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108535781811015612718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610f69565b6108538484848403612469565b73ffffffffffffffffffffffffffffffffffffffff83166127c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff821661286b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061298e9086815260200190565b60405180910390a3610853565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a529190615aa9565b612268576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610f69565b82826000818110612aba57612aba6156a7565b90506020020135600314612afa576040517ffc5fbdf300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090612beb9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612baf91906157a7565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250600192506139a0915050565b905061085373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016838361358d565b60606000612c3f86868b8787613dd9565b9050612c4b888a6133c7565b60005b85811015612c8e57612c8688838381518110612c6c57612c6c6156a7565b6020026020010151898985818110611b9557611b956156a7565b600101612c4e565b5098975050505050505050565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690638b32fa239082906370a0823190602401602060405180830381865afa158015612d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5691906157a7565b6040518263ffffffff1660e01b8152600401612d7491815260200190565b602060405180830381865afa158015612d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db591906157a7565b90508273ffffffffffffffffffffffffffffffffffffffff16639115900c7f00000000000000000000000000000000000000000000000000000000000000008387600081518110612e0857612e086156a7565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ead91906157a7565b949350505050565b600082826000818110612eca57612eca6156a7565b90506020020135600003612ee057506003612f3b565b82826000818110612ef357612ef36156a7565b90506020020135600203612f0957506002612f3b565b6040517f0947e0a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612f9484600081518110612f5157612f516156a7565b602002602001015184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525086925061403a915050565b50505050505050565b600080612fa960355490565b905064e8d4a51000811015612ff157612fc46103e884615a5f565b915064e8d4a5100081900380831015612fda5750815b8083039250612feb61dead82614573565b5061301a565b83156113ed57838161300382866157f8565b61300d9190615a5f565b6130179190615a76565b91505b6130243083614573565b5092915050565b6000806130366138e7565b905061304460985482614668565b60989190915592915050565b6000808313156107255782600061306e64e8d4a51000612710615a5f565b61307e6080860160608701615acb565b6bffffffffffffffffffffffff1661309c6040870160208801615acb565b6130b6906bffffffffffffffffffffffff166127106157f8565b6130c091906157f8565b6130ca9084615a5f565b6130d49190615705565b90506000826130e260355490565b6130ec9190615a5f565b90506000826131016040880160208901615acb565b613119906bffffffffffffffffffffffff1684615a5f565b6131239190615a76565b905061313b61313560208801886150d3565b82614573565b60008361314e6080890160608a01615acb565b613166906bffffffffffffffffffffffff1685615a5f565b6131709190615a76565b90506131856131356060890160408a016150d3565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b6000828260008181106131df576131df6156a7565b905060200201356001036131f5575060036132ad565b82826000818110613208576132086156a7565b9050602002013560020361321e575060026132ad565b82826000818110613231576132316156a7565b90506020020135600303613247575060016132ad565b8282600081811061325a5761325a6156a7565b90506020020135600014801561326e575032155b1561327b575060036132ad565b6040517ffc5fbdf300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006132b860355490565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015286907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613344573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061336891906157a7565b6133729190615a5f565b61337c9190615a76565b90506133bd818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508792506139a0915050565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff821661346a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611eba9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526146d4565b600054610100900460ff166136f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f69565b8151600003613733576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000613799578061378f576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60978190556137d1565b80156137d1576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e613815610a52565b6040518263ffffffff1660e01b815260040161383391815260200190565b60006040518083038186803b15801561384b57600080fd5b505afa15801561385f573d6000803e3d6000fd5b5050505081609690816138729190615b3f565b506122686040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f53535400000000000000000000000000000000000000000000000000000000008152506147e0565b6040517f8b32fa23000000000000000000000000000000000000000000000000000000008152670de0b6b3a764000060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b32fa2390602401602060405180830381865afa15801561397c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0791906157a7565b600032613c35576040517f2f18e2af00000000000000000000000000000000000000000000000000000000815260048101859052600a6024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632f18e2af906044016060604051808303816000875af1158015613a40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a649190615c59565b90925090508160006020020151858581518110613a8357613a836156a7565b6020908102919091010152816001602002015185613aa2866001615705565b81518110613ab257613ab26156a7565b60209081029190910101528085613aca866002615705565b81518110613ada57613ada6156a7565b60209081029190910101528085613af2866003615705565b81518110613b0257613b026156a7565b602090810291909101015260408051600480825260a0820190925260009181602001602082028036833750508451825192935091839150600090613b4857613b486156a7565b6020908102919091010152826001602002015181600181518110613b6e57613b6e6156a7565b6020026020010181815250508181600281518110613b8e57613b8e6156a7565b6020026020010181815250508181600381518110613bae57613bae6156a7565b6020026020010181815250507f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a9060008083604051602001613bef9190615210565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052613c29939291615cde565b60405180910390a15050505b613c807f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000086614881565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a824ae8b848481518110613cce57613cce6156a7565b602002602001015185856001613ce49190615705565b81518110613cf457613cf46156a7565b602002602001015186866002613d0a9190615705565b81518110613d1a57613d1a6156a7565b602002602001015187876003613d309190615705565b81518110613d4057613d406156a7565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815260048101949094526024840192909252604483015260648201526084810187905260a401600060405180830381600087803b158015613db557600080fd5b505af1158015613dc9573d6000803e3d6000fd5b50505050479050610878816148ac565b60608467ffffffffffffffff811115613df457613df46153b8565b604051908082528060200260200182016040528015613e1d578160200160208202803683370190505b50905060005b85811015613f0f57868682818110613e3d57613e3d6156a7565b9050602002016020810190613e5291906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee291906157a7565b828281518110613ef457613ef46156a7565b6020908102919091010152613f08816157c0565b9050613e23565b50613f1d86868686866131ca565b60005b8581101561403057818181518110613f3a57613f3a6156a7565b6020026020010151878783818110613f5457613f546156a7565b9050602002016020810190613f6991906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff991906157a7565b61400391906157f8565b828281518110614015576140156156a7565b6020908102919091010152614029816157c0565b9050613f20565b5095945050505050565b6000326142d0576040517f27e0416300000000000000000000000000000000000000000000000000000000815260048101859052600a6024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906327e04163906044016060604051808303816000875af11580156140da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140fe9190615c59565b9092509050816000602002015185858151811061411d5761411d6156a7565b602090810291909101015281600160200201518561413c866001615705565b8151811061414c5761414c6156a7565b60209081029190910101528085614164866002615705565b81518110614174576141746156a7565b6020908102919091010152808561418c866003615705565b8151811061419c5761419c6156a7565b602090810291909101015260408051600480825260a08201909252600091816020016020820280368337505084518251929350918391506000906141e2576141e26156a7565b6020908102919091010152826001602002015181600181518110614208576142086156a7565b6020026020010181815250508181600281518110614228576142286156a7565b6020026020010181815250508181600381518110614248576142486156a7565b6020026020010181815250507f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a90600160008360405160200161428a9190615210565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526142c4939291615cde565b60405180910390a15050505b6142d984614930565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015614363573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061438791906157a7565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166355362f4d858585815181106143d8576143d86156a7565b6020026020010151868660016143ee9190615705565b815181106143fe576143fe6156a7565b6020026020010151878760026144149190615705565b81518110614424576144246156a7565b60200260200101518888600361443a9190615705565b8151811061444a5761444a6156a7565b60200260200101516040518663ffffffff1660e01b8152600401614487949392919093845260208401929092526040830152606082015260800190565b6000604051808303818588803b1580156144a057600080fd5b505af11580156144b4573d6000803e3d6000fd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201528493507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1692506370a082319150602401602060405180830381865afa158015614545573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061456991906157a7565b612ead91906157f8565b73ffffffffffffffffffffffffffffffffffffffff82166145f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610f69565b80603560008282546146029190615705565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60008282111561469e578264e8d4a5100061468382856157f8565b61468d9190615a5f565b6146979190615a76565b9050610725565b81831115610725578264e8d4a510006146b784836157f8565b6146c19190615a5f565b6146cb9190615a76565b61087890615cff565b6000614736826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166149cc9092919063ffffffff16565b805190915015611eba57808060200190518101906147549190615aa9565b611eba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610f69565b600054610100900460ff16614877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f69565b61226882826149db565b61488b8383614a8b565b611eba73ffffffffffffffffffffffffffffffffffffffff84168383614b49565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561491457600080fd5b505af1158015614928573d6000803e3d6000fd5b505050505050565b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b1580156149b857600080fd5b505af1158015610939573d6000803e3d6000fd5b6060612ead8484600085614ccb565b600054610100900460ff16614a72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f69565b6036614a7e8382615b3f565b506037611eba8282615b3f565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b2591906157a7565b11156122685761226873ffffffffffffffffffffffffffffffffffffffff83168260005b801580614be957506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614be791906157a7565b155b614c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610f69565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611eba9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016135df565b606082471015614d5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610f69565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614d869190615d37565b60006040518083038185875af1925050503d8060008114614dc3576040519150601f19603f3d011682016040523d82523d6000602084013e614dc8565b606091505b5091509150610a478783838760608315614e6a578251600003614e635773ffffffffffffffffffffffffffffffffffffffff85163b614e63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f69565b5081612ead565b612ead8383815115614e7f5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f699190614f3f565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614eec578181015183820152602001614ed4565b50506000910152565b60008151808452614f0d816020860160208601614ed1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006108786020830184614ef5565b73ffffffffffffffffffffffffffffffffffffffff81168114614f7457600080fd5b50565b60008060408385031215614f8a57600080fd5b8235614f9581614f52565b946020939093013593505050565b60008083601f840112614fb557600080fd5b50813567ffffffffffffffff811115614fcd57600080fd5b6020830191508360208260051b8501011115614fe857600080fd5b9250929050565b60008060006040848603121561500457600080fd5b83359250602084013567ffffffffffffffff81111561502257600080fd5b61502e86828701614fa3565b9497909650939450505050565b60008060006060848603121561505057600080fd5b833561505b81614f52565b9250602084013561506b81614f52565b929592945050506040919091013590565b60008060006040848603121561509157600080fd5b833567ffffffffffffffff8111156150a857600080fd5b6150b486828701614fa3565b90945092505060208401356150c881614f52565b809150509250925092565b6000602082840312156150e557600080fd5b813561087881614f52565b600081518084526020808501945080840160005b8381101561513657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101615104565b509495945050505050565b60208152600061087860208301846150f0565b6000806000806000806080878903121561516d57600080fd5b86359550602087013561517f81614f52565b9450604087013567ffffffffffffffff8082111561519c57600080fd5b6151a88a838b01614fa3565b909650945060608901359150808211156151c157600080fd5b506151ce89828a01614fa3565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015615136578151875295820195908201906001016151f4565b60208152600061087860208301846151e0565b60408152600061523660408301856150f0565b828103602084015261524881856151e0565b95945050505050565b600080600080600080600080600060a08a8c03121561526f57600080fd5b893567ffffffffffffffff8082111561528757600080fd5b6152938d838e01614fa3565b909b50995060208c01359150808211156152ac57600080fd5b6152b88d838e01614fa3565b909950975060408c013591506152cd82614f52565b90955060608b013590808211156152e357600080fd5b6152ef8d838e01614fa3565b909650945060808c013591508082111561530857600080fd5b506153158c828d01614fa3565b915080935050809150509295985092959850929598565b60006020828403121561533e57600080fd5b813567ffffffffffffffff81111561535557600080fd5b82016101a0818503121561087857600080fd5b60208152815160208201526000602083015160a0604084015261538e60c08401826151e0565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561542e5761542e6153b8565b604052919050565b600067ffffffffffffffff821115615450576154506153b8565b5060051b60200190565b600082601f83011261546b57600080fd5b8135602061548061547b83615436565b6153e7565b82815260059290921b8401810191818101908684111561549f57600080fd5b8286015b848110156154ba57803583529183019183016154a3565b509695505050505050565b6000806000604084860312156154da57600080fd5b833567ffffffffffffffff808211156154f257600080fd5b6154fe8783880161545a565b9450602086013591508082111561551457600080fd5b5061502e86828701614fa3565b6000806040838503121561553457600080fd5b823567ffffffffffffffff81111561554b57600080fd5b6155578582860161545a565b925050602083013561556881614f52565b809150509250929050565b6000806040838503121561558657600080fd5b823561559181614f52565b9150602083013561556881614f52565b600060208083850312156155b457600080fd5b823567ffffffffffffffff808211156155cc57600080fd5b818501915085601f8301126155e057600080fd5b8135818111156155f2576155f26153b8565b615622847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016153e7565b9150808252868482850101111561563857600080fd5b8084840185840137600090820190930192909252509392505050565b600181811c9082168061566857607f821691505b6020821081036156a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610725576107256156d6565b6000602080838503121561572b57600080fd5b825167ffffffffffffffff81111561574257600080fd5b8301601f8101851361575357600080fd5b805161576161547b82615436565b81815260059190911b8201830190838101908783111561578057600080fd5b928401925b82841015610a4757835161579881614f52565b82529284019290840190615785565b6000602082840312156157b957600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036157f1576157f16156d6565b5060010190565b81810381811115610725576107256156d6565b84815283602082015260806040820152600061582a60808301856151e0565b8281036060840152610a4781856151e0565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261587157600080fd5b83018035915067ffffffffffffffff82111561588c57600080fd5b6020019150600581901b3603821315614fe857600080fd5b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156158dc576158dc6156d6565b8181058314821517610725576107256156d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261592e5761592e6158f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615982576159826156d6565b500590565b8082018281126000831280158216821582161715611efa57611efa6156d6565b6060808252810185905260008660808301825b888110156159f75782356159cd81614f52565b73ffffffffffffffffffffffffffffffffffffffff168252602092830192909101906001016159ba565b508381036020850152615a0a81886151e0565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115615a4557600080fd5b8360051b8086602084013701602001979650505050505050565b8082028115828204841417610725576107256156d6565b600082615a8557615a856158f0565b500490565b83815282602082015260606040820152600061524860608301846151e0565b600060208284031215615abb57600080fd5b8151801515811461087857600080fd5b600060208284031215615add57600080fd5b81356bffffffffffffffffffffffff8116811461087857600080fd5b601f821115611eba57600081815260208120601f850160051c81016020861015615b205750805b601f850160051c820191505b8181101561492857828155600101615b2c565b815167ffffffffffffffff811115615b5957615b596153b8565b615b6d81615b678454615654565b84615af9565b602080601f831160018114615bc05760008415615b8a5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555614928565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015615c0d57888601518255948401946001909101908401615bee565b5085821015615c4957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008060608385031215615c6c57600080fd5b83601f840112615c7b57600080fd5b6040516040810181811067ffffffffffffffff82111715615c9e57615c9e6153b8565b8060405250806040850186811115615cb557600080fd5b855b81811015615ccf578051835260209283019201615cb7565b50519196919550909350505050565b83151581528260208201526060604082015260006152486060830184614ef5565b60007f80000000000000000000000000000000000000000000000000000000000000008203615d3057615d306156d6565b5060000390565b60008251615d49818460208701614ed1565b919091019291505056fea26469706673582212205740574dd20ba806085e79746ceccc677ad2b2edf42947d6d5255ed62ba8944c64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000000000000000000000000000000000000000000100000000000000000000000016d5a408e807db8ef7c578279beeee6b228f1c1c000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0x2d", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x96ecc9c1218f9b23e764357a8199120de53203cfb904f5defe23c182b8cb1230", + "transactionType": "CREATE", + "contractName": "SfrxEthHoldingStrategy", + "contractAddress": "0xeFD8CE62CA1cd5C309ee1421496E8657036E9373", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "1", + "0x5E8422345238F34275888049021821E8E08CAa1f", + "0xac3E018457B222d93114458476f3E3416Abbe38F", + "0xbAFA44EFE7901E04E39Dad13167D089C559c1138", + "0xa1F8A6807c402E4A15ef4EBa36528A3FED24E577", + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x6294da", + "value": "0x0", + "data": "0x6101806040523480156200001257600080fd5b5060405162005cc238038062005cc28339810160408190526200003591620001ad565b80888888816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e0528516620000f05760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038416620001185760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038316620001405760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001685760405163bb0e4c3560e01b815260040160405180910390fd5b506001600160a01b03938416610100529183166101205282166101405216610160525062000262915050565b6001600160a01b0381168114620001aa57600080fd5b50565b600080600080600080600080610100898b031215620001cb57600080fd5b8851620001d88162000194565b60208a0151909850620001eb8162000194565b60408a015160608b01519198509650620002058162000194565b60808a0151909550620002188162000194565b60a08a01519094506200022b8162000194565b60c08a01519093506200023e8162000194565b60e08a0151909250620002518162000194565b809150509295985092959890939650565b60805160a05160c05160e0516101005161012051610140516101605161594b620003776000396000818161049201528181613b9c01528181613c0501526140660152600081816102b10152613f7d0152600081816106d401528181611d4101528181612c6901528181612deb0152818161342e01528181613a3101528181613b07015281816140fd01526141570152600081816103fb01528181613b7b01526140dc0152600081816103c70152818161227701528181612d0f01528181612edd0152818161456b0152614614015260008181610b5701528181610b850152613846015260008181610a44015281816121a401526138e40152600081816123e4015281816124c00152612b08015261594b6000f3fe6080604052600436106102385760003560e01c806395d89b4111610138578063c8d31e74116100b0578063e173ad251161007f578063eef0cbca11610064578063eef0cbca1461072b578063f62d188814610740578063fc195d8c1461076057600080fd5b8063e173ad25146106f6578063ebbd6bc71461070b57600080fd5b8063c8d31e7414610627578063c950d58d14610647578063dd62ed3e1461066f578063e0bfa2bf146106c257600080fd5b8063a63e8c4b11610107578063beef8a71116100ec578063beef8a71146105c5578063c1a0ff4c146105f2578063c1a7d80e1461060757600080fd5b8063a63e8c4b14610590578063a9059cbb146105a557600080fd5b806395d89b41146105185780639b6aaa471461052d578063a3ea6c9714610550578063a457c2d71461057057600080fd5b806339509351116101cb57806370a082311161019a57806371a973051161017f57806371a97305146104b45780637817bf4a146104d657806384ba89e31461050357600080fd5b806370a082311461043d5780637165485d1461048057600080fd5b806339509351146103955780633fc8cef3146103b55780635acb12c8146103e95780636c60d9e71461041d57600080fd5b806318160ddd1161020757806318160ddd1461031a57806323b872dd146103395780632ce5183f14610359578063313ce5671461037957600080fd5b806306fdde0314610244578063095ea7b31461026f5780630d199eaa1461029f5780631480fce3146102f857600080fd5b3661023f57005b600080fd5b34801561025057600080fd5b50610259610780565b6040516102669190614baa565b60405180910390f35b34801561027b57600080fd5b5061028f61028a366004614c20565b610812565b6040519015158152602001610266565b3480156102ab57600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610266565b34801561030457600080fd5b50610318610313366004614c98565b61082c565b005b34801561032657600080fd5b506035545b604051908152602001610266565b34801561034557600080fd5b5061028f610354366004614ce4565b61095b565b34801561036557600080fd5b50610318610374366004614c20565b61097f565b34801561038557600080fd5b5060405160128152602001610266565b3480156103a157600080fd5b5061028f6103b0366004614c20565b6109b6565b3480156103c157600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f557600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b34801561042957600080fd5b50610318610438366004614d25565b610a02565b34801561044957600080fd5b5061032b610458366004614d7c565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b34801561048c57600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c057600080fd5b506104c9610a40565b6040516102669190614dea565b3480156104e257600080fd5b506104f66104f1366004614dfd565b610b0c565b6040516102669190614eb9565b34801561050f57600080fd5b5061032b610b52565b34801561052457600080fd5b50610259610ba7565b34801561053957600080fd5b50610542610bb6565b604051610266929190614ecc565b34801561055c57600080fd5b5061032b61056b366004614efa565b610bcd565b34801561057c57600080fd5b5061028f61058b366004614c20565b610fa9565b34801561059c57600080fd5b506104f661107f565b3480156105b157600080fd5b5061028f6105c0366004614c20565b6110ca565b3480156105d157600080fd5b506105e56105e0366004614fd5565b6110d8565b6040516102669190615011565b3480156105fe57600080fd5b506104f6611cf0565b34801561061357600080fd5b5061031861062236600461516e565b611e4a565b34801561063357600080fd5b5061032b6106423660046151ca565b611fb4565b34801561065357600080fd5b5061065c600181565b604051600f9190910b8152602001610266565b34801561067b57600080fd5b5061032b61068a36600461521c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b3480156106ce57600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b34801561070257600080fd5b50610259611ff7565b34801561071757600080fd5b50610318610726366004614c20565b612006565b34801561073757600080fd5b5061065c600081565b34801561074c57600080fd5b5061031861075b36600461524a565b61203d565b34801561076c57600080fd5b506104f661077b366004614dfd565b61238d565b60606036805461078f906152bc565b80601f01602080910402602001604051908101604052809291908181526020018280546107bb906152bc565b80156108085780601f106107dd57610100808354040283529160200191610808565b820191906000526020600020905b8154815290600101906020018083116107eb57829003601f168201915b5050505050905090565b60003361082081858561258a565b60019150505b92915050565b3261086a576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a906020015b60405180910390a1505050565b60006002838360008181106108815761088161530f565b9050602002013510156108af57828260028181106108a1576108a161530f565b905060200201359050610915565b828260008181106108c2576108c261530f565b905060200201356002036108e357828260018181106108a1576108a161530f565b6040517f2fa5440d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61091f818561273d565b610955576040517f2fa5440d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600033610969858285612775565b610974858585612846565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336109ab8282612abc565b610955308585612846565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061082090829086906109fd90879061536d565b61258a565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610a2e8282612abc565b610a39858585612bcc565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610a86610b52565b6040518263ffffffff1660e01b8152600401610aa491815260200190565b600060405180830381865afa158015610ac1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610b079190810190615380565b905090565b6060610b387fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612abc565b610b4787878888888888612d36565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610b82575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461078f906152bc565b6060803215610bc457600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610bfb8282612abc565b60008b67ffffffffffffffff811115610c1657610c16615061565b604051908082528060200260200182016040528015610c3f578160200160208202803683370190505b50905060005b8c811015610d31578d8d82818110610c5f57610c5f61530f565b9050602002016020810190610c749190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d04919061540f565b828281518110610d1657610d1661530f565b6020908102919091010152610d2a81615428565b9050610c45565b50610d6b8d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610d8657610d86615061565b604051908082528060200260200182016040528015610daf578160200160208202803683370190505b50905060005b8d811015610ea1578e8e82818110610dcf57610dcf61530f565b9050602002016020810190610de49190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e74919061540f565b828281518110610e8657610e8661530f565b6020908102919091010152610e9a81615428565b9050610db5565b506000610ee28d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612da3915050565b9050610ef18f8f848d8d612fbd565b6000610f3e8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612da3565b90506000610f4c83836130e2565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610f7a8585615460565b8787604051610f8c9493929190615473565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610974828686840361258a565b60408051600180825281830190925260609160009190602080830190803683370190505090506001816000815181106110ba576110ba61530f565b6020908102919091010152919050565b600033610820818585612846565b61110a6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6111347fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612abc565b60008061114460608501856154a4565b905067ffffffffffffffff81111561115e5761115e615061565b604051908082528060200260200182016040528015611187578160200160208202803683370190505b50905060005b61119a60608601866154a4565b90508110156112b2576111b060608601866154a4565b828181106111c0576111c061530f565b90506020020160208101906111d59190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611241573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611265919061540f565b8282815181106112775761127761530f565b60200260200101818152505060008282815181106112975761129761530f565b602002602001015111156112aa57600192505b60010161118d565b506112c48161062260408701876154a4565b6112d960a085013561031360408701876154a4565b6112e1614b68565b6112ef856101000135613170565b6040850152600061132c61130660608801886154a4565b61131360208a018a6154a4565b61132060408c018c6154a4565b60009695505050505050565b905064e8d4a51000856040015182611344919061550c565b61134e9190615587565b61135890826155ef565b8560400181815161136991906155ef565b905250506040840151611380906101208701613195565b506113d961139160808701876154a4565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506113d492505050610100880160e08901614d7c565b612da3565b81526000808060a0880135861561152a5760006113fd6101008b0160e08c01614d7c565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61142560608d018d6154a4565b8a8e806080019061143691906154a4565b6040518663ffffffff1660e01b815260040161145695949392919061560f565b602060405180830381865afa158015611473573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611497919061540f565b905064e8d4a510006114a860355490565b10156114c1576114ba816103e86156c7565b9350611514565b8551156114e25785516035546114d89083906156c7565b6114ba91906156de565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561152457839450611528565b8194505b505b600061153960608b018b6154a4565b905067ffffffffffffffff81111561155357611553615061565b60405190808252806020026020018201604052801561157c578160200160208202803683370190505b5090506000828511156119c757851561163d5760005b61159f60608d018d6154a4565b90508110156116375785878a83815181106115bc576115bc61530f565b602002602001015102816115d2576115d2615558565b048382815181106115e5576115e561530f565b6020026020010181815250508281815181106116035761160361530f565b602002602001015189828151811061161d5761161d61530f565b602090810291909101018051919091039052600101611592565b50600190505b6000885167ffffffffffffffff81111561165957611659615061565b604051908082528060200260200182016040528015611682578160200160208202803683370190505b50905060006116918d806154a4565b90501115611867576116fa6116a960608e018e6154a4565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061095591906154a4565b60005b61170a60608e018e6154a4565b9050811015611861578981815181106117255761172561530f565b602002602001015182828151811061173f5761173f61530f565b60200260200101818152505083818151811061175d5761175d61530f565b60200260200101518d806060019061177591906154a4565b838181106117855761178561530f565b905060200201602081019061179a9190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a919061540f565b6118349190615460565b8a82815181106118465761184661530f565b602090810291909101015261185a81615428565b90506116fd565b506118c9565b60005b61187760608e018e6154a4565b90508110156118c7578981815181106118925761189261530f565b60200260200101518282815181106118ac576118ac61530f565b60209081029190910101526118c081615428565b905061186a565b505b6118ef6118d960608e018e6154a4565b8b8f80604001906118ea91906154a4565b612fbd565b6119526118ff60808e018e6154a4565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906113d49190614d7c565b602089018190528851611964916130e2565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc91879161199b91615460565b838c6040516119ad9493929190615473565b60405180910390a16119bf878661536d565b945050611c1e565b84831115611baf5785156119de5785830392508593505b611a046119ee60608d018d6154a4565b858e80604001906119ff91906154a4565b61330f565b611a0e30846134d8565b506001611a64611a2160808d018d6154a4565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506113d4925050506101008e0160e08f01614d7c565b602088015260005b611a7960608d018d6154a4565b9050811015611b6957611a8f60608d018d6154a4565b82818110611a9f57611a9f61530f565b9050602002016020810190611ab49190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b44919061540f565b838281518110611b5657611b5661530f565b6020908102919091010152600101611a6c565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611ba29186919086906156f2565b60405180910390a1611c1e565b8515611c165782935060005b611bc860608d018d6154a4565b9050811015611c1057888181518110611be357611be361530f565b6020026020010151838281518110611bfd57611bfd61530f565b6020908102919091010152600101611bbb565b50600190505b865160208801525b8015611cc65760005b611c3460608d018d6154a4565b9050811015611cc457611cbc611c5060e08e0160c08f01614d7c565b848381518110611c6257611c6261530f565b60200260200101518e8060600190611c7a91906154a4565b85818110611c8a57611c8a61530f565b9050602002016020810190611c9f9190614d7c565b73ffffffffffffffffffffffffffffffffffffffff16919061369e565b600101611c27565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307a2d13a9082906370a0823190602401602060405180830381865afa158015611da5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc9919061540f565b6040518263ffffffff1660e01b8152600401611de791815260200190565b602060405180830381865afa158015611e04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e28919061540f565b81600081518110611e3b57611e3b61530f565b60200260200101818152505090565b32611ee8576040805160018082528183019092526000916020808301908036833701905050905083600081518110611e8457611e8461530f565b602002602001015181600081518110611e9f57611e9f61530f565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611eda9190614eb9565b60405180910390a150505050565b600282826000818110611efd57611efd61530f565b905060200201351115611f3c576040517fea9a553600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f7982826001818110611f5257611f5261530f565b9050602002013584600081518110611f6c57611f6c61530f565b602002602001015161273d565b611faf576040517fea9a553600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611fe28282612abc565b611fec8585612da3565b92505b505092915050565b60606096805461078f906152bc565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336120328282612abc565b610955843085612846565b600054610100900460ff161580801561205d5750600054600160ff909116105b806120775750303b158015612077575060005460ff166001145b612103576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611069565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561216157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6121a083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250613772915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6121e6610b52565b6040518263ffffffff1660e01b815260040161220491815260200190565b600060405180830381865afa158015612221573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526122679190810190615380565b9050805160011415806122e057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816000815181106122bf576122bf61530f565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15612322576122ed610b52565b6040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260040161106991815260200190565b61232a6139f8565b609855508015611faf57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161085d565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124649190615711565b15801561254257506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa15801561251c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125409190615711565b155b1561257b576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401611069565b610b4787308888888888612d36565b73ffffffffffffffffffffffffffffffffffffffff831661262c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff82166126cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061275b6001700100000000000000000000000000000000615460565b831682108061276d5750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109555781811015612839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401611069565b610955848484840361258a565b73ffffffffffffffffffffffffffffffffffffffff83166128e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff821661298c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612a42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612aaf9086815260200190565b60405180910390a3610955565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b739190615711565b612bc8576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401611069565b5050565b82826000818110612bdf57612bdf61530f565b90506020020135600314612c1f576040517fdfd8a34a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090612cf39073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd4919061540f565b85856001818110612ce757612ce761530f565b90506020020135613ab1565b905061095573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016838361369e565b60606000612d4786868b8787613ce5565b9050612d53888a6134d8565b60005b85811015612d9657612d8e88838381518110612d7457612d7461530f565b6020026020010151898985818110611c8a57611c8a61530f565b600101612d56565b5098975050505050505050565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a9082906370a0823190602401602060405180830381865afa158015612e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5e919061540f565b6040518263ffffffff1660e01b8152600401612e7c91815260200190565b602060405180830381865afa158015612e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebd919061540f565b90508273ffffffffffffffffffffffffffffffffffffffff16639115900c7f00000000000000000000000000000000000000000000000000000000000000008387600081518110612f1057612f1061530f565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fb5919061540f565b949350505050565b600082826000818110612fd257612fd261530f565b905060200201356000036130015782826003818110612ff357612ff361530f565b905060200201359050613067565b828260008181106130145761301461530f565b905060200201356002036130355782826002818110612ff357612ff361530f565b6040517f89c2503000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81036130b6576130b1846000815181106130a4576130a461530f565b6020026020010151613f46565b6130da565b6130da846000815181106130cc576130cc61530f565b602002602001015182614001565b505050505050565b6000806130ee60355490565b905064e8d4a51000811015613136576131096103e8846156c7565b915064e8d4a510008190038083101561311f5750815b808303925061313061dead82614229565b5061315f565b83156114e25783816131488286615460565b61315291906156c7565b61315c91906156de565b91505b6131693083614229565b5092915050565b60008061317b6139f8565b90506131896098548261431e565b60989190915592915050565b600080831315610826578260006131b364e8d4a510006127106156c7565b6131c36080860160608701615733565b6bffffffffffffffffffffffff166131e16040870160208801615733565b6131fb906bffffffffffffffffffffffff16612710615460565b6132059190615460565b61320f90846156c7565b613219919061536d565b905060008261322760355490565b61323191906156c7565b90506000826132466040880160208901615733565b61325e906bffffffffffffffffffffffff16846156c7565b61326891906156de565b905061328061327a6020880188614d7c565b82614229565b6000836132936080890160608a01615733565b6132ab906bffffffffffffffffffffffff16856156c7565b6132b591906156de565b90506132ca61327a6060890160408a01614d7c565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b6000828260008181106133245761332461530f565b9050602002013560010361335357828260038181106133455761334561530f565b9050602002013590506133f3565b828260008181106133665761336661530f565b9050602002013560020361338757828260028181106133455761334561530f565b8282600081811061339a5761339a61530f565b905060200201356003036133bb57828260018181106133455761334561530f565b32156133f3576040517fdfd8a34a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006133fe60355490565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015286907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561348a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ae919061540f565b6134b891906156c7565b6134c291906156de565b90506134ce8183613ab1565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff821661357b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611faf9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614391565b600054610100900460ff16613809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611069565b8151600003613844576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006138aa57806138a0576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60978190556138e2565b80156138e2576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e613926610b52565b6040518263ffffffff1660e01b815260040161394491815260200190565b60006040518083038186803b15801561395c57600080fd5b505afa158015613970573d6000803e3d6000fd5b50505050816096908161398391906157a7565b50612bc86040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f535354000000000000000000000000000000000000000000000000000000000081525061449d565b6040517f07a2d13a000000000000000000000000000000000000000000000000000000008152670de0b6b3a764000060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307a2d13a90602401602060405180830381865afa158015613a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b07919061540f565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810183905230602482018190526044820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015613b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b74919061540f565b9050613bc17f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008361453e565b6040517f3df02124000000000000000000000000000000000000000000000000000000008152600160048201526000602482015260448101829052606481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690633df02124906084016020604051808303816000875af1158015613c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c87919061540f565b9150613c9282614569565b326131695760408051600080825260208201859052606082840181905282015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15092915050565b60608467ffffffffffffffff811115613d0057613d00615061565b604051908082528060200260200182016040528015613d29578160200160208202803683370190505b50905060005b85811015613e1b57868682818110613d4957613d4961530f565b9050602002016020810190613d5e9190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dee919061540f565b828281518110613e0057613e0061530f565b6020908102919091010152613e1481615428565b9050613d2f565b50613e29868686868661330f565b60005b85811015613f3c57818181518110613e4657613e4661530f565b6020026020010151878783818110613e6057613e6061530f565b9050602002016020810190613e759190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f05919061540f565b613f0f9190615460565b828281518110613f2157613f2161530f565b6020908102919091010152613f3581615428565b9050613e2c565b5095945050505050565b613f4f816145e5565b6040517f4dcd45470000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690634dcd454790839060240160206040518083038185885af1158015613fdc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612bc8919061540f565b61400a826145e5565b6040517f3df021240000000000000000000000000000000000000000000000000000000081526000600482018190526001602483015260448201849052606482018390529073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690633df0212490859060840160206040518083038185885af11580156140b0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906140d5919061540f565b90506141227f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008361453e565b6040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af11580156141b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d9919061540f565b5032611faf5760408051600181526020810183905260609181018290526000918101919091527f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909060800161085d565b73ffffffffffffffffffffffffffffffffffffffff82166142a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401611069565b80603560008282546142b8919061536d565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115614354578264e8d4a510006143398285615460565b61434391906156c7565b61434d91906156de565b9050610826565b81831115610826578264e8d4a5100061436d8483615460565b61437791906156c7565b61438191906156de565b61438a906158c1565b9392505050565b60006143f3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166146819092919063ffffffff16565b805190915015611faf57808060200190518101906144119190615711565b611faf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611069565b600054610100900460ff16614534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611069565b612bc88282614690565b6145488383614740565b611faf73ffffffffffffffffffffffffffffffffffffffff841683836147fe565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156145d157600080fd5b505af11580156130da573d6000803e3d6000fd5b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b15801561466d57600080fd5b505af1158015610a39573d6000803e3d6000fd5b6060612fb58484600085614980565b600054610100900460ff16614727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611069565b603661473383826157a7565b506037611faf82826157a7565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156147b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147da919061540f565b1115612bc857612bc873ffffffffffffffffffffffffffffffffffffffff83168260005b80158061489e57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061489c919061540f565b155b61492a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401611069565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611faf9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016136f0565b606082471015614a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401611069565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614a3b91906158f9565b60006040518083038185875af1925050503d8060008114614a78576040519150601f19603f3d011682016040523d82523d6000602084013e614a7d565b606091505b5091509150610b478783838760608315614b1f578251600003614b185773ffffffffffffffffffffffffffffffffffffffff85163b614b18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611069565b5081612fb5565b612fb58383815115614b345781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110699190614baa565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614ba1578181015183820152602001614b89565b50506000910152565b6020815260008251806020840152614bc9816040850160208701614b86565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114614c1d57600080fd5b50565b60008060408385031215614c3357600080fd5b8235614c3e81614bfb565b946020939093013593505050565b60008083601f840112614c5e57600080fd5b50813567ffffffffffffffff811115614c7657600080fd5b6020830191508360208260051b8501011115614c9157600080fd5b9250929050565b600080600060408486031215614cad57600080fd5b83359250602084013567ffffffffffffffff811115614ccb57600080fd5b614cd786828701614c4c565b9497909650939450505050565b600080600060608486031215614cf957600080fd5b8335614d0481614bfb565b92506020840135614d1481614bfb565b929592945050506040919091013590565b600080600060408486031215614d3a57600080fd5b833567ffffffffffffffff811115614d5157600080fd5b614d5d86828701614c4c565b9094509250506020840135614d7181614bfb565b809150509250925092565b600060208284031215614d8e57600080fd5b813561438a81614bfb565b600081518084526020808501945080840160005b83811015614ddf57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614dad565b509495945050505050565b60208152600061438a6020830184614d99565b60008060008060008060808789031215614e1657600080fd5b863595506020870135614e2881614bfb565b9450604087013567ffffffffffffffff80821115614e4557600080fd5b614e518a838b01614c4c565b90965094506060890135915080821115614e6a57600080fd5b50614e7789828a01614c4c565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614ddf57815187529582019590820190600101614e9d565b60208152600061438a6020830184614e89565b604081526000614edf6040830185614d99565b8281036020840152614ef18185614e89565b95945050505050565b600080600080600080600080600060a08a8c031215614f1857600080fd5b893567ffffffffffffffff80821115614f3057600080fd5b614f3c8d838e01614c4c565b909b50995060208c0135915080821115614f5557600080fd5b614f618d838e01614c4c565b909950975060408c01359150614f7682614bfb565b90955060608b01359080821115614f8c57600080fd5b614f988d838e01614c4c565b909650945060808c0135915080821115614fb157600080fd5b50614fbe8c828d01614c4c565b915080935050809150509295985092959850929598565b600060208284031215614fe757600080fd5b813567ffffffffffffffff811115614ffe57600080fd5b82016101a0818503121561438a57600080fd5b60208152815160208201526000602083015160a0604084015261503760c0840182614e89565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156150d7576150d7615061565b604052919050565b600067ffffffffffffffff8211156150f9576150f9615061565b5060051b60200190565b600082601f83011261511457600080fd5b81356020615129615124836150df565b615090565b82815260059290921b8401810191818101908684111561514857600080fd5b8286015b84811015615163578035835291830191830161514c565b509695505050505050565b60008060006040848603121561518357600080fd5b833567ffffffffffffffff8082111561519b57600080fd5b6151a787838801615103565b945060208601359150808211156151bd57600080fd5b50614cd786828701614c4c565b600080604083850312156151dd57600080fd5b823567ffffffffffffffff8111156151f457600080fd5b61520085828601615103565b925050602083013561521181614bfb565b809150509250929050565b6000806040838503121561522f57600080fd5b823561523a81614bfb565b9150602083013561521181614bfb565b6000806020838503121561525d57600080fd5b823567ffffffffffffffff8082111561527557600080fd5b818501915085601f83011261528957600080fd5b81358181111561529857600080fd5b8660208285010111156152aa57600080fd5b60209290920196919550909350505050565b600181811c908216806152d057607f821691505b602082108103615309577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156108265761082661533e565b6000602080838503121561539357600080fd5b825167ffffffffffffffff8111156153aa57600080fd5b8301601f810185136153bb57600080fd5b80516153c9615124826150df565b81815260059190911b820183019083810190878311156153e857600080fd5b928401925b82841015610b4757835161540081614bfb565b825292840192908401906153ed565b60006020828403121561542157600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036154595761545961533e565b5060010190565b818103818111156108265761082661533e565b8481528360208201526080604082015260006154926080830185614e89565b8281036060840152610b478185614e89565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126154d957600080fd5b83018035915067ffffffffffffffff8211156154f457600080fd5b6020019150600581901b3603821315614c9157600080fd5b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156155445761554461533e565b81810583148215176108265761082661533e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261559657615596615558565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156155ea576155ea61533e565b500590565b8082018281126000831280158216821582161715611fef57611fef61533e565b6060808252810185905260008660808301825b8881101561565f57823561563581614bfb565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101615622565b5083810360208501526156728188614e89565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156156ad57600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176108265761082661533e565b6000826156ed576156ed615558565b500490565b838152826020820152606060408201526000614ef16060830184614e89565b60006020828403121561572357600080fd5b8151801515811461438a57600080fd5b60006020828403121561574557600080fd5b81356bffffffffffffffffffffffff8116811461438a57600080fd5b601f821115611faf57600081815260208120601f850160051c810160208610156157885750805b601f850160051c820191505b818110156130da57828155600101615794565b815167ffffffffffffffff8111156157c1576157c1615061565b6157d5816157cf84546152bc565b84615761565b602080601f83116001811461582857600084156157f25750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556130da565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561587557888601518255948401946001909101908401615856565b50858210156158b157878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60007f800000000000000000000000000000000000000000000000000000000000000082036158f2576158f261533e565b5060000390565b6000825161590b818460208701614b86565b919091019291505056fea2646970667358221220a2a6455201cde2b9810ca2b5329559fc57b51557638b9724aa96bbfe4d18d5e964736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd1300000000000000000000000000000000000000000000000000000000000000010000000000000000000000005e8422345238f34275888049021821e8e08caa1f000000000000000000000000ac3e018457b222d93114458476f3e3416abbe38f000000000000000000000000bafa44efe7901e04e39dad13167d089c559c1138000000000000000000000000a1f8a6807c402e4a15ef4eba36528a3fed24e577000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0x2e", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa511bed51b1e8aced81d0d1de677c77553a9a9b7c13fff0352b46b84b66e46ff", + "transactionType": "CREATE", + "contractName": "StEthHoldingStrategy", + "contractAddress": "0xc4962991713ff1e5EF4Ac4BA6f5B2292D5b65383", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "1", + "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", + "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022", + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x5ffdf7", + "value": "0x0", + "data": "0x6101406040523480156200001257600080fd5b50604051620059b0380380620059b0833981016040819052620000359162000150565b80868686816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e0528316620000f05760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001185760405163bb0e4c3560e01b815260040160405180910390fd5b506001600160a01b0391821661010052166101205250620001d8915050565b6001600160a01b03811681146200014d57600080fd5b50565b60008060008060008060c087890312156200016a57600080fd5b8651620001778162000137565b60208801519096506200018a8162000137565b604088015160608901519196509450620001a48162000137565b6080880151909350620001b78162000137565b60a0880151909250620001ca8162000137565b809150509295509295509295565b60805160a05160c05160e05161010051610120516156f5620002bb600039600081816104b301528181613a0101528181613a6a0152613ed101526000818161034401528181611d7c01528181612c0d01528181612db90152818161335601528181613959015281816139e00152613dfb0152600081816103f40152818161221701528181612cb301528181612d97015281816142cc0152614375015260008181610b9201528181610bc0015261376e015260008181610a2901528181612144015261380c01526000818161238c015281816124680152612ab001526156f56000f3fe6080604052600436106102385760003560e01c80637817bf4a11610138578063c1a0ff4c116100b0578063e173ad251161007f578063eef0cbca11610064578063eef0cbca14610710578063f62d188814610725578063fc195d8c1461074557600080fd5b8063e173ad25146106db578063ebbd6bc7146106f057600080fd5b8063c1a0ff4c14610633578063c1a7d80e14610648578063c8d31e7414610668578063dd62ed3e1461068857600080fd5b8063a3ea6c9711610107578063a63e8c4b116100ec578063a63e8c4b146105d1578063a9059cbb146105e6578063beef8a711461060657600080fd5b8063a3ea6c9714610591578063a457c2d7146105b157600080fd5b80637817bf4a1461051757806384ba89e31461054457806395d89b41146105595780639b6aaa471461056e57600080fd5b8063313ce567116101cb5780636c60d9e71161019a5780637165485d1161017f5780637165485d146104a157806371a97305146104d5578063773f400e146104f757600080fd5b80636c60d9e71461043e57806370a082311461045e57600080fd5b8063313ce567146103a657806339509351146103c25780633fc8cef3146103e25780635846a9e21461041657600080fd5b806318160ddd1161020757806318160ddd1461031357806323509a2d1461033257806323b872dd146103665780632ce5183f1461038657600080fd5b806306fdde0314610244578063095ea7b31461026f5780631441a5a91461029f5780631480fce3146102f157600080fd5b3661023f57005b600080fd5b34801561025057600080fd5b50610259610765565b6040516102669190614913565b60405180910390f35b34801561027b57600080fd5b5061028f61028a366004614989565b6107f7565b6040519015158152602001610266565b3480156102ab57600080fd5b506099546102cc9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610266565b3480156102fd57600080fd5b5061031161030c366004614a01565b610811565b005b34801561031f57600080fd5b506035545b604051908152602001610266565b34801561033e57600080fd5b506102cc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561037257600080fd5b5061028f610381366004614a4d565b610940565b34801561039257600080fd5b506103116103a1366004614989565b610964565b3480156103b257600080fd5b5060405160128152602001610266565b3480156103ce57600080fd5b5061028f6103dd366004614989565b61099b565b3480156103ee57600080fd5b506102cc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561042257600080fd5b5061042b600181565b604051600f9190910b8152602001610266565b34801561044a57600080fd5b50610311610459366004614a8e565b6109e7565b34801561046a57600080fd5b50610324610479366004614ae5565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b3480156104ad57600080fd5b506102cc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e157600080fd5b506104ea610a25565b6040516102669190614b53565b34801561050357600080fd5b50610311610512366004614ae5565b610af1565b34801561052357600080fd5b50610537610532366004614b66565b610b47565b6040516102669190614c22565b34801561055057600080fd5b50610324610b8d565b34801561056557600080fd5b50610259610be2565b34801561057a57600080fd5b50610583610bf1565b604051610266929190614c35565b34801561059d57600080fd5b506103246105ac366004614c63565b610c08565b3480156105bd57600080fd5b5061028f6105cc366004614989565b610fe4565b3480156105dd57600080fd5b506105376110ba565b3480156105f257600080fd5b5061028f610601366004614989565b611105565b34801561061257600080fd5b50610626610621366004614d3e565b611113565b6040516102669190614d7a565b34801561063f57600080fd5b50610537611d2b565b34801561065457600080fd5b50610311610663366004614ed7565b611e1e565b34801561067457600080fd5b50610324610683366004614f33565b611f88565b34801561069457600080fd5b506103246106a3366004614f85565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b3480156106e757600080fd5b50610259611fcb565b3480156106fc57600080fd5b5061031161070b366004614989565b611fda565b34801561071c57600080fd5b5061042b600081565b34801561073157600080fd5b50610311610740366004614fb3565b612011565b34801561075157600080fd5b50610537610760366004614b66565b612335565b60606036805461077490615066565b80601f01602080910402602001604051908101604052809291908181526020018280546107a090615066565b80156107ed5780601f106107c2576101008083540402835291602001916107ed565b820191906000526020600020905b8154815290600101906020018083116107d057829003601f168201915b5050505050905090565b600033610805818585612532565b60019150505b92915050565b3261084f576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a906020015b60405180910390a1505050565b6000600283836000818110610866576108666150b9565b9050602002013510156108945782826002818110610886576108866150b9565b9050602002013590506108fa565b828260008181106108a7576108a76150b9565b905060200201356002036108c85782826001818110610886576108866150b9565b6040517f28c19e1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61090481856126e5565b61093a576040517f28c19e1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60003361094e85828561271d565b6109598585856127ee565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336109908282612a64565b61093a3085856127ee565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061080590829086906109e2908790615117565b612532565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610a138282612a64565b610a1e858585612b70565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610a6b610b8d565b6040518263ffffffff1660e01b8152600401610a8991815260200190565b600060405180830381865afa158015610aa6573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610aec919081019061512a565b905090565b600033610afe8282612a64565b5050609980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610b737fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612a64565b610b8287878888888888612cda565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610bbd575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461077490615066565b6060803215610bff57600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610c368282612a64565b60008b67ffffffffffffffff811115610c5157610c51614dca565b604051908082528060200260200182016040528015610c7a578160200160208202803683370190505b50905060005b8c811015610d6c578d8d82818110610c9a57610c9a6150b9565b9050602002016020810190610caf9190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3f91906151b9565b828281518110610d5157610d516150b9565b6020908102919091010152610d65816151d2565b9050610c80565b50610da68d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610dc157610dc1614dca565b604051908082528060200260200182016040528015610dea578160200160208202803683370190505b50905060005b8d811015610edc578e8e82818110610e0a57610e0a6150b9565b9050602002016020810190610e1f9190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610e8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaf91906151b9565b828281518110610ec157610ec16150b9565b6020908102919091010152610ed5816151d2565b9050610df0565b506000610f1d8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612d47915050565b9050610f2c8f8f848d8d612ee5565b6000610f798e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612d47565b90506000610f87838361300a565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610fb5858561520a565b8787604051610fc7949392919061521d565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156110ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6109598286868403612532565b60408051600180825281830190925260609160009190602080830190803683370190505090506001816000815181106110f5576110f56150b9565b6020908102919091010152919050565b6000336108058185856127ee565b6111456040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b61116f7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612a64565b60008061117f606085018561524e565b905067ffffffffffffffff81111561119957611199614dca565b6040519080825280602002602001820160405280156111c2578160200160208202803683370190505b50905060005b6111d5606086018661524e565b90508110156112ed576111eb606086018661524e565b828181106111fb576111fb6150b9565b90506020020160208101906112109190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561127c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a091906151b9565b8282815181106112b2576112b26150b9565b60200260200101818152505060008282815181106112d2576112d26150b9565b602002602001015111156112e557600192505b6001016111c8565b506112ff81610663604087018761524e565b61131460a085013561030c604087018761524e565b61131c6148d1565b61132a856101000135613098565b60408501526000611367611341606088018861524e565b61134e60208a018a61524e565b61135b60408c018c61524e565b60009695505050505050565b905064e8d4a5100085604001518261137f91906152b6565b6113899190615331565b6113939082615399565b856040018181516113a49190615399565b9052505060408401516113bb9061012087016130bd565b506114146113cc608087018761524e565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061140f92505050610100880160e08901614ae5565b612d47565b81526000808060a088013586156115655760006114386101008b0160e08c01614ae5565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61146060608d018d61524e565b8a8e8060800190611471919061524e565b6040518663ffffffff1660e01b81526004016114919594939291906153b9565b602060405180830381865afa1580156114ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d291906151b9565b905064e8d4a510006114e360355490565b10156114fc576114f5816103e8615471565b935061154f565b85511561151d578551603554611513908390615471565b6114f59190615488565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561155f57839450611563565b8194505b505b600061157460608b018b61524e565b905067ffffffffffffffff81111561158e5761158e614dca565b6040519080825280602002602001820160405280156115b7578160200160208202803683370190505b509050600082851115611a025785156116785760005b6115da60608d018d61524e565b90508110156116725785878a83815181106115f7576115f76150b9565b6020026020010151028161160d5761160d615302565b04838281518110611620576116206150b9565b60200260200101818152505082818151811061163e5761163e6150b9565b6020026020010151898281518110611658576116586150b9565b6020908102919091010180519190910390526001016115cd565b50600190505b6000885167ffffffffffffffff81111561169457611694614dca565b6040519080825280602002602001820160405280156116bd578160200160208202803683370190505b50905060006116cc8d8061524e565b905011156118a2576117356116e460608e018e61524e565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061093a919061524e565b60005b61174560608e018e61524e565b905081101561189c57898181518110611760576117606150b9565b602002602001015182828151811061177a5761177a6150b9565b602002602001018181525050838181518110611798576117986150b9565b60200260200101518d80606001906117b0919061524e565b838181106117c0576117c06150b9565b90506020020160208101906117d59190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611841573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186591906151b9565b61186f919061520a565b8a8281518110611881576118816150b9565b6020908102919091010152611895816151d2565b9050611738565b50611904565b60005b6118b260608e018e61524e565b9050811015611902578981815181106118cd576118cd6150b9565b60200260200101518282815181106118e7576118e76150b9565b60209081029190910101526118fb816151d2565b90506118a5565b505b61192a61191460608e018e61524e565b8b8f8060400190611925919061524e565b612ee5565b61198d61193a60808e018e61524e565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e001602081019061140f9190614ae5565b60208901819052885161199f9161300a565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc9187916119d69161520a565b838c6040516119e8949392919061521d565b60405180910390a16119fa8786615117565b945050611c59565b84831115611bea578515611a195785830392508593505b611a3f611a2960608d018d61524e565b858e8060400190611a3a919061524e565b613237565b611a493084613400565b506001611a9f611a5c60808d018d61524e565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061140f925050506101008e0160e08f01614ae5565b602088015260005b611ab460608d018d61524e565b9050811015611ba457611aca60608d018d61524e565b82818110611ada57611ada6150b9565b9050602002016020810190611aef9190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f91906151b9565b838281518110611b9157611b916150b9565b6020908102919091010152600101611aa7565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611bdd91869190869061549c565b60405180910390a1611c59565b8515611c515782935060005b611c0360608d018d61524e565b9050811015611c4b57888181518110611c1e57611c1e6150b9565b6020026020010151838281518110611c3857611c386150b9565b6020908102919091010152600101611bf6565b50600190505b865160208801525b8015611d015760005b611c6f60608d018d61524e565b9050811015611cff57611cf7611c8b60e08e0160c08f01614ae5565b848381518110611c9d57611c9d6150b9565b60200260200101518e8060600190611cb5919061524e565b85818110611cc557611cc56150b9565b9050602002016020810190611cda9190614ae5565b73ffffffffffffffffffffffffffffffffffffffff1691906135c6565b600101611c62565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfc91906151b9565b81600081518110611e0f57611e0f6150b9565b60200260200101818152505090565b32611ebc576040805160018082528183019092526000916020808301908036833701905050905083600081518110611e5857611e586150b9565b602002602001015181600081518110611e7357611e736150b9565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611eae9190614c22565b60405180910390a150505050565b600282826000818110611ed157611ed16150b9565b905060200201351115611f10576040517f22eb798400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f4d82826001818110611f2657611f266150b9565b9050602002013584600081518110611f4057611f406150b9565b60200260200101516126e5565b611f83576040517f22eb798400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611fb68282612a64565b611fc08585612d47565b92505b505092915050565b60606096805461077490615066565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336120068282612a64565b61093a8430856127ee565b600054610100900460ff16158080156120315750600054600160ff909116105b8061204b5750303b15801561204b575060005460ff166001145b6120d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110a4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561213557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61214082600061369a565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a612186610b8d565b6040518263ffffffff1660e01b81526004016121a491815260200190565b600060405180830381865afa1580156121c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612207919081019061512a565b90508051600114158061228057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168160008151811061225f5761225f6150b9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156122c25761228d610b8d565b6040517f4b1f57ad0000000000000000000000000000000000000000000000000000000081526004016110a491815260200190565b6122ca613920565b60985550801561233157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c91906154bb565b1580156124ea57506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156124c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e891906154bb565b155b15612523576040517f7ab612a30000000000000000000000000000000000000000000000000000000081523360048201526024016110a4565b610b8287308888888888612cda565b73ffffffffffffffffffffffffffffffffffffffff83166125d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff8216612677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000612703600170010000000000000000000000000000000061520a565b83168210806127155750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461093a57818110156127e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016110a4565b61093a8484848403612532565b73ffffffffffffffffffffffffffffffffffffffff8316612891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff8216612934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040902054818110156129ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612a579086815260200190565b60405180910390a361093a565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1b91906154bb565b612331576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff821660248201526044016110a4565b82826000818110612b8357612b836150b9565b90506020020135600314612bc3576040517f04a85bad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090612c979073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7891906151b9565b85856001818110612c8b57612c8b6150b9565b905060200201356139d9565b905061093a73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683836135c6565b60606000612ceb86868b8787613b49565b9050612cf7888a613400565b60005b85811015612d3a57612d3288838381518110612d1857612d186150b9565b6020026020010151898985818110611cc557611cc56150b9565b600101612cfa565b5098975050505050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff80841691639115900c917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015612e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2691906151b9565b86600081518110612e3957612e396150b9565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ede91906151b9565b9392505050565b600082826000818110612efa57612efa6150b9565b90506020020135600003612f295782826003818110612f1b57612f1b6150b9565b905060200201359050612f8f565b82826000818110612f3c57612f3c6150b9565b90506020020135600203612f5d5782826002818110612f1b57612f1b6150b9565b6040517fbda2248900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8103612fde57612fd984600081518110612fcc57612fcc6150b9565b6020026020010151613daa565b613002565b61300284600081518110612ff457612ff46150b9565b602002602001015182613e6c565b505050505050565b60008061301660355490565b905064e8d4a5100081101561305e576130316103e884615471565b915064e8d4a51000819003808310156130475750815b808303925061305861dead82613f91565b50613087565b831561151d578381613070828661520a565b61307a9190615471565b6130849190615488565b91505b6130913083613f91565b5092915050565b6000806130a3613920565b90506130b160985482614086565b60989190915592915050565b60008083131561080b578260006130db64e8d4a51000612710615471565b6130eb60808601606087016154dd565b6bffffffffffffffffffffffff1661310960408701602088016154dd565b613123906bffffffffffffffffffffffff1661271061520a565b61312d919061520a565b6131379084615471565b6131419190615117565b905060008261314f60355490565b6131599190615471565b905060008261316e60408801602089016154dd565b613186906bffffffffffffffffffffffff1684615471565b6131909190615488565b90506131a86131a26020880188614ae5565b82613f91565b6000836131bb6080890160608a016154dd565b6131d3906bffffffffffffffffffffffff1685615471565b6131dd9190615488565b90506131f26131a26060890160408a01614ae5565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b60008282600081811061324c5761324c6150b9565b9050602002013560010361327b578282600381811061326d5761326d6150b9565b90506020020135905061331b565b8282600081811061328e5761328e6150b9565b905060200201356002036132af578282600281811061326d5761326d6150b9565b828260008181106132c2576132c26150b9565b905060200201356003036132e3578282600181811061326d5761326d6150b9565b321561331b576040517f04a85bad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061332660355490565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015286907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156133b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d691906151b9565b6133e09190615471565b6133ea9190615488565b90506133f681836139d9565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166134a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611f839084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526140f2565b600054610100900460ff16613731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016110a4565b815160000361376c576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006137d257806137c8576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609781905561380a565b801561380a576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e61384e610b8d565b6040518263ffffffff1660e01b815260040161386c91815260200190565b60006040518083038186803b15801561388457600080fd5b505afa158015613898573d6000803e3d6000fd5b5050505081609690816138ab9190615551565b506123316040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f53535400000000000000000000000000000000000000000000000000000000008152506141fe565b6040517f7a28fb88000000000000000000000000000000000000000000000000000000008152670de0b6b3a764000060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637a28fb8890602401602060405180830381865afa1580156139b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aec91906151b9565b6000613a267f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008561429f565b6040517f3df02124000000000000000000000000000000000000000000000000000000008152600160048201526000602482015260448101849052606481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690633df02124906084016020604051808303816000875af1158015613ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aec91906151b9565b9050613af7816142ca565b3261080b5760408051600080825260208201849052606082840181905282015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a192915050565b60608467ffffffffffffffff811115613b6457613b64614dca565b604051908082528060200260200182016040528015613b8d578160200160208202803683370190505b50905060005b85811015613c7f57868682818110613bad57613bad6150b9565b9050602002016020810190613bc29190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5291906151b9565b828281518110613c6457613c646150b9565b6020908102919091010152613c78816151d2565b9050613b93565b50613c8d8686868686613237565b60005b85811015613da057818181518110613caa57613caa6150b9565b6020026020010151878783818110613cc457613cc46150b9565b9050602002016020810190613cd99190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613d45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d6991906151b9565b613d73919061520a565b828281518110613d8557613d856150b9565b6020908102919091010152613d99816151d2565b9050613c90565b5095945050505050565b613db381614346565b6099546040517fa1903eab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527f00000000000000000000000000000000000000000000000000000000000000009091169063a1903eab90839060240160206040518083038185885af1158015613e47573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061233191906151b9565b613e7582614346565b6040517f3df021240000000000000000000000000000000000000000000000000000000081526000600482018190526001602483015260448201849052606482018390529073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690633df0212490859060840160206040518083038185885af1158015613f1b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613f4091906151b9565b905032611f835760408051600181526020810183905260609181018290526000918101919091527f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a9090608001610842565b73ffffffffffffffffffffffffffffffffffffffff821661400e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016110a4565b80603560008282546140209190615117565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000828211156140bc578264e8d4a510006140a1828561520a565b6140ab9190615471565b6140b59190615488565b905061080b565b8183111561080b578264e8d4a510006140d5848361520a565b6140df9190615471565b6140e99190615488565b612ede9061566b565b6000614154826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166143e29092919063ffffffff16565b805190915015611f83578080602001905181019061417291906154bb565b611f83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016110a4565b600054610100900460ff16614295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016110a4565b61233182826143f9565b6142a983836144a9565b611f8373ffffffffffffffffffffffffffffffffffffffff84168383614567565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561433257600080fd5b505af1158015613002573d6000803e3d6000fd5b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b1580156143ce57600080fd5b505af1158015610a1e573d6000803e3d6000fd5b60606143f184846000856146e9565b949350505050565b600054610100900460ff16614490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016110a4565b603661449c8382615551565b506037611f838282615551565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa15801561451f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061454391906151b9565b11156123315761233173ffffffffffffffffffffffffffffffffffffffff83168260005b80158061460757506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156145e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061460591906151b9565b155b614693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016110a4565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611f839084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613618565b60608247101561477b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016110a4565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516147a491906156a3565b60006040518083038185875af1925050503d80600081146147e1576040519150601f19603f3d011682016040523d82523d6000602084013e6147e6565b606091505b5091509150610b8287838387606083156148885782516000036148815773ffffffffffffffffffffffffffffffffffffffff85163b614881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016110a4565b50816143f1565b6143f1838381511561489d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a49190614913565b60405180604001604052806002906020820280368337509192915050565b60005b8381101561490a5781810151838201526020016148f2565b50506000910152565b60208152600082518060208401526149328160408501602087016148ef565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461498657600080fd5b50565b6000806040838503121561499c57600080fd5b82356149a781614964565b946020939093013593505050565b60008083601f8401126149c757600080fd5b50813567ffffffffffffffff8111156149df57600080fd5b6020830191508360208260051b85010111156149fa57600080fd5b9250929050565b600080600060408486031215614a1657600080fd5b83359250602084013567ffffffffffffffff811115614a3457600080fd5b614a40868287016149b5565b9497909650939450505050565b600080600060608486031215614a6257600080fd5b8335614a6d81614964565b92506020840135614a7d81614964565b929592945050506040919091013590565b600080600060408486031215614aa357600080fd5b833567ffffffffffffffff811115614aba57600080fd5b614ac6868287016149b5565b9094509250506020840135614ada81614964565b809150509250925092565b600060208284031215614af757600080fd5b8135612ede81614964565b600081518084526020808501945080840160005b83811015614b4857815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614b16565b509495945050505050565b602081526000612ede6020830184614b02565b60008060008060008060808789031215614b7f57600080fd5b863595506020870135614b9181614964565b9450604087013567ffffffffffffffff80821115614bae57600080fd5b614bba8a838b016149b5565b90965094506060890135915080821115614bd357600080fd5b50614be089828a016149b5565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614b4857815187529582019590820190600101614c06565b602081526000612ede6020830184614bf2565b604081526000614c486040830185614b02565b8281036020840152614c5a8185614bf2565b95945050505050565b600080600080600080600080600060a08a8c031215614c8157600080fd5b893567ffffffffffffffff80821115614c9957600080fd5b614ca58d838e016149b5565b909b50995060208c0135915080821115614cbe57600080fd5b614cca8d838e016149b5565b909950975060408c01359150614cdf82614964565b90955060608b01359080821115614cf557600080fd5b614d018d838e016149b5565b909650945060808c0135915080821115614d1a57600080fd5b50614d278c828d016149b5565b915080935050809150509295985092959850929598565b600060208284031215614d5057600080fd5b813567ffffffffffffffff811115614d6757600080fd5b82016101a08185031215612ede57600080fd5b60208152815160208201526000602083015160a06040840152614da060c0840182614bf2565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614e4057614e40614dca565b604052919050565b600067ffffffffffffffff821115614e6257614e62614dca565b5060051b60200190565b600082601f830112614e7d57600080fd5b81356020614e92614e8d83614e48565b614df9565b82815260059290921b84018101918181019086841115614eb157600080fd5b8286015b84811015614ecc5780358352918301918301614eb5565b509695505050505050565b600080600060408486031215614eec57600080fd5b833567ffffffffffffffff80821115614f0457600080fd5b614f1087838801614e6c565b94506020860135915080821115614f2657600080fd5b50614a40868287016149b5565b60008060408385031215614f4657600080fd5b823567ffffffffffffffff811115614f5d57600080fd5b614f6985828601614e6c565b9250506020830135614f7a81614964565b809150509250929050565b60008060408385031215614f9857600080fd5b8235614fa381614964565b91506020830135614f7a81614964565b60006020808385031215614fc657600080fd5b823567ffffffffffffffff80821115614fde57600080fd5b818501915085601f830112614ff257600080fd5b81358181111561500457615004614dca565b615034847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614df9565b9150808252868482850101111561504a57600080fd5b8084840185840137600090820190930192909252509392505050565b600181811c9082168061507a57607f821691505b6020821081036150b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561080b5761080b6150e8565b6000602080838503121561513d57600080fd5b825167ffffffffffffffff81111561515457600080fd5b8301601f8101851361516557600080fd5b8051615173614e8d82614e48565b81815260059190911b8201830190838101908783111561519257600080fd5b928401925b82841015610b825783516151aa81614964565b82529284019290840190615197565b6000602082840312156151cb57600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615203576152036150e8565b5060010190565b8181038181111561080b5761080b6150e8565b84815283602082015260806040820152600061523c6080830185614bf2565b8281036060840152610b828185614bf2565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261528357600080fd5b83018035915067ffffffffffffffff82111561529e57600080fd5b6020019150600581901b36038213156149fa57600080fd5b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156152ee576152ee6150e8565b818105831482151761080b5761080b6150e8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261534057615340615302565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615394576153946150e8565b500590565b8082018281126000831280158216821582161715611fc357611fc36150e8565b6060808252810185905260008660808301825b888110156154095782356153df81614964565b73ffffffffffffffffffffffffffffffffffffffff168252602092830192909101906001016153cc565b50838103602085015261541c8188614bf2565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561545757600080fd5b8360051b8086602084013701602001979650505050505050565b808202811582820484141761080b5761080b6150e8565b60008261549757615497615302565b500490565b838152826020820152606060408201526000614c5a6060830184614bf2565b6000602082840312156154cd57600080fd5b81518015158114612ede57600080fd5b6000602082840312156154ef57600080fd5b81356bffffffffffffffffffffffff81168114612ede57600080fd5b601f821115611f8357600081815260208120601f850160051c810160208610156155325750805b601f850160051c820191505b818110156130025782815560010161553e565b815167ffffffffffffffff81111561556b5761556b614dca565b61557f816155798454615066565b8461550b565b602080601f8311600181146155d2576000841561559c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613002565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561561f57888601518255948401946001909101908401615600565b508582101561565b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60007f8000000000000000000000000000000000000000000000000000000000000000820361569c5761569c6150e8565b5060000390565b600082516156b58184602087016148ef565b919091019291505056fea2646970667358221220ee3e002fea7b58daf0a94dcbd6b880354af443d4f052a6aee5ca7635a557653564736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd130000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f67022000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0x2f", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x1adf9dd022a32a35ab8a26025d1baeff0e84bb40610956913a54ae104d76d0d0", + "transactionType": "CREATE", + "contractName": "YearnV2Strategy", + "contractAddress": "0xb7F6FBbB8d11946951b14cC349DDcF7e11F74D7e", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x627e79", + "value": "0x0", + "data": "0x60e06040523480156200001157600080fd5b5060405162005ab438038062005ab48339810160408190526200003491620000c3565b81816000816001600160a01b038116620000615760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660805283166200008f5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390921660a0525060c05250620001029050565b6001600160a01b0381168114620000c057600080fd5b50565b60008060408385031215620000d757600080fd5b8251620000e481620000aa565b6020840151909250620000f781620000aa565b809150509250929050565b60805160a05160c0516159516200016360003960008181610e2f01528181610e5d0152612c5f015260008181610a1d01528181610d1c01528181612cfd01526131930152600081816123a30152818161247f0152612ac701526159516000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806384ba89e311610104578063beef8a71116100a2578063dd62ed3e11610071578063dd62ed3e14610467578063e173ad25146104ad578063ebbd6bc7146104b5578063fc195d8c146104c857600080fd5b8063beef8a7114610419578063c1a0ff4c14610439578063c1a7d80e14610441578063c8d31e741461045457600080fd5b8063a3ea6c97116100de578063a3ea6c97146103d8578063a457c2d7146103eb578063a63e8c4b146103fe578063a9059cbb1461040657600080fd5b806384ba89e3146103b257806395d89b41146103ba5780639b6aaa47146103c257600080fd5b8063313ce5671161017c5780636c60d9e71161014b5780636c60d9e71461033457806370a082311461034757806371a973051461037d5780637817bf4a1461039257600080fd5b8063313ce567146102b257806339509351146102c15780634c9e6dbf146102d45780634f3bddeb1461032157600080fd5b80631480fce3116101b85780631480fce31461026557806318160ddd1461027a57806323b872dd1461028c5780632ce5183f1461029f57600080fd5b806306fdde03146101df578063095ea7b3146101fd5780630bc0eebe14610220575b600080fd5b6101e76104db565b6040516101f491906149f4565b60405180910390f35b61021061020b366004614a6a565b61056d565b60405190151581526020016101f4565b6098546102409073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b610278610273366004614ae2565b610587565b005b6035545b6040519081526020016101f4565b61021061029a366004614b2e565b6106b5565b6102786102ad366004614a6a565b6106d9565b604051601281526020016101f4565b6102106102cf366004614a6a565b610710565b609854610304907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff90911681526020016101f4565b61027861032f366004614bfd565b61075c565b610278610342366004614cca565b610cda565b61027e610355366004614d21565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b610385610d18565b6040516101f49190614d8f565b6103a56103a0366004614da2565b610de4565b6040516101f49190614e5e565b61027e610e2a565b6101e7610e7f565b6103ca610e8e565b6040516101f4929190614e71565b61027e6103e6366004614e9f565b610ea5565b6102106103f9366004614a6a565b611281565b6103a5611352565b610210610414366004614a6a565b61139d565b61042c610427366004614f7a565b6113ab565b6040516101f49190614fb6565b6103a5611fc3565b61027861044f366004615095565b612167565b61027e6104623660046150f1565b6122c3565b61027e610475366004615143565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6101e7612306565b6102786104c3366004614a6a565b612315565b6103a56104d6366004614da2565b61234c565b6060603680546104ea90615171565b80601f016020809104026020016040519081016040528092919081815260200182805461051690615171565b80156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b5050505050905090565b60003361057b818585612549565b60019150505b92915050565b326105c4576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b60006002838360008181106105db576105db6151c4565b90506020020135101561060957828260028181106105fb576105fb6151c4565b90506020020135905061066f565b8282600081811061061c5761061c6151c4565b9050602002013560020361063d57828260018181106105fb576105fb6151c4565b6040517f476fda5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067981856126fc565b6106af576040517f476fda5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000336106c3858285612734565b6106ce858585612805565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336107058282612a7b565b6106af308585612805565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061057b9082908690610757908790615222565b612549565b600054610100900460ff161580801561077c5750600054600160ff909116105b806107965750303b158015610796575060005460ff166001145b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561088557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61088f8484612b8b565b73ffffffffffffffffffffffffffffffffffffffff82166108dc576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155604080517f313ce56700000000000000000000000000000000000000000000000000000000815290516109ab929163313ce5679160048083019260209291908290030181865afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190615235565b6109a690600a61536e565b612e11565b609880546bffffffffffffffffffffffff92909216740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff9283161790556040517fdd0fe31a0000000000000000000000000000000000000000000000000000000081526000917f0000000000000000000000000000000000000000000000000000000000000000169063dd0fe31a90610a5690879060040190815260200190565b600060405180830381865afa158015610a73573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ab9919081019061537a565b905080516001141580610ba25750609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b589190615409565b73ffffffffffffffffffffffffffffffffffffffff1681600081518110610b8157610b816151c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610bdc576040517f4b1f57ad0000000000000000000000000000000000000000000000000000000081526004810185905260240161081e565b609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399530b066040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6d9190615235565b6099555080156106af57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150505050565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610d068282612a7b565b610d11858585612eb3565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610d5e610e2a565b6040518263ffffffff1660e01b8152600401610d7c91815260200190565b600060405180830381865afa158015610d99573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ddf919081019061537a565b905090565b6060610e107fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612a7b565b610e1f87878888888888612fba565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610e5a575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b6060603780546104ea90615171565b6060803215610e9c57600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610ed38282612a7b565b60008b67ffffffffffffffff811115610eee57610eee614b6f565b604051908082528060200260200182016040528015610f17578160200160208202803683370190505b50905060005b8c811015611009578d8d82818110610f3757610f376151c4565b9050602002016020810190610f4c9190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdc9190615235565b828281518110610fee57610fee6151c4565b602090810291909101015261100281615426565b9050610f1d565b506110438d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff81111561105e5761105e614b6f565b604051908082528060200260200182016040528015611087578160200160208202803683370190505b50905060005b8d811015611179578e8e828181106110a7576110a76151c4565b90506020020160208101906110bc9190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114c9190615235565b82828151811061115e5761115e6151c4565b602090810291909101015261117281615426565b905061108d565b5060006111ba8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250613027915050565b90506111c98f8f848d8d613348565b60006112168e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d613027565b905060006112248383613447565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81611252858561545e565b87876040516112649493929190615471565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161081e565b6106ce8286868403612549565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061138d5761138d6151c4565b6020908102919091010152919050565b60003361057b818585612805565b6113dd6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6114077fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612a7b565b60008061141760608501856154a2565b905067ffffffffffffffff81111561143157611431614b6f565b60405190808252806020026020018201604052801561145a578160200160208202803683370190505b50905060005b61146d60608601866154a2565b90508110156115855761148360608601866154a2565b82818110611493576114936151c4565b90506020020160208101906114a89190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611514573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115389190615235565b82828151811061154a5761154a6151c4565b602002602001018181525050600082828151811061156a5761156a6151c4565b6020026020010151111561157d57600192505b600101611460565b506115978161044f60408701876154a2565b6115ac60a085013561027360408701876154a2565b6115b46149b2565b6115c28561010001356134d5565b604085015260006115ff6115d960608801886154a2565b6115e660208a018a6154a2565b6115f360408c018c6154a2565b60009695505050505050565b905064e8d4a51000856040015182611617919061550a565b6116219190615585565b61162b90826155ed565b8560400181815161163c91906155ed565b905250506040840151611653906101208701613583565b506116ac61166460808701876154a2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506116a792505050610100880160e08901614d21565b613027565b81526000808060a088013586156117fd5760006116d06101008b0160e08c01614d21565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6116f860608d018d6154a2565b8a8e806080019061170991906154a2565b6040518663ffffffff1660e01b815260040161172995949392919061560d565b602060405180830381865afa158015611746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176a9190615235565b905064e8d4a5100061177b60355490565b10156117945761178d816103e86156c5565b93506117e7565b8551156117b55785516035546117ab9083906156c5565b61178d91906156dc565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156117f7578394506117fb565b8194505b505b600061180c60608b018b6154a2565b905067ffffffffffffffff81111561182657611826614b6f565b60405190808252806020026020018201604052801561184f578160200160208202803683370190505b509050600082851115611c9a5785156119105760005b61187260608d018d6154a2565b905081101561190a5785878a838151811061188f5761188f6151c4565b602002602001015102816118a5576118a5615556565b048382815181106118b8576118b86151c4565b6020026020010181815250508281815181106118d6576118d66151c4565b60200260200101518982815181106118f0576118f06151c4565b602090810291909101018051919091039052600101611865565b50600190505b6000885167ffffffffffffffff81111561192c5761192c614b6f565b604051908082528060200260200182016040528015611955578160200160208202803683370190505b50905060006119648d806154a2565b90501115611b3a576119cd61197c60608e018e6154a2565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906106af91906154a2565b60005b6119dd60608e018e6154a2565b9050811015611b34578981815181106119f8576119f86151c4565b6020026020010151828281518110611a1257611a126151c4565b602002602001018181525050838181518110611a3057611a306151c4565b60200260200101518d8060600190611a4891906154a2565b83818110611a5857611a586151c4565b9050602002016020810190611a6d9190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd9190615235565b611b07919061545e565b8a8281518110611b1957611b196151c4565b6020908102919091010152611b2d81615426565b90506119d0565b50611b9c565b60005b611b4a60608e018e6154a2565b9050811015611b9a57898181518110611b6557611b656151c4565b6020026020010151828281518110611b7f57611b7f6151c4565b6020908102919091010152611b9381615426565b9050611b3d565b505b611bc2611bac60608e018e6154a2565b8b8f8060400190611bbd91906154a2565b613348565b611c25611bd260808e018e6154a2565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906116a79190614d21565b602089018190528851611c3791613447565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611c6e9161545e565b838c604051611c809493929190615471565b60405180910390a1611c928786615222565b945050611ef1565b84831115611e82578515611cb15785830392508593505b611cd7611cc160608d018d6154a2565b858e8060400190611cd291906154a2565b6136fd565b611ce1308461389f565b506001611d37611cf460808d018d6154a2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506116a7925050506101008e0160e08f01614d21565b602088015260005b611d4c60608d018d6154a2565b9050811015611e3c57611d6260608d018d6154a2565b82818110611d7257611d726151c4565b9050602002016020810190611d879190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e179190615235565b838281518110611e2957611e296151c4565b6020908102919091010152600101611d3f565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611e759186919086906156f0565b60405180910390a1611ef1565b8515611ee95782935060005b611e9b60608d018d6154a2565b9050811015611ee357888181518110611eb657611eb66151c4565b6020026020010151838281518110611ed057611ed06151c4565b6020908102919091010152600101611e8e565b50600190505b865160208801525b8015611f995760005b611f0760608d018d6154a2565b9050811015611f9757611f8f611f2360e08e0160c08f01614d21565b848381518110611f3557611f356151c4565b60200260200101518e8060600190611f4d91906154a2565b85818110611f5d57611f5d6151c4565b9050602002016020810190611f729190614d21565b73ffffffffffffffffffffffffffffffffffffffff169190613a65565b600101611efa565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b604080516001808252818301909252606091602080830190803683375050609854604080517f99530b0600000000000000000000000000000000000000000000000000000000815290519394507401000000000000000000000000000000000000000082046bffffffffffffffffffffffff169373ffffffffffffffffffffffffffffffffffffffff90921692506399530b069160048083019260209291908290030181865afa15801561207b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209f9190615235565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561210d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121319190615235565b61213b91906156c5565b61214591906156dc565b81600081518110612158576121586151c4565b60200260200101818152505090565b326121f75760408051600180825281830190925260009160208083019080368337019050509050836000815181106121a1576121a16151c4565b6020026020010151816000815181106121bc576121bc6151c4565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051610ccc9190614e5e565b60028282600081811061220c5761220c6151c4565b90506020020135111561224b576040517f2ac3958c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61228882826001818110612261576122616151c4565b905060200201358460008151811061227b5761227b6151c4565b60200260200101516126fc565b6122be576040517f2ac3958c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336122f18282612a7b565b6122fb8585613027565b92505b505092915050565b6060609680546104ea90615171565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336123418282612a7b565b6106af843085612805565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156123ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612423919061570f565b15801561250157506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156124db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ff919061570f565b155b1561253a576040517f7ab612a300000000000000000000000000000000000000000000000000000000815233600482015260240161081e565b610e1f87308888888888612fba565b73ffffffffffffffffffffffffffffffffffffffff83166125eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff821661268e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061271a600170010000000000000000000000000000000061545e565b831682108061272c5750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106af57818110156127f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161081e565b6106af8484848403612549565b73ffffffffffffffffffffffffffffffffffffffff83166128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff821661294b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612a01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612a6e9086815260200190565b60405180910390a36106af565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b32919061570f565b612b87576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8216602482015260440161081e565b5050565b600054610100900460ff16612c22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161081e565b8151600003612c5d576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000612cc35780612cb9576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055612cfb565b8015612cfb576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e612d3f610e2a565b6040518263ffffffff1660e01b8152600401612d5d91815260200190565b60006040518083038186803b158015612d7557600080fd5b505afa158015612d89573d6000803e3d6000fd5b505050508160969081612d9c919061577f565b50612b876040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613b39565b60006bffffffffffffffffffffffff821115612eaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f3620626974730000000000000000000000000000000000000000000000000000606482015260840161081e565b5090565b82826000818110612ec657612ec66151c4565b90506020020135600314612f06576040517f0affb00500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6098546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526122be9173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f9a9190615235565b8285856001818110612fae57612fae6151c4565b90506020020135613bda565b60606000612fcb86868b8787613e7a565b9050612fd7888a61389f565b60005b8581101561301a5761301288838381518110612ff857612ff86151c4565b6020026020010151898985818110611f5d57611f5d6151c4565b600101612fda565b5098975050505050505050565b609854604080517f99530b06000000000000000000000000000000000000000000000000000000008152905160009283926bffffffffffffffffffffffff740100000000000000000000000000000000000000008304169273ffffffffffffffffffffffffffffffffffffffff909216916399530b06916004808201926020929091908290030181865afa1580156130c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e79190615235565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015613155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131799190615235565b61318391906156c5565b61318d91906156dc565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6131d5610e2a565b6040518263ffffffff1660e01b81526004016131f391815260200190565b600060405180830381865afa158015613210573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613256919081019061537a565b90508373ffffffffffffffffffffffffffffffffffffffff16639115900c82600081518110613287576132876151c4565b602002602001015184886000815181106132a3576132a36151c4565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015613324573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fb9190615235565b60008282600081811061335d5761335d6151c4565b9050602002013560000361338c578282600381811061337e5761337e6151c4565b9050602002013590506133f2565b8282600081811061339f5761339f6151c4565b905060200201356002036133c0578282600281811061337e5761337e6151c4565b6040517f6e1e41ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61343e86866000818110613408576134086151c4565b905060200201602081019061341d9190614d21565b85600081518110613430576134306151c4565b6020026020010151836140db565b50505050505050565b60008061345360355490565b905064e8d4a5100081101561349b5761346e6103e8846156c5565b915064e8d4a51000819003808310156134845750815b808303925061349561dead8261422c565b506134c4565b83156117b55783816134ad828661545e565b6134b791906156c5565b6134c191906156dc565b91505b6134ce308361422c565b5092915050565b600080609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399530b066040518163ffffffff1660e01b8152600401602060405180830381865afa158015613545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135699190615235565b905061357760995482614321565b60999190915592915050565b600080831315610581578260006135a164e8d4a510006127106156c5565b6135b16080860160608701615899565b6bffffffffffffffffffffffff166135cf6040870160208801615899565b6135e9906bffffffffffffffffffffffff1661271061545e565b6135f3919061545e565b6135fd90846156c5565b6136079190615222565b905060008261361560355490565b61361f91906156c5565b90506000826136346040880160208901615899565b61364c906bffffffffffffffffffffffff16846156c5565b61365691906156dc565b905061366e6136686020880188614d21565b8261422c565b6000836136816080890160608a01615899565b613699906bffffffffffffffffffffffff16856156c5565b6136a391906156dc565b90506136b86136686060890160408a01614d21565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b600082826000818110613712576137126151c4565b905060200201356001036137415782826003818110613733576137336151c4565b9050602002013590506137e1565b82826000818110613754576137546151c4565b905060200201356002036137755782826002818110613733576137336151c4565b82826000818110613788576137886151c4565b905060200201356003036137a95782826001818110613733576137336151c4565b32156137e1576040517f0affb00500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006137ec60355490565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152879173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561385a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387e9190615235565b61388891906156c5565b61389291906156dc565b905061343e813084613bda565b73ffffffffffffffffffffffffffffffffffffffff8216613942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260336020526040902054818110156139f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526122be9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614394565b600054610100900460ff16613bd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161081e565b612b8782826144a0565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6d9190615235565b6098546040517fe63697c80000000000000000000000000000000000000000000000000000000081526004810187905273ffffffffffffffffffffffffffffffffffffffff868116602483015261271060448301529293506000929091169063e63697c8906064016020604051808303816000875af1158015613cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d189190615235565b905082811015613d54576040517f0affb00500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613d5e858361545e565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015613dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df09190615235565b14613e27576040517f73f9c9a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b32610d115760408051600080825260208201849052606082840181905282015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15050505050565b60608467ffffffffffffffff811115613e9557613e95614b6f565b604051908082528060200260200182016040528015613ebe578160200160208202803683370190505b50905060005b85811015613fb057868682818110613ede57613ede6151c4565b9050602002016020810190613ef39190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f839190615235565b828281518110613f9557613f956151c4565b6020908102919091010152613fa981615426565b9050613ec4565b50613fbe86868686866136fd565b60005b858110156140d157818181518110613fdb57613fdb6151c4565b6020026020010151878783818110613ff557613ff56151c4565b905060200201602081019061400a9190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015614076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061409a9190615235565b6140a4919061545e565b8282815181106140b6576140b66151c4565b60209081029190910101526140ca81615426565b9050613fc1565b5095945050505050565b60985460009061410390859073ffffffffffffffffffffffffffffffffffffffff1685614550565b6098546040517fb6b55f250000000000000000000000000000000000000000000000000000000081526004810185905260009173ffffffffffffffffffffffffffffffffffffffff169063b6b55f25906024016020604051808303816000875af1158015614175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141999190615235565b9050828110156141d5576040517f6e1e41ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3261422457604080516001815260208101839052606081830181905260009082015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15b949350505050565b73ffffffffffffffffffffffffffffffffffffffff82166142a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161081e565b80603560008282546142bb9190615222565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115614357578264e8d4a5100061433c828561545e565b61434691906156c5565b61435091906156dc565b9050610581565b81831115610581578264e8d4a51000614370848361545e565b61437a91906156c5565b61438491906156dc565b61438d906158c7565b9392505050565b60006143f6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661457b9092919063ffffffff16565b8051909150156122be5780806020019051810190614414919061570f565b6122be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161081e565b600054610100900460ff16614537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161081e565b6036614543838261577f565b5060376122be828261577f565b61455a838361458a565b6122be73ffffffffffffffffffffffffffffffffffffffff84168383614648565b606061422484846000856147ca565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146249190615235565b1115612b8757612b8773ffffffffffffffffffffffffffffffffffffffff83168260005b8015806146e857506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156146c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146e69190615235565b155b614774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161081e565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526122be9084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613ab7565b60608247101561485c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161081e565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161488591906158ff565b60006040518083038185875af1925050503d80600081146148c2576040519150601f19603f3d011682016040523d82523d6000602084013e6148c7565b606091505b5091509150610e1f87838387606083156149695782516000036149625773ffffffffffffffffffffffffffffffffffffffff85163b614962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161081e565b5081614224565b614224838381511561497e5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e91906149f4565b60405180604001604052806002906020820280368337509192915050565b60005b838110156149eb5781810151838201526020016149d3565b50506000910152565b6020815260008251806020840152614a138160408501602087016149d0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114614a6757600080fd5b50565b60008060408385031215614a7d57600080fd5b8235614a8881614a45565b946020939093013593505050565b60008083601f840112614aa857600080fd5b50813567ffffffffffffffff811115614ac057600080fd5b6020830191508360208260051b8501011115614adb57600080fd5b9250929050565b600080600060408486031215614af757600080fd5b83359250602084013567ffffffffffffffff811115614b1557600080fd5b614b2186828701614a96565b9497909650939450505050565b600080600060608486031215614b4357600080fd5b8335614b4e81614a45565b92506020840135614b5e81614a45565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614be557614be5614b6f565b604052919050565b8035614bf881614a45565b919050565b600080600060608486031215614c1257600080fd5b833567ffffffffffffffff80821115614c2a57600080fd5b818601915086601f830112614c3e57600080fd5b8135602082821115614c5257614c52614b6f565b614c82817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614b9e565b92508183528881838601011115614c9857600080fd5b8181850182850137600081838501015282965080880135955050505050614cc160408501614bed565b90509250925092565b600080600060408486031215614cdf57600080fd5b833567ffffffffffffffff811115614cf657600080fd5b614d0286828701614a96565b9094509250506020840135614d1681614a45565b809150509250925092565b600060208284031215614d3357600080fd5b813561438d81614a45565b600081518084526020808501945080840160005b83811015614d8457815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614d52565b509495945050505050565b60208152600061438d6020830184614d3e565b60008060008060008060808789031215614dbb57600080fd5b863595506020870135614dcd81614a45565b9450604087013567ffffffffffffffff80821115614dea57600080fd5b614df68a838b01614a96565b90965094506060890135915080821115614e0f57600080fd5b50614e1c89828a01614a96565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614d8457815187529582019590820190600101614e42565b60208152600061438d6020830184614e2e565b604081526000614e846040830185614d3e565b8281036020840152614e968185614e2e565b95945050505050565b600080600080600080600080600060a08a8c031215614ebd57600080fd5b893567ffffffffffffffff80821115614ed557600080fd5b614ee18d838e01614a96565b909b50995060208c0135915080821115614efa57600080fd5b614f068d838e01614a96565b909950975060408c01359150614f1b82614a45565b90955060608b01359080821115614f3157600080fd5b614f3d8d838e01614a96565b909650945060808c0135915080821115614f5657600080fd5b50614f638c828d01614a96565b915080935050809150509295985092959850929598565b600060208284031215614f8c57600080fd5b813567ffffffffffffffff811115614fa357600080fd5b82016101a0818503121561438d57600080fd5b60208152815160208201526000602083015160a06040840152614fdc60c0840182614e2e565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff82111561502057615020614b6f565b5060051b60200190565b600082601f83011261503b57600080fd5b8135602061505061504b83615006565b614b9e565b82815260059290921b8401810191818101908684111561506f57600080fd5b8286015b8481101561508a5780358352918301918301615073565b509695505050505050565b6000806000604084860312156150aa57600080fd5b833567ffffffffffffffff808211156150c257600080fd5b6150ce8783880161502a565b945060208601359150808211156150e457600080fd5b50614b2186828701614a96565b6000806040838503121561510457600080fd5b823567ffffffffffffffff81111561511b57600080fd5b6151278582860161502a565b925050602083013561513881614a45565b809150509250929050565b6000806040838503121561515657600080fd5b823561516181614a45565b9150602083013561513881614a45565b600181811c9082168061518557607f821691505b6020821081036151be577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610581576105816151f3565b60006020828403121561524757600080fd5b5051919050565b600181815b808511156152a757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561528d5761528d6151f3565b8085161561529a57918102915b93841c9390800290615253565b509250929050565b6000826152be57506001610581565b816152cb57506000610581565b81600181146152e157600281146152eb57615307565b6001915050610581565b60ff8411156152fc576152fc6151f3565b50506001821b610581565b5060208310610133831016604e8410600b841016171561532a575081810a610581565b615334838361524e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615366576153666151f3565b029392505050565b600061438d83836152af565b6000602080838503121561538d57600080fd5b825167ffffffffffffffff8111156153a457600080fd5b8301601f810185136153b557600080fd5b80516153c361504b82615006565b81815260059190911b820183019083810190878311156153e257600080fd5b928401925b82841015610e1f5783516153fa81614a45565b825292840192908401906153e7565b60006020828403121561541b57600080fd5b815161438d81614a45565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615457576154576151f3565b5060010190565b81810381811115610581576105816151f3565b8481528360208201526080604082015260006154906080830185614e2e565b8281036060840152610e1f8185614e2e565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126154d757600080fd5b83018035915067ffffffffffffffff8211156154f257600080fd5b6020019150600581901b3603821315614adb57600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615615542576155426151f3565b8181058314821517610581576105816151f3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261559457615594615556565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156155e8576155e86151f3565b500590565b80820182811260008312801582168215821617156122fe576122fe6151f3565b6060808252810185905260008660808301825b8881101561565d57823561563381614a45565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101615620565b5083810360208501526156708188614e2e565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156156ab57600080fd5b8360051b8086602084013701602001979650505050505050565b8082028115828204841417610581576105816151f3565b6000826156eb576156eb615556565b500490565b838152826020820152606060408201526000614e966060830184614e2e565b60006020828403121561572157600080fd5b8151801515811461438d57600080fd5b601f8211156122be57600081815260208120601f850160051c810160208610156157585750805b601f850160051c820191505b8181101561577757828155600101615764565b505050505050565b815167ffffffffffffffff81111561579957615799614b6f565b6157ad816157a78454615171565b84615731565b602080601f83116001811461580057600084156157ca5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555615777565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561584d5788860151825594840194600190910190840161582e565b508582101561588957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156158ab57600080fd5b81356bffffffffffffffffffffffff8116811461438d57600080fd5b60007f800000000000000000000000000000000000000000000000000000000000000082036158f8576158f86151f3565b5060000390565b600082516159118184602087016149d0565b919091019291505056fea2646970667358221220c5e7a398bd45256b81ff4ac67872525af64eca84c50480b74c95daaccfadcacc64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13", + "nonce": "0x30", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x3fa8995e30dcae9ee43cf6e3db19b73a61bbb36797e760b04b85cee1f43cdba6", + "transactionIndex": "0x27", + "blockHash": "0xbea2cb9b6aab338c84d6693eb30d7fc8cbed4fed7584d726e2a9d7e29d2db3a6", + "blockNumber": "0x1328bf0", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0xc18bb5", + "gasUsed": "0x475e09", + "contractAddress": "0x3Bb41F7A05535CC05Ab6263dd01a4fa3462bE3c9", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2432f29c6" + }, + { + "transactionHash": "0xaabedaf83b85212aba4aa2b364585b61f81aeb9e860b130aec4e4aebb3cfb3f4", + "transactionIndex": "0x14", + "blockHash": "0x303ca2607a0656780bca8070297c6e20f6db4cb7a8103abd4b9a818a7f851045", + "blockNumber": "0x1328bf1", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x5d0f8d", + "gasUsed": "0x4dce97", + "contractAddress": "0x8fE41e9B43bB45d0eFBc86C32Aa4705935Bf8b13", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x25bf3f1de" + }, + { + "transactionHash": "0x5fda4f8c302c36e7f5f82765166b2e8dfb826425240d796ab9005cb8d8abcdcf", + "transactionIndex": "0x4", + "blockHash": "0x8f4ef1acd0cd71ac8185c25cd4f1c45abe7aea37ba2198fa111a9765acf04c56", + "blockNumber": "0x1328bf2", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x5a21fa", + "gasUsed": "0x4f402c", + "contractAddress": "0xb170F18dca153752b2F35304e5ea581373095f4e", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x26608696f" + }, + { + "transactionHash": "0x68108b6f0ed11f97c495be98ff227d8d1f519b24c2abdd16b90fb7191dc8a965", + "transactionIndex": "0x5", + "blockHash": "0xcd6e6a2f02cf705026d4b55f0499450fbb3f9f74f91cf8e9b08d05e1bcc7d0d3", + "blockNumber": "0x1328bf3", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x46b6b5", + "gasUsed": "0x432e55", + "contractAddress": "0xdD55DAb8A52b1E2983a9c7297650DBA857dB4e3b", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x289246975" + }, + { + "transactionHash": "0x7f1f918b80089a7cf9cf5dfb7032132a1d0f4c3b202d2e01994043f7af61a201", + "transactionIndex": "0x7", + "blockHash": "0xbd7fc82b51a4211563b97d5797cff78689a9ee3cecdf40e1a245dbc7245f224f", + "blockNumber": "0x1328bf4", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x6897da", + "gasUsed": "0x49e17c", + "contractAddress": "0x40844863f1a8945499501111f71eCdABDBedDEf5", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x26587c0fa" + }, + { + "transactionHash": "0xb91ddfd8d422aa9cfff66dc97d7272b22985add2eb89d32ab5b17e0e6a20035c", + "transactionIndex": "0x39", + "blockHash": "0x39e1c1b571fabb7e6ca62b8db6601490cd3028838287978499c036f60094fca4", + "blockNumber": "0x1328bf5", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x96a5f3", + "gasUsed": "0x4bfc8a", + "contractAddress": "0x120da9fA3F56D2179FACab9Ce9b3D00dF4BE1575", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x29b460504" + }, + { + "transactionHash": "0x7c5e1f8832e1e22beb58b34b6ff7d11a6865592b503dcf5ba9a843c2347ac518", + "transactionIndex": "0x3", + "blockHash": "0x8fb51559f3107bb00ca67db7d7da24a0386154fb2a22bd3e9fc0e9406d6d017f", + "blockNumber": "0x1328bf6", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x5a5d34", + "gasUsed": "0x4f71c2", + "contractAddress": "0x56a20C5D76d41338fBd5D7cB7Db37e937143f910", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2a199f0ae" + }, + { + "transactionHash": "0x96ecc9c1218f9b23e764357a8199120de53203cfb904f5defe23c182b8cb1230", + "transactionIndex": "0x5", + "blockHash": "0x99550716c160218bf2098556713e55987aa71d2c81b155f44feb486b9f1de3fa", + "blockNumber": "0x1328bf7", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x5ddce0", + "gasUsed": "0x4bd4f7", + "contractAddress": "0xeFD8CE62CA1cd5C309ee1421496E8657036E9373", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2a987fa8a" + }, + { + "transactionHash": "0xa511bed51b1e8aced81d0d1de677c77553a9a9b7c13fff0352b46b84b66e46ff", + "transactionIndex": "0x4", + "blockHash": "0x2747a484fa657c5096e9dcf381db0a824051a8a23e7f4d4b1884730f3870dd0f", + "blockNumber": "0x1328bf8", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x55c2e6", + "gasUsed": "0x49d70d", + "contractAddress": "0xc4962991713ff1e5EF4Ac4BA6f5B2292D5b65383", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2b2a39db5" + }, + { + "transactionHash": "0x1adf9dd022a32a35ab8a26025d1baeff0e84bb40610956913a54ae104d76d0d0", + "transactionIndex": "0x36", + "blockHash": "0xeb99dd549d934032d32b1b614e6dcaab50476c863512781b0c7394af42083127", + "blockNumber": "0x1328bf9", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x99fa37", + "gasUsed": "0x4bc3c0", + "contractAddress": "0xb7F6FBbB8d11946951b14cC349DDcF7e11F74D7e", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2b51e57fc" + } + ], + "libraries": [ + "script/helper/ArraysHelper.sol:ArraysHelper:0x7dF191D01252D2C0BABf77c725c63D69fe6EAA1a", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0", + "src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1", + "src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89", + "src/strategies/libraries/EthFrxEthAssetGroupAdapter.sol:EthFrxEthAssetGroupAdapter:0xE23681bAA697EF5054E2D8C397ae59145027625D", + "src/strategies/libraries/EthStEthAssetGroupAdapter.sol:EthStEthAssetGroupAdapter:0x1516eb3a54377168b6b184326200f4258C3529dF" + ], + "pending": [], + "returns": {}, + "timestamp": 1718365923, + "chain": 1, + "multi": false, + "commit": "d367aee" +} \ No newline at end of file diff --git a/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-latest.json b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-latest.json new file mode 100644 index 00000000..4fc68234 --- /dev/null +++ b/broadcast/mainnet-production/DeployStrategiesDepositedEvent.s.sol/1/run-latest.json @@ -0,0 +1,430 @@ +{ + "transactions": [ + { + "hash": "0x3fa8995e30dcae9ee43cf6e3db19b73a61bbb36797e760b04b85cee1f43cdba6", + "transactionType": "CREATE", + "contractName": "AaveV2Strategy", + "contractAddress": "0x3Bb41F7A05535CC05Ab6263dd01a4fa3462bE3c9", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x5cc70b", + "value": "0x0", + "data": "0x6101006040523480156200001257600080fd5b50604051620055dd380380620055dd8339810160408190526200003591620000f0565b82826000816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b031660e05250620001449050565b6001600160a01b0381168114620000ed57600080fd5b50565b6000806000606084860312156200010657600080fd5b83516200011381620000d7565b60208501519093506200012681620000d7565b60408501519092506200013981620000d7565b809150509250925092565b60805160a05160c05160e0516153fd620001e060003960008181610202015281816109f701528181610b7a015281816127d801528181612ea4015281816131d5015261356101526000818161075e0152818161078c0152612a9c01526000818161064b0152818161091301528181612b3a01528181612ceb015261310c01526000818161201a015281816120f6015261270601526153fd6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806395d89b4111610104578063beef8a71116100a2578063dd62ed3e11610071578063dd62ed3e1461043c578063e173ad2514610482578063ebbd6bc71461048a578063fc195d8c1461049d57600080fd5b8063beef8a71146103f3578063c1a0ff4c14610413578063c1a7d80e1461041b578063c8d31e741461042957600080fd5b8063a3ea6c97116100de578063a3ea6c97146103b2578063a457c2d7146103c5578063a63e8c4b146103d8578063a9059cbb146103e057600080fd5b806395d89b41146103745780639b6aaa471461037c578063a0c1f15e1461039257600080fd5b8063313ce5671161017c57806371a973051161014b57806371a97305146103245780637817bf4a1461033957806384ba89e3146103595780638beaf7d71461036157600080fd5b8063313ce567146102b957806339509351146102c85780636c60d9e7146102db57806370a08231146102ee57600080fd5b80631480fce3116101b85780631480fce31461026c57806318160ddd1461028157806323b872dd146102935780632ce5183f146102a657600080fd5b806306fdde03146101df578063085d4883146101fd578063095ea7b314610249575b600080fd5b6101e76104b0565b6040516101f49190614442565b60405180910390f35b6102247f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b61025c6102573660046144b8565b610542565b60405190151581526020016101f4565b61027f61027a366004614530565b505050565b005b6035545b6040519081526020016101f4565b61025c6102a136600461457c565b61055c565b61027f6102b43660046144b8565b610580565b604051601281526020016101f4565b61025c6102d63660046144b8565b6105bd565b61027f6102e93660046145bd565b610609565b6102856102fc366004614614565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b61032c610647565b6040516101f49190614682565b61034c610347366004614695565b610713565b6040516101f49190614751565b610285610759565b61027f61036f36600461480c565b6107ae565b6101e7610d21565b610384610d30565b6040516101f49291906148c4565b6098546102249073ffffffffffffffffffffffffffffffffffffffff1681565b6102856103c03660046148f2565b610d47565b61025c6103d33660046144b8565b611123565b61034c6111f4565b61025c6103ee3660046144b8565b61123f565b6104066104013660046149cd565b61124d565b6040516101f49190614a09565b61034c611e65565b61027f61027a366004614ae8565b610285610437366004614b44565b611f3a565b61028561044a366004614b96565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6101e7611f7d565b61027f6104983660046144b8565b611f8c565b61034c6104ab366004614695565b611fc3565b6060603680546104bf90614bc4565b80601f01602080910402602001604051908101604052809291908181526020018280546104eb90614bc4565b80156105385780601f1061050d57610100808354040283529160200191610538565b820191906000526020600020905b81548152906001019060200180831161051b57829003601f168201915b5050505050905090565b6000336105508185856121c0565b60019150505b92915050565b60003361056a858285612373565b610575858585612444565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336105ac82826126ba565b6105b7308585612444565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105509082908690610604908790614c46565b6121c0565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361063582826126ba565b6106408585856127ca565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a61068d610759565b6040518263ffffffff1660e01b81526004016106ab91815260200190565b600060405180830381865afa1580156106c8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261070e9190810190614c69565b905090565b606061073f7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336126ba565b61074e8787888888888861295b565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610789575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b600054610100900460ff16158080156107ce5750600054600160ff909116105b806107e85750303b1580156107e8575060005460ff166001145b610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108d757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108e183836129c8565b6040517fdd0fe31a000000000000000000000000000000000000000000000000000000008152600481018390526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063dd0fe31a90602401600060405180830381865afa15801561096f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526109b59190810190614c69565b905080516001146109f5576040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260048101849052602401610870565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a849190614cf8565b73ffffffffffffffffffffffffffffffffffffffff166335ea6a7582600081518110610ab257610ab2614d15565b60200260200101516040518263ffffffff1660e01b8152600401610af2919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b61018060405180830381865afa158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b349190614dcc565b60e00151609860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c079190614cf8565b73ffffffffffffffffffffffffffffffffffffffff1663d15e005382600081518110610c3557610c35614d15565b60200260200101516040518263ffffffff1660e01b8152600401610c75919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190614eb9565b60995550801561027a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6060603780546104bf90614bc4565b6060803215610d3e57600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610d7582826126ba565b60008b67ffffffffffffffff811115610d9057610d90614764565b604051908082528060200260200182016040528015610db9578160200160208202803683370190505b50905060005b8c811015610eab578d8d82818110610dd957610dd9614d15565b9050602002016020810190610dee9190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7e9190614eb9565b828281518110610e9057610e90614d15565b6020908102919091010152610ea481614ed2565b9050610dbf565b50610ee58d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610f0057610f00614764565b604051908082528060200260200182016040528015610f29578160200160208202803683370190505b50905060005b8d81101561101b578e8e82818110610f4957610f49614d15565b9050602002016020810190610f5e9190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee9190614eb9565b82828151811061100057611000614d15565b602090810291909101015261101481614ed2565b9050610f2f565b50600061105c8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612c4e915050565b905061106b8f8f848d8d612ea0565b60006110b88e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612c4e565b905060006110c68383613079565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc816110f48585614f0a565b87876040516111069493929190614f1d565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156111e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610870565b61057582868684036121c0565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061122f5761122f614d15565b6020908102919091010152919050565b600033610550818585612444565b61127f6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6112a97fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336126ba565b6000806112b96060850185614f4e565b905067ffffffffffffffff8111156112d3576112d3614764565b6040519080825280602002602001820160405280156112fc578160200160208202803683370190505b50905060005b61130f6060860186614f4e565b9050811015611427576113256060860186614f4e565b8281811061133557611335614d15565b905060200201602081019061134a9190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da9190614eb9565b8282815181106113ec576113ec614d15565b602002602001018181525050600082828151811061140c5761140c614d15565b6020026020010151111561141f57600192505b600101611302565b506114398161027a6040870187614f4e565b61144e60a085013561027a6040870187614f4e565b611456614400565b611464856101000135613107565b604085015260006114a161147b6060880188614f4e565b61148860208a018a614f4e565b61149560408c018c614f4e565b60009695505050505050565b905064e8d4a510008560400151826114b99190614fb6565b6114c39190615031565b6114cd9082615099565b856040018181516114de9190615099565b9052505060408401516114f590610120870161332c565b5061154e6115066080870187614f4e565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061154992505050610100880160e08901614614565b612c4e565b81526000808060a0880135861561169f5760006115726101008b0160e08c01614614565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61159a60608d018d614f4e565b8a8e80608001906115ab9190614f4e565b6040518663ffffffff1660e01b81526004016115cb9594939291906150b9565b602060405180830381865afa1580156115e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160c9190614eb9565b905064e8d4a5100061161d60355490565b10156116365761162f816103e8615171565b9350611689565b85511561165757855160355461164d908390615171565b61162f9190615188565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156116995783945061169d565b8194505b505b60006116ae60608b018b614f4e565b905067ffffffffffffffff8111156116c8576116c8614764565b6040519080825280602002602001820160405280156116f1578160200160208202803683370190505b509050600082851115611b3c5785156117b25760005b61171460608d018d614f4e565b90508110156117ac5785878a838151811061173157611731614d15565b6020026020010151028161174757611747615002565b0483828151811061175a5761175a614d15565b60200260200101818152505082818151811061177857611778614d15565b602002602001015189828151811061179257611792614d15565b602090810291909101018051919091039052600101611707565b50600190505b6000885167ffffffffffffffff8111156117ce576117ce614764565b6040519080825280602002602001820160405280156117f7578160200160208202803683370190505b50905060006118068d80614f4e565b905011156119dc5761186f61181e60608e018e614f4e565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906105b79190614f4e565b60005b61187f60608e018e614f4e565b90508110156119d65789818151811061189a5761189a614d15565b60200260200101518282815181106118b4576118b4614d15565b6020026020010181815250508381815181106118d2576118d2614d15565b60200260200101518d80606001906118ea9190614f4e565b838181106118fa576118fa614d15565b905060200201602081019061190f9190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561197b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199f9190614eb9565b6119a99190614f0a565b8a82815181106119bb576119bb614d15565b60209081029190910101526119cf81614ed2565b9050611872565b50611a3e565b60005b6119ec60608e018e614f4e565b9050811015611a3c57898181518110611a0757611a07614d15565b6020026020010151828281518110611a2157611a21614d15565b6020908102919091010152611a3581614ed2565b90506119df565b505b611a64611a4e60608e018e614f4e565b8b8f8060400190611a5f9190614f4e565b612ea0565b611ac7611a7460808e018e614f4e565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906115499190614614565b602089018190528851611ad991613079565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611b1091614f0a565b838c604051611b229493929190614f1d565b60405180910390a1611b348786614c46565b945050611d93565b84831115611d24578515611b535785830392508593505b611b79611b6360608d018d614f4e565b858e8060400190611b749190614f4e565b6134a6565b611b8330846136d6565b506001611bd9611b9660808d018d614f4e565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611549925050506101008e0160e08f01614614565b602088015260005b611bee60608d018d614f4e565b9050811015611cde57611c0460608d018d614f4e565b82818110611c1457611c14614d15565b9050602002016020810190611c299190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb99190614eb9565b838281518110611ccb57611ccb614d15565b6020908102919091010152600101611be1565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611d1791869190869061519c565b60405180910390a1611d93565b8515611d8b5782935060005b611d3d60608d018d614f4e565b9050811015611d8557888181518110611d5857611d58614d15565b6020026020010151838281518110611d7257611d72614d15565b6020908102919091010152600101611d30565b50600190505b865160208801525b8015611e3b5760005b611da960608d018d614f4e565b9050811015611e3957611e31611dc560e08e0160c08f01614614565b848381518110611dd757611dd7614d15565b60200260200101518e8060600190611def9190614f4e565b85818110611dff57611dff614d15565b9050602002016020810190611e149190614614565b73ffffffffffffffffffffffffffffffffffffffff16919061389c565b600101611d9c565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291925073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f189190614eb9565b81600081518110611f2b57611f2b614d15565b60200260200101818152505090565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611f6882826126ba565b611f728585612c4e565b92505b505092915050565b6060609680546104bf90614bc4565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611fb882826126ba565b6105b7843085612444565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209a91906151bb565b15801561217857506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612152573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217691906151bb565b155b156121b1576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610870565b61074e8730888888888861295b565b73ffffffffffffffffffffffffffffffffffffffff8316612262576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff8216612305576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105b75781811015612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610870565b6105b784848484036121c0565b73ffffffffffffffffffffffffffffffffffffffff83166124e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff821661258a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906126ad9086815260200190565b60405180910390a36105b7565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa15801561274d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277191906151bb565b6127c6576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610870565b5050565b60006127d4610647565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128659190614cf8565b73ffffffffffffffffffffffffffffffffffffffff166369328dec8260008151811061289357612893614d15565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602482015290851660448201526064016020604051808303816000875af1158015612937573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190614eb9565b6060600061296c86868b8787613970565b9050612978888a6136d6565b60005b858110156129bb576129b38883838151811061299957612999614d15565b6020026020010151898985818110611dff57611dff614d15565b60010161297b565b5098975050505050505050565b600054610100900460ff16612a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610870565b8151600003612a9a576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000612b005780612af6576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055612b38565b8015612b38576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e612b7c610759565b6040518263ffffffff1660e01b8152600401612b9a91815260200190565b60006040518083038186803b158015612bb257600080fd5b505afa158015612bc6573d6000803e3d6000fd5b505050508160969081612bd9919061522b565b506127c66040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613bd1565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce59190614eb9565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a612d2d610759565b6040518263ffffffff1660e01b8152600401612d4b91815260200190565b600060405180830381865afa158015612d68573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612dae9190810190614c69565b90508373ffffffffffffffffffffffffffffffffffffffff16639115900c82600081518110612ddf57612ddf614d15565b60200260200101518488600081518110612dfb57612dfb614d15565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f729190614eb9565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f319190614cf8565b9050612f7f86866000818110612f4957612f49614d15565b9050602002016020810190612f5e9190614614565b8286600081518110612f7257612f72614d15565b6020026020010151613c72565b8073ffffffffffffffffffffffffffffffffffffffff1663e8eda9df87876000818110612fae57612fae614d15565b9050602002016020810190612fc39190614614565b86600081518110612fd657612fd6614d15565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9092166004830152602482015230604482015260006064820152608401600060405180830381600087803b15801561305957600080fd5b505af115801561306d573d6000803e3d6000fd5b50505050505050505050565b60008061308560355490565b905064e8d4a510008110156130cd576130a06103e884615171565b915064e8d4a51000819003808310156130b65750815b80830392506130c761dead82613c9d565b506130f6565b83156116575783816130df8286614f0a565b6130e99190615171565b6130f39190615188565b91505b6131003083613c9d565b5092915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a61314e610759565b6040518263ffffffff1660e01b815260040161316c91815260200190565b600060405180830381865afa158015613189573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526131cf9190810190614c69565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561323e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132629190614cf8565b73ffffffffffffffffffffffffffffffffffffffff1663d15e00538360008151811061329057613290614d15565b60200260200101516040518263ffffffff1660e01b81526004016132d0919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156132ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133119190614eb9565b905061331f60995482613d92565b6099919091559392505050565b6000808313156105565782600061334a64e8d4a51000612710615171565b61335a6080860160608701615345565b6bffffffffffffffffffffffff166133786040870160208801615345565b613392906bffffffffffffffffffffffff16612710614f0a565b61339c9190614f0a565b6133a69084615171565b6133b09190614c46565b90506000826133be60355490565b6133c89190615171565b90506000826133dd6040880160208901615345565b6133f5906bffffffffffffffffffffffff1684615171565b6133ff9190615188565b90506134176134116020880188614614565b82613c9d565b60008361342a6080890160608a01615345565b613442906bffffffffffffffffffffffff1685615171565b61344c9190615188565b90506134616134116060890160408a01614614565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b82156106405760006134b760355490565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152869173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613525573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135499190614eb9565b6135539190615171565b61355d9190615188565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ee9190614cf8565b73ffffffffffffffffffffffffffffffffffffffff166369328dec8787600081811061361c5761361c614d15565b90506020020160208101906136319190614614565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490523060448201526064016020604051808303816000875af11580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136cd9190614eb9565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216613779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260409020548181101561382f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610870565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261027a9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613e05565b60608467ffffffffffffffff81111561398b5761398b614764565b6040519080825280602002602001820160405280156139b4578160200160208202803683370190505b50905060005b85811015613aa6578686828181106139d4576139d4614d15565b90506020020160208101906139e99190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613a55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a799190614eb9565b828281518110613a8b57613a8b614d15565b6020908102919091010152613a9f81614ed2565b90506139ba565b50613ab486868686866134a6565b60005b85811015613bc757818181518110613ad157613ad1614d15565b6020026020010151878783818110613aeb57613aeb614d15565b9050602002016020810190613b009190614614565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b909190614eb9565b613b9a9190614f0a565b828281518110613bac57613bac614d15565b6020908102919091010152613bc081614ed2565b9050613ab7565b5095945050505050565b600054610100900460ff16613c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610870565b6127c68282613f11565b613c7c8383613fc1565b61027a73ffffffffffffffffffffffffffffffffffffffff8416838361407f565b73ffffffffffffffffffffffffffffffffffffffff8216613d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610870565b8060356000828254613d2c9190614c46565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115613dc8578264e8d4a51000613dad8285614f0a565b613db79190615171565b613dc19190615188565b9050610556565b81831115610556578264e8d4a51000613de18483614f0a565b613deb9190615171565b613df59190615188565b613dfe90615373565b9392505050565b6000613e67826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166142019092919063ffffffff16565b80519091501561027a5780806020019051810190613e8591906151bb565b61027a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610870565b600054610100900460ff16613fa8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610870565b6036613fb4838261522b565b50603761027a828261522b565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405b9190614eb9565b11156127c6576127c673ffffffffffffffffffffffffffffffffffffffff83168260005b80158061411f57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156140f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061411d9190614eb9565b155b6141ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610870565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261027a9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016138ee565b60606142108484600085614218565b949350505050565b6060824710156142aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610870565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516142d391906153ab565b60006040518083038185875af1925050503d8060008114614310576040519150601f19603f3d011682016040523d82523d6000602084013e614315565b606091505b509150915061074e87838387606083156143b75782516000036143b05773ffffffffffffffffffffffffffffffffffffffff85163b6143b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610870565b5081614210565b61421083838151156143cc5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108709190614442565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614439578181015183820152602001614421565b50506000910152565b602081526000825180602084015261446181604085016020870161441e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff811681146144b557600080fd5b50565b600080604083850312156144cb57600080fd5b82356144d681614493565b946020939093013593505050565b60008083601f8401126144f657600080fd5b50813567ffffffffffffffff81111561450e57600080fd5b6020830191508360208260051b850101111561452957600080fd5b9250929050565b60008060006040848603121561454557600080fd5b83359250602084013567ffffffffffffffff81111561456357600080fd5b61456f868287016144e4565b9497909650939450505050565b60008060006060848603121561459157600080fd5b833561459c81614493565b925060208401356145ac81614493565b929592945050506040919091013590565b6000806000604084860312156145d257600080fd5b833567ffffffffffffffff8111156145e957600080fd5b6145f5868287016144e4565b909450925050602084013561460981614493565b809150509250925092565b60006020828403121561462657600080fd5b8135613dfe81614493565b600081518084526020808501945080840160005b8381101561467757815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614645565b509495945050505050565b602081526000613dfe6020830184614631565b600080600080600080608087890312156146ae57600080fd5b8635955060208701356146c081614493565b9450604087013567ffffffffffffffff808211156146dd57600080fd5b6146e98a838b016144e4565b9096509450606089013591508082111561470257600080fd5b5061470f89828a016144e4565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b8381101561467757815187529582019590820190600101614735565b602081526000613dfe6020830184614721565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff811182821017156147b7576147b7614764565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561480457614804614764565b604052919050565b6000806040838503121561481f57600080fd5b823567ffffffffffffffff8082111561483757600080fd5b818501915085601f83011261484b57600080fd5b813560208282111561485f5761485f614764565b61488f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f850116016147bd565b925081835287818386010111156148a557600080fd5b8181850182850137600091830181019190915290969401359450505050565b6040815260006148d76040830185614631565b82810360208401526148e98185614721565b95945050505050565b600080600080600080600080600060a08a8c03121561491057600080fd5b893567ffffffffffffffff8082111561492857600080fd5b6149348d838e016144e4565b909b50995060208c013591508082111561494d57600080fd5b6149598d838e016144e4565b909950975060408c0135915061496e82614493565b90955060608b0135908082111561498457600080fd5b6149908d838e016144e4565b909650945060808c01359150808211156149a957600080fd5b506149b68c828d016144e4565b915080935050809150509295985092959850929598565b6000602082840312156149df57600080fd5b813567ffffffffffffffff8111156149f657600080fd5b82016101a08185031215613dfe57600080fd5b60208152815160208201526000602083015160a06040840152614a2f60c0840182614721565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff821115614a7357614a73614764565b5060051b60200190565b600082601f830112614a8e57600080fd5b81356020614aa3614a9e83614a59565b6147bd565b82815260059290921b84018101918181019086841115614ac257600080fd5b8286015b84811015614add5780358352918301918301614ac6565b509695505050505050565b600080600060408486031215614afd57600080fd5b833567ffffffffffffffff80821115614b1557600080fd5b614b2187838801614a7d565b94506020860135915080821115614b3757600080fd5b5061456f868287016144e4565b60008060408385031215614b5757600080fd5b823567ffffffffffffffff811115614b6e57600080fd5b614b7a85828601614a7d565b9250506020830135614b8b81614493565b809150509250929050565b60008060408385031215614ba957600080fd5b8235614bb481614493565b91506020830135614b8b81614493565b600181811c90821680614bd857607f821691505b602082108103614c11577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561055657610556614c17565b8051614c6481614493565b919050565b60006020808385031215614c7c57600080fd5b825167ffffffffffffffff811115614c9357600080fd5b8301601f81018513614ca457600080fd5b8051614cb2614a9e82614a59565b81815260059190911b82018301908381019087831115614cd157600080fd5b928401925b8284101561074e578351614ce981614493565b82529284019290840190614cd6565b600060208284031215614d0a57600080fd5b8151613dfe81614493565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215614d5657600080fd5b6040516020810181811067ffffffffffffffff82111715614d7957614d79614764565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114614c6457600080fd5b805164ffffffffff81168114614c6457600080fd5b805160ff81168114614c6457600080fd5b60006101808284031215614ddf57600080fd5b614de7614793565b614df18484614d44565b8152614dff60208401614d86565b6020820152614e1060408401614d86565b6040820152614e2160608401614d86565b6060820152614e3260808401614d86565b6080820152614e4360a08401614d86565b60a0820152614e5460c08401614da6565b60c0820152614e6560e08401614c59565b60e0820152610100614e78818501614c59565b90820152610120614e8a848201614c59565b90820152610140614e9c848201614c59565b90820152610160614eae848201614dbb565b908201529392505050565b600060208284031215614ecb57600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f0357614f03614c17565b5060010190565b8181038181111561055657610556614c17565b848152836020820152608060408201526000614f3c6080830185614721565b828103606084015261074e8185614721565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f8357600080fd5b83018035915067ffffffffffffffff821115614f9e57600080fd5b6020019150600581901b360382131561452957600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615614fee57614fee614c17565b818105831482151761055657610556614c17565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261504057615040615002565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561509457615094614c17565b500590565b8082018281126000831280158216821582161715611f7557611f75614c17565b6060808252810185905260008660808301825b888110156151095782356150df81614493565b73ffffffffffffffffffffffffffffffffffffffff168252602092830192909101906001016150cc565b50838103602085015261511c8188614721565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561515757600080fd5b8360051b8086602084013701602001979650505050505050565b808202811582820484141761055657610556614c17565b60008261519757615197615002565b500490565b8381528260208201526060604082015260006148e96060830184614721565b6000602082840312156151cd57600080fd5b81518015158114613dfe57600080fd5b601f82111561027a57600081815260208120601f850160051c810160208610156152045750805b601f850160051c820191505b8181101561522357828155600101615210565b505050505050565b815167ffffffffffffffff81111561524557615245614764565b615259816152538454614bc4565b846151dd565b602080601f8311600181146152ac57600084156152765750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555615223565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156152f9578886015182559484019460019091019084016152da565b508582101561533557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561535757600080fd5b81356bffffffffffffffffffffffff81168114613dfe57600080fd5b60007f800000000000000000000000000000000000000000000000000000000000000082036153a4576153a4614c17565b5060000390565b600082516153bd81846020870161441e565b919091019291505056fea2646970667358221220032fdd601c926e010586111d152bd6eec9e5b0a35eead5c16e3faf952db0239964736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000b53c1a33016b2dc2ff3653530bff1848a515c8c5", + "nonce": "0x27", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xaabedaf83b85212aba4aa2b364585b61f81aeb9e860b130aec4e4aebb3cfb3f4", + "transactionType": "CREATE", + "contractName": "CompoundV2Strategy", + "contractAddress": "0x8fE41e9B43bB45d0eFBc86C32Aa4705935Bf8b13", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x33E52c206d584550193E642C8982f2Fff6339994", + "0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x65262a", + "value": "0x0", + "data": "0x610160604052670de0b6b3a764000060e0523480156200001e57600080fd5b5060405162005f0b38038062005f0b833981016040819052620000419162000222565b83836000816001600160a01b0381166200006e5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660805283166200009c5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508216620000ce5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038116620000f65760405163bb0e4c3560e01b815260040160405180910390fd5b806001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015a91906200028a565b620001785760405163c52a9bd360e01b815260040160405180910390fd5b6001600160a01b0380831661010052811661012081905260408051634e8dad0560e11b81529051639d1b5a0a916004808201926020929091908290030181865afa158015620001cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f19190620002b5565b6001600160a01b03166101405250620002d592505050565b6001600160a01b03811681146200021f57600080fd5b50565b600080600080608085870312156200023957600080fd5b8451620002468162000209565b6020860151909450620002598162000209565b60408601519093506200026c8162000209565b60608601519092506200027f8162000209565b939692955090935050565b6000602082840312156200029d57600080fd5b81518015158114620002ae57600080fd5b9392505050565b600060208284031215620002c857600080fd5b8151620002ae8162000209565b60805160a05160c05160e051610100516101205161014051615b6b620003a06000396000818161025601528181612ea301528181613365015281816133d0015261407f015260008181610372015281816109c60152613fe80152600081816103030152818161338701526134400152600081816102dc01528181611f22015261411b015260008181610d3a01528181610d6801526129d0015260008181610c2501528181612a6e0152612fee01526000818161214c0152818161222801526128380152615b6b6000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c806371a973051161012a578063a9059cbb116100bd578063c8d31e741161008c578063e173ad2511610071578063e173ad2514610528578063ebbd6bc714610530578063fc195d8c1461054357600080fd5b8063c8d31e74146104cf578063dd62ed3e146104e257600080fd5b8063a9059cbb14610486578063beef8a7114610499578063c1a0ff4c146104b9578063c1a7d80e146104c157600080fd5b80639b6aaa47116100f95780639b6aaa4714610442578063a3ea6c9714610458578063a457c2d71461046b578063a63e8c4b1461047e57600080fd5b806371a97305146103fd5780637817bf4a1461041257806384ba89e31461043257806395d89b411461043a57600080fd5b80632ce5183f116101a25780635fe3b567116101715780635fe3b5671461036d57806369e527da146103945780636c60d9e7146103b457806370a08231146103c757600080fd5b80632ce5183f14610325578063313ce5671461033857806339509351146103475780634f3bddeb1461035a57600080fd5b806318160ddd116101de57806318160ddd146102b257806323b872dd146102c45780632703984c146102d75780632b3297f9146102fe57600080fd5b806306fdde0314610210578063095ea7b31461022e578063109d0af8146102515780631480fce31461029d575b600080fd5b610218610556565b6040516102259190614aab565b60405180910390f35b61024161023c366004614b21565b6105e8565b6040519015158152602001610225565b6102787f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610225565b6102b06102ab366004614b99565b505050565b005b6035545b604051908152602001610225565b6102416102d2366004614be5565b610602565b6102b67f000000000000000000000000000000000000000000000000000000000000000081565b6102787f000000000000000000000000000000000000000000000000000000000000000081565b6102b0610333366004614b21565b610626565b60405160128152602001610225565b610241610355366004614b21565b610663565b6102b0610368366004614cb4565b6106af565b6102787f000000000000000000000000000000000000000000000000000000000000000081565b6098546102789073ffffffffffffffffffffffffffffffffffffffff1681565b6102b06103c2366004614d81565b610be3565b6102b66103d5366004614dd8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b610405610c21565b6040516102259190614e46565b610425610420366004614e59565b610ced565b6040516102259190614f15565b6102b6610d35565b610218610d8a565b61044a610d99565b604051610225929190614f28565b6102b6610466366004614f56565b610db7565b610241610479366004614b21565b611193565b610425611264565b610241610494366004614b21565b6112af565b6104ac6104a7366004615031565b6112bd565b604051610225919061506d565b610425611ece565b6102b06102ab366004615141565b6102b66104dd36600461519d565b61206c565b6102b66104f03660046151ef565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6102186120af565b6102b061053e366004614b21565b6120be565b610425610551366004614e59565b6120f5565b6060603680546105659061521d565b80601f01602080910402602001604051908101604052809291908181526020018280546105919061521d565b80156105de5780601f106105b3576101008083540402835291602001916105de565b820191906000526020600020905b8154815290600101906020018083116105c157829003601f168201915b5050505050905090565b6000336105f68185856122f2565b60019150505b92915050565b6000336106108582856124a5565b61061b858585612576565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361065282826127ec565b61065d308585612576565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105f690829086906106aa90879061529f565b6122f2565b600054610100900460ff16158080156106cf5750600054600160ff909116105b806106e95750303b1580156106e9575060005460ff166001145b61077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107d857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107e284846128fc565b73ffffffffffffffffffffffffffffffffffffffff821661082f576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610839610c21565b90508051600114158061090057508273ffffffffffffffffffffffffffffffffffffffff16636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b691906152b2565b73ffffffffffffffffffffffffffffffffffffffff16816000815181106108df576108df6152cf565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156109425761090d610d35565b6040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260040161077191815260200190565b604080516001808252818301909252600091602080830190803683370190505090508381600081518110610978576109786152cf565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517fc29982380000000000000000000000000000000000000000000000000000000081526000917f0000000000000000000000000000000000000000000000000000000000000000169063c2998238906109fb908590600401614e46565b6000604051808303816000875af1158015610a1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a6091908101906152fe565b9050600081600081518110610a7757610a776152cf565b60200260200101511115610ab7576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908117909155604080517fbd6d894d000000000000000000000000000000000000000000000000000000008152905163bd6d894d9160048082019260209290919082900301816000875af1158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b749190615384565b60995550508115905061065d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610c0f82826127ec565b610c1a858585612b82565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610c67610d35565b6040518263ffffffff1660e01b8152600401610c8591815260200190565b600060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ce8919081019061539d565b905090565b6060610d197fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336127ec565b610d2887878888888888612de8565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610d65575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b6060603780546105659061521d565b6060803215610da757600080fd5b610daf612e57565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610de582826127ec565b60008b67ffffffffffffffff811115610e0057610e00614c26565b604051908082528060200260200182016040528015610e29578160200160208202803683370190505b50905060005b8c811015610f1b578d8d82818110610e4957610e496152cf565b9050602002016020810190610e5e9190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee9190615384565b828281518110610f0057610f006152cf565b6020908102919091010152610f148161542c565b9050610e2f565b50610f558d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610f7057610f70614c26565b604051908082528060200260200182016040528015610f99578160200160208202803683370190505b50905060005b8d81101561108b578e8e82818110610fb957610fb96152cf565b9050602002016020810190610fce9190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561103a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105e9190615384565b828281518110611070576110706152cf565b60209081029190910101526110848161542c565b9050610f9f565b5060006110cc8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612f3e915050565b90506110db8f8f848d8d6131af565b60006111288e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612f3e565b9050600061113683836131fa565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc816111648585615464565b87876040516111769493929190615477565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610771565b61061b82868684036122f2565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061129f5761129f6152cf565b6020908102919091010152919050565b6000336105f6818585612576565b6112ef6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6113197fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336127ec565b60008061132960608501856154a8565b905067ffffffffffffffff81111561134357611343614c26565b60405190808252806020026020018201604052801561136c578160200160208202803683370190505b50905060005b61137f60608601866154a8565b90508110156114975761139560608601866154a8565b828181106113a5576113a56152cf565b90506020020160208101906113ba9190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144a9190615384565b82828151811061145c5761145c6152cf565b602002602001018181525050600082828151811061147c5761147c6152cf565b6020026020010151111561148f57600192505b600101611372565b506114a9816102ab60408701876154a8565b6114be60a08501356102ab60408701876154a8565b6114c6614a69565b6114d4856101000135613281565b6040850152600061150a6114eb60608801886154a8565b6114f860208a018a6154a8565b61150560408c018c6154a8565b613331565b905064e8d4a510008560400151826115229190615510565b61152c919061558b565b61153690826155f3565b8560400181815161154791906155f3565b90525050604084015161155e9061012087016136a0565b506115b761156f60808701876154a8565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506115b292505050610100880160e08901614dd8565b612f3e565b81526000808060a088013586156117085760006115db6101008b0160e08c01614dd8565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61160360608d018d6154a8565b8a8e806080019061161491906154a8565b6040518663ffffffff1660e01b815260040161163495949392919061565e565b602060405180830381865afa158015611651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116759190615384565b905064e8d4a5100061168660355490565b101561169f57611698816103e86156d8565b93506116f2565b8551156116c05785516035546116b69083906156d8565b61169891906156ef565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561170257839450611706565b8194505b505b600061171760608b018b6154a8565b905067ffffffffffffffff81111561173157611731614c26565b60405190808252806020026020018201604052801561175a578160200160208202803683370190505b509050600082851115611ba557851561181b5760005b61177d60608d018d6154a8565b90508110156118155785878a838151811061179a5761179a6152cf565b602002602001015102816117b0576117b061555c565b048382815181106117c3576117c36152cf565b6020026020010181815250508281815181106117e1576117e16152cf565b60200260200101518982815181106117fb576117fb6152cf565b602090810291909101018051919091039052600101611770565b50600190505b6000885167ffffffffffffffff81111561183757611837614c26565b604051908082528060200260200182016040528015611860578160200160208202803683370190505b509050600061186f8d806154a8565b90501115611a45576118d861188760608e018e6154a8565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061065d91906154a8565b60005b6118e860608e018e6154a8565b9050811015611a3f57898181518110611903576119036152cf565b602002602001015182828151811061191d5761191d6152cf565b60200260200101818152505083818151811061193b5761193b6152cf565b60200260200101518d806060019061195391906154a8565b83818110611963576119636152cf565b90506020020160208101906119789190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156119e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a089190615384565b611a129190615464565b8a8281518110611a2457611a246152cf565b6020908102919091010152611a388161542c565b90506118db565b50611aa7565b60005b611a5560608e018e6154a8565b9050811015611aa557898181518110611a7057611a706152cf565b6020026020010151828281518110611a8a57611a8a6152cf565b6020908102919091010152611a9e8161542c565b9050611a48565b505b611acd611ab760608e018e6154a8565b8b8f8060400190611ac891906154a8565b6131af565b611b30611add60808e018e6154a8565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906115b29190614dd8565b602089018190528851611b42916131fa565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611b7991615464565b838c604051611b8b9493929190615477565b60405180910390a1611b9d878661529f565b945050611dfc565b84831115611d8d578515611bbc5785830392508593505b611be2611bcc60608d018d6154a8565b858e8060400190611bdd91906154a8565b61381a565b611bec30846139af565b506001611c42611bff60808d018d6154a8565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506115b2925050506101008e0160e08f01614dd8565b602088015260005b611c5760608d018d6154a8565b9050811015611d4757611c6d60608d018d6154a8565b82818110611c7d57611c7d6152cf565b9050602002016020810190611c929190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d229190615384565b838281518110611d3457611d346152cf565b6020908102919091010152600101611c4a565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611d80918691908690615703565b60405180910390a1611dfc565b8515611df45782935060005b611da660608d018d6154a8565b9050811015611dee57888181518110611dc157611dc16152cf565b6020026020010151838281518110611ddb57611ddb6152cf565b6020908102919091010152600101611d99565b50600190505b865160208801525b8015611ea45760005b611e1260608d018d6154a8565b9050811015611ea257611e9a611e2e60e08e0160c08f01614dd8565b848381518110611e4057611e406152cf565b60200260200101518e8060600190611e5891906154a8565b85818110611e6857611e686152cf565b9050602002016020810190611e7d9190614dd8565b73ffffffffffffffffffffffffffffffffffffffff169190613b75565b600101611e05565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506098546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529192507f00000000000000000000000000000000000000000000000000000000000000009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa59190615384565b609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120369190615384565b61204091906156d8565b61204a91906156ef565b8160008151811061205d5761205d6152cf565b60200260200101818152505090565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361209a82826127ec565b6120a48585612f3e565b92505b505092915050565b6060609680546105659061521d565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336120ea82826127ec565b61065d843085612576565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156121a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cc9190615722565b1580156122aa57506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a89190615722565b155b156122e3576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610771565b610d2887308888888888612de8565b73ffffffffffffffffffffffffffffffffffffffff8316612394576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff8216612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461065d5781811015612569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610771565b61065d84848484036122f2565b73ffffffffffffffffffffffffffffffffffffffff8316612619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff82166126bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127df9086815260200190565b60405180910390a361065d565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa15801561287f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a39190615722565b6128f8576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610771565b5050565b600054610100900460ff16612993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610771565b81516000036129ce576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000612a345780612a2a576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055612a6c565b8015612a6c576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e612ab0610d35565b6040518263ffffffff1660e01b8152600401612ace91815260200190565b60006040518083038186803b158015612ae657600080fd5b505afa158015612afa573d6000803e3d6000fd5b505050508160969081612b0d919061578a565b506128f86040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613c49565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c159190615384565b9050801561065d576098546040517fdb006a750000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff169063db006a75906024016020604051808303816000875af1158015612c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb39190615384565b1115612ceb576040517f8107ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612cf5610c21565b9050610c1a8382600081518110612d0e57612d0e6152cf565b60209081029190910101516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da89190615384565b83600081518110612dbb57612dbb6152cf565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16613b759092919063ffffffff16565b60606000612df986868b8787613cea565b9050612e05888a6139af565b60005b85811015612e4857612e4088838381518110612e2657612e266152cf565b6020026020010151898985818110611e6857611e686152cf565b600101612e08565b5090505b979650505050505050565b60408051600180825281830190925260609182916000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000082600081518110612ed557612ed56152cf565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f17613f4b565b81600081518110612f2a57612f2a6152cf565b602090810291909101015290939092509050565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fd59190615384565b905080156131a8576000612fe882614107565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a613030610d35565b6040518263ffffffff1660e01b815260040161304e91815260200190565b600060405180830381865afa15801561306b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526130b1919081019061539d565b90508473ffffffffffffffffffffffffffffffffffffffff16639115900c826000815181106130e2576130e26152cf565b602002602001015184896000815181106130fe576130fe6152cf565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa15801561317f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a39190615384565b935050505b5092915050565b610c1a858560008181106131c5576131c56152cf565b90506020020160208101906131da9190614dd8565b846000815181106131ed576131ed6152cf565b60200260200101516141e2565b60008061320660355490565b905064e8d4a5100081101561324e576132216103e8846156d8565b915064e8d4a51000819003808310156132375750815b808303925061324861dead826142db565b50613277565b83156116c05783816132608286615464565b61326a91906156d8565b61327491906156ef565b91505b6131a830836142db565b600080609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd6d894d6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156132f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133179190615384565b9050613325609954826143d0565b60999190915592915050565b60008315610d2b576000613343613f4b565b90508015613695576133ac73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083613b75565b604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110613402576134026152cf565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166367c15262838a8a8e8e306040518763ffffffff1660e01b81526004016134a1969594939291906158ed565b6000604051808303816000875af11580156134c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261350691908101906152fe565b600081518110613518576135186152cf565b602002602001015190506000811115613692576098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561359a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135be9190615384565b90506135f18b8b60008181106135d6576135d66152cf565b90506020020160208101906135eb9190614dd8565b836141e2565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261368e91839173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015613665573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136899190615384565b6143d0565b9450505b50505b509695505050505050565b6000808313156105fc578260006136be64e8d4a510006127106156d8565b6136ce6080860160608701615a84565b6bffffffffffffffffffffffff166136ec6040870160208801615a84565b613706906bffffffffffffffffffffffff16612710615464565b6137109190615464565b61371a90846156d8565b613724919061529f565b905060008261373260355490565b61373c91906156d8565b90506000826137516040880160208901615a84565b613769906bffffffffffffffffffffffff16846156d8565b61377391906156ef565b905061378b6137856020880188614dd8565b826142db565b60008361379e6080890160608a01615a84565b6137b6906bffffffffffffffffffffffff16856156d8565b6137c091906156ef565b90506137d56137856060890160408a01614dd8565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b8215610c1a57600061382b60355490565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152869173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138bd9190615384565b6138c791906156d8565b6138d191906156ef565b905080156139a7576098546040517fdb006a750000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff169063db006a75906024016020604051808303816000875af115801561394b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061396f9190615384565b11156139a7576040517f8107ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216613a52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613b08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610771565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526102ab9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614443565b600054610100900460ff16613ce0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610771565b6128f8828261454f565b60608467ffffffffffffffff811115613d0557613d05614c26565b604051908082528060200260200182016040528015613d2e578160200160208202803683370190505b50905060005b85811015613e2057868682818110613d4e57613d4e6152cf565b9050602002016020810190613d639190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df39190615384565b828281518110613e0557613e056152cf565b6020908102919091010152613e198161542c565b9050613d34565b50613e2e868686868661381a565b60005b85811015613f4157818181518110613e4b57613e4b6152cf565b6020026020010151878783818110613e6557613e656152cf565b9050602002016020810190613e7a9190614dd8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613ee6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f0a9190615384565b613f149190615464565b828281518110613f2657613f266152cf565b6020908102919091010152613f3a8161542c565b9050613e31565b5095945050505050565b604080516001808252818301909252600091829190602080830190803683375050609854825192935073ffffffffffffffffffffffffffffffffffffffff1691839150600090613f9d57613f9d6152cf565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517f1c3db2e00000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090911690631c3db2e0906140219030908590600401615ab2565b600060405180830381600087803b15801561403b57600080fd5b505af115801561404f573d6000803e3d6000fd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1692506370a082319150602401602060405180830381865afa1580156140dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141019190615384565b91505090565b60008160000361411957506000919050565b7f000000000000000000000000000000000000000000000000000000000000000082609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd6d894d6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156141aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ce9190615384565b6141d891906156d8565b6105fc91906156ef565b80156128f85760985461420d90839073ffffffffffffffffffffffffffffffffffffffff16836145ff565b6098546040517fa0712d680000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff169063a0712d68906024016020604051808303816000875af115801561427f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a39190615384565b11156128f8576040517fc6e7c7a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216614358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610771565b806035600082825461436a919061529f565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115614406578264e8d4a510006143eb8285615464565b6143f591906156d8565b6143ff91906156ef565b90506105fc565b818311156105fc578264e8d4a5100061441f8483615464565b61442991906156d8565b61443391906156ef565b61443c90615ae1565b9392505050565b60006144a5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661462a9092919063ffffffff16565b8051909150156102ab57808060200190518101906144c39190615722565b6102ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610771565b600054610100900460ff166145e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610771565b60366145f2838261578a565b5060376102ab828261578a565b6146098383614641565b6102ab73ffffffffffffffffffffffffffffffffffffffff841683836146ff565b60606146398484600085614881565b949350505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156146b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146db9190615384565b11156128f8576128f873ffffffffffffffffffffffffffffffffffffffff83168260005b80158061479f57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061479d9190615384565b155b61482b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610771565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526102ab9084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613bc7565b606082471015614913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610771565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161493c9190615b19565b60006040518083038185875af1925050503d8060008114614979576040519150601f19603f3d011682016040523d82523d6000602084013e61497e565b606091505b5091509150612e4c8783838760608315614a20578251600003614a195773ffffffffffffffffffffffffffffffffffffffff85163b614a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610771565b5081614639565b6146398383815115614a355781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107719190614aab565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614aa2578181015183820152602001614a8a565b50506000910152565b6020815260008251806020840152614aca816040850160208701614a87565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114614b1e57600080fd5b50565b60008060408385031215614b3457600080fd5b8235614b3f81614afc565b946020939093013593505050565b60008083601f840112614b5f57600080fd5b50813567ffffffffffffffff811115614b7757600080fd5b6020830191508360208260051b8501011115614b9257600080fd5b9250929050565b600080600060408486031215614bae57600080fd5b83359250602084013567ffffffffffffffff811115614bcc57600080fd5b614bd886828701614b4d565b9497909650939450505050565b600080600060608486031215614bfa57600080fd5b8335614c0581614afc565b92506020840135614c1581614afc565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614c9c57614c9c614c26565b604052919050565b8035614caf81614afc565b919050565b600080600060608486031215614cc957600080fd5b833567ffffffffffffffff80821115614ce157600080fd5b818601915086601f830112614cf557600080fd5b8135602082821115614d0957614d09614c26565b614d39817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614c55565b92508183528881838601011115614d4f57600080fd5b8181850182850137600081838501015282965080880135955050505050614d7860408501614ca4565b90509250925092565b600080600060408486031215614d9657600080fd5b833567ffffffffffffffff811115614dad57600080fd5b614db986828701614b4d565b9094509250506020840135614dcd81614afc565b809150509250925092565b600060208284031215614dea57600080fd5b813561443c81614afc565b600081518084526020808501945080840160005b83811015614e3b57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614e09565b509495945050505050565b60208152600061443c6020830184614df5565b60008060008060008060808789031215614e7257600080fd5b863595506020870135614e8481614afc565b9450604087013567ffffffffffffffff80821115614ea157600080fd5b614ead8a838b01614b4d565b90965094506060890135915080821115614ec657600080fd5b50614ed389828a01614b4d565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614e3b57815187529582019590820190600101614ef9565b60208152600061443c6020830184614ee5565b604081526000614f3b6040830185614df5565b8281036020840152614f4d8185614ee5565b95945050505050565b600080600080600080600080600060a08a8c031215614f7457600080fd5b893567ffffffffffffffff80821115614f8c57600080fd5b614f988d838e01614b4d565b909b50995060208c0135915080821115614fb157600080fd5b614fbd8d838e01614b4d565b909950975060408c01359150614fd282614afc565b90955060608b01359080821115614fe857600080fd5b614ff48d838e01614b4d565b909650945060808c013591508082111561500d57600080fd5b5061501a8c828d01614b4d565b915080935050809150509295985092959850929598565b60006020828403121561504357600080fd5b813567ffffffffffffffff81111561505a57600080fd5b82016101a0818503121561443c57600080fd5b60208152815160208201526000602083015160a0604084015261509360c0840182614ee5565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff8211156150d7576150d7614c26565b5060051b60200190565b600082601f8301126150f257600080fd5b81356020615107615102836150bd565b614c55565b82815260059290921b8401810191818101908684111561512657600080fd5b8286015b84811015613695578035835291830191830161512a565b60008060006040848603121561515657600080fd5b833567ffffffffffffffff8082111561516e57600080fd5b61517a878388016150e1565b9450602086013591508082111561519057600080fd5b50614bd886828701614b4d565b600080604083850312156151b057600080fd5b823567ffffffffffffffff8111156151c757600080fd5b6151d3858286016150e1565b92505060208301356151e481614afc565b809150509250929050565b6000806040838503121561520257600080fd5b823561520d81614afc565b915060208301356151e481614afc565b600181811c9082168061523157607f821691505b60208210810361526a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105fc576105fc615270565b6000602082840312156152c457600080fd5b815161443c81614afc565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602080838503121561531157600080fd5b825167ffffffffffffffff81111561532857600080fd5b8301601f8101851361533957600080fd5b8051615347615102826150bd565b81815260059190911b8201830190838101908783111561536657600080fd5b928401925b82841015612e4c5783518252928401929084019061536b565b60006020828403121561539657600080fd5b5051919050565b600060208083850312156153b057600080fd5b825167ffffffffffffffff8111156153c757600080fd5b8301601f810185136153d857600080fd5b80516153e6615102826150bd565b81815260059190911b8201830190838101908783111561540557600080fd5b928401925b82841015612e4c57835161541d81614afc565b8252928401929084019061540a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361545d5761545d615270565b5060010190565b818103818111156105fc576105fc615270565b8481528360208201526080604082015260006154966080830185614ee5565b8281036060840152612e4c8185614ee5565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126154dd57600080fd5b83018035915067ffffffffffffffff8211156154f857600080fd5b6020019150600581901b3603821315614b9257600080fd5b808202600082127f80000000000000000000000000000000000000000000000000000000000000008414161561554857615548615270565b81810583148215176105fc576105fc615270565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261559a5761559a61555c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156155ee576155ee615270565b500590565b80820182811260008312801582168215821617156120a7576120a7615270565b8183526000602080850194508260005b85811015614e3b57813561563681614afc565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101615623565b606081526000615672606083018789615613565b82810360208401526156848187614ee5565b905082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156156be57600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176105fc576105fc615270565b6000826156fe576156fe61555c565b500490565b838152826020820152606060408201526000614f4d6060830184614ee5565b60006020828403121561573457600080fd5b8151801515811461443c57600080fd5b601f8211156102ab57600081815260208120601f850160051c8101602086101561576b5750805b601f850160051c820191505b818110156139a757828155600101615777565b815167ffffffffffffffff8111156157a4576157a4614c26565b6157b8816157b2845461521d565b84615744565b602080601f83116001811461580b57600084156157d55750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556139a7565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561585857888601518255948401946001909101908401615839565b508582101561589457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6080815260006159006080830189614df5565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615a47577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18e360301811261597f57600080fd5b8d016060813561598e81614afc565b73ffffffffffffffffffffffffffffffffffffffff908116865282880135906159b682614afc565b1685880152604082810135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10181126159f257600080fd5b90920187810192903567ffffffffffffffff811115615a1057600080fd5b803603841315615a1f57600080fd5b8282880152615a3183880182866158a4565b978901979650505092860192505060010161591e565b50508581036040870152615a5c81898b615613565b945050505050612e4c606083018473ffffffffffffffffffffffffffffffffffffffff169052565b600060208284031215615a9657600080fd5b81356bffffffffffffffffffffffff8116811461443c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006146396040830184614df5565b60007f80000000000000000000000000000000000000000000000000000000000000008203615b1257615b12615270565b5060000390565b60008251615b2b818460208701614a87565b919091019291505056fea2646970667358221220b151108bac0165f38503c420d18d38cf48096db92aba8f1531417ac8a6f6cf8864736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd1300000000000000000000000033e52c206d584550193e642c8982f2fff63399940000000000000000000000003d9819210a31b4961b30ef54be2aed79b9c9cd3b", + "nonce": "0x28", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x5fda4f8c302c36e7f5f82765166b2e8dfb826425240d796ab9005cb8d8abcdcf", + "transactionType": "CREATE", + "contractName": "GearboxV3Strategy", + "contractAddress": "0xb170F18dca153752b2F35304e5ea581373095f4e", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x33E52c206d584550193E642C8982f2Fff6339994" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x67069f", + "value": "0x0", + "data": "0x6101006040523480156200001257600080fd5b5060405162005f1638038062005f168339810160408190526200003591620000f0565b82826000816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b031660e05250620001449050565b6001600160a01b0381168114620000ed57600080fd5b50565b6000806000606084860312156200010657600080fd5b83516200011381620000d7565b60208501519093506200012681620000d7565b60408501519092506200013981620000d7565b809150509250925092565b60805160a05160c05160e051615d60620001b6600039600081816102750152818161344201526134f4015260008181610e2401528181610e520152612ad4015260008181610d0f01528181612b7201526130200152600081816122500152818161232c015261293c0152615d606000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806395d89b411161010f578063c1a0ff4c116100a2578063dd62ed3e11610071578063dd62ed3e14610497578063e173ad25146104dd578063ebbd6bc7146104e5578063fc195d8c146104f857600080fd5b8063c1a0ff4c14610449578063c1a7d80e14610451578063c8d31e7414610464578063d9d7858a1461047757600080fd5b8063a457c2d7116100de578063a457c2d7146103fb578063a63e8c4b1461040e578063a9059cbb14610416578063beef8a711461042957600080fd5b806395d89b41146103aa5780639b6aaa47146103b25780639f2fd759146103c8578063a3ea6c97146103e857600080fd5b8063395093511161018757806371a973051161015657806371a973051461034d578063776c23fb146103625780637817bf4a1461038257806384ba89e3146103a257600080fd5b806339509351146102de5780634f3bddeb146102f15780636c60d9e71461030457806370a082311461031757600080fd5b806323b872dd116101c357806323b872dd1461025d5780632b3297f9146102705780632ce5183f146102bc578063313ce567146102cf57600080fd5b806306fdde03146101f5578063095ea7b3146102135780631480fce31461023657806318160ddd1461024b575b600080fd5b6101fd61050b565b60405161020a9190614b64565b60405180910390f35b610226610221366004614bd7565b61059d565b604051901515815260200161020a565b610249610244366004614c4f565b505050565b005b6035545b60405190815260200161020a565b61022661026b366004614c9b565b6105b7565b6102977f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161020a565b6102496102ca366004614bd7565b6105db565b6040516012815260200161020a565b6102266102ec366004614bd7565b610618565b6102496102ff366004614d6a565b610664565b610249610312366004614e37565b610ccd565b61024f610325366004614e8e565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b610355610d0b565b60405161020a9190614efc565b609a546102979073ffffffffffffffffffffffffffffffffffffffff1681565b610395610390366004614f0f565b610dd7565b60405161020a9190614fcb565b61024f610e1f565b6101fd610e74565b6103ba610e83565b60405161020a929190614fde565b6098546102979073ffffffffffffffffffffffffffffffffffffffff1681565b61024f6103f636600461500c565b610ea1565b610226610409366004614bd7565b61127d565b61039561134e565b610226610424366004614bd7565b611399565b61043c6104373660046150e7565b6113a7565b60405161020a9190615123565b610395611fb8565b61024961045f3660046151f7565b612098565b61024f610472366004615253565b612170565b6099546102979073ffffffffffffffffffffffffffffffffffffffff1681565b61024f6104a53660046152a5565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6101fd6121b3565b6102496104f3366004614bd7565b6121c2565b610395610506366004614f0f565b6121f9565b60606036805461051a906152d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610546906152d3565b80156105935780601f1061056857610100808354040283529160200191610593565b820191906000526020600020905b81548152906001019060200180831161057657829003601f168201915b5050505050905090565b6000336105ab8185856123f6565b60019150505b92915050565b6000336105c58582856125a9565b6105d085858561267a565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361060782826128f0565b61061230858561267a565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105ab908290869061065f908790615355565b6123f6565b600054610100900460ff16158080156106845750600054600160ff909116105b8061069e5750303b15801561069e575060005460ff166001145b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561078d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107978484612a00565b609a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155604080517f72f702f300000000000000000000000000000000000000000000000000000000815290516372f702f3916004808201926020929091908290030181865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190615368565b609960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff1663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109019190615368565b609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556000610950610d0b565b905080516001141580610a395750609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ef9190615368565b73ffffffffffffffffffffffffffffffffffffffff1681600081518110610a1857610a18615385565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a7b57610a46610e1f565b6040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260040161072691815260200190565b609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0c91906153b4565b610b179060026153d7565b610b2290600a615513565b609c55609954604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff909216916318160ddd916004808201926020929091908290030181865afa158015610b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb99190615522565b609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4a9190615522565b609c54610c57919061553b565b610c619190615581565b609b5550801561061257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610cf982826128f0565b610d04858585612c86565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610d51610e1f565b6040518263ffffffff1660e01b8152600401610d6f91815260200190565b600060405180830381865afa158015610d8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610dd29190810190615595565b905090565b6060610e037fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336128f0565b610e1287878888888888612e21565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610e4f575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461051a906152d3565b6060803215610e9157600080fd5b610e99612e90565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610ecf82826128f0565b60008b67ffffffffffffffff811115610eea57610eea614cdc565b604051908082528060200260200182016040528015610f13578160200160208202803683370190505b50905060005b8c811015611005578d8d82818110610f3357610f33615385565b9050602002016020810190610f489190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610fb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd89190615522565b828281518110610fea57610fea615385565b6020908102919091010152610ffe81615624565b9050610f19565b5061103f8d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff81111561105a5761105a614cdc565b604051908082528060200260200182016040528015611083578160200160208202803683370190505b50905060005b8d811015611175578e8e828181106110a3576110a3615385565b90506020020160208101906110b89190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111489190615522565b82828151811061115a5761115a615385565b602090810291909101015261116e81615624565b9050611089565b5060006111b68d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612f70915050565b90506111c58f8f848d8d6131e1565b60006112128e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612f70565b90506000611220838361322c565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc8161124e858561565c565b8787604051611260949392919061566f565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610726565b6105d082868684036123f6565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061138957611389615385565b6020908102919091010152919050565b6000336105ab81858561267a565b6113d96040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6114037fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336128f0565b60008061141360608501856156a0565b905067ffffffffffffffff81111561142d5761142d614cdc565b604051908082528060200260200182016040528015611456578160200160208202803683370190505b50905060005b61146960608601866156a0565b90508110156115815761147f60608601866156a0565b8281811061148f5761148f615385565b90506020020160208101906114a49190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115349190615522565b82828151811061154657611546615385565b602002602001018181525050600082828151811061156657611566615385565b6020026020010151111561157957600192505b60010161145c565b506115938161045f60408701876156a0565b6115a860a085013561024460408701876156a0565b6115b0614b22565b6115be8561010001356132b3565b604085015260006115f46115d560608801886156a0565b6115e260208a018a6156a0565b6115ef60408c018c6156a0565b613409565b905064e8d4a5100085604001518261160c9190615708565b6116169190615754565b61162090826157bc565b8560400181815161163191906157bc565b905250506040840151611648906101208701613754565b506116a161165960808701876156a0565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061169c92505050610100880160e08901614e8e565b612f70565b81526000808060a088013586156117f25760006116c56101008b0160e08c01614e8e565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6116ed60608d018d6156a0565b8a8e80608001906116fe91906156a0565b6040518663ffffffff1660e01b815260040161171e959493929190615827565b602060405180830381865afa15801561173b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175f9190615522565b905064e8d4a5100061177060355490565b101561178957611782816103e861553b565b93506117dc565b8551156117aa5785516035546117a090839061553b565b6117829190615581565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156117ec578394506117f0565b8194505b505b600061180160608b018b6156a0565b905067ffffffffffffffff81111561181b5761181b614cdc565b604051908082528060200260200182016040528015611844578160200160208202803683370190505b509050600082851115611c8f5785156119055760005b61186760608d018d6156a0565b90508110156118ff5785878a838151811061188457611884615385565b6020026020010151028161189a5761189a615552565b048382815181106118ad576118ad615385565b6020026020010181815250508281815181106118cb576118cb615385565b60200260200101518982815181106118e5576118e5615385565b60209081029190910101805191909103905260010161185a565b50600190505b6000885167ffffffffffffffff81111561192157611921614cdc565b60405190808252806020026020018201604052801561194a578160200160208202803683370190505b50905060006119598d806156a0565b90501115611b2f576119c261197160608e018e6156a0565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061061291906156a0565b60005b6119d260608e018e6156a0565b9050811015611b29578981815181106119ed576119ed615385565b6020026020010151828281518110611a0757611a07615385565b602002602001018181525050838181518110611a2557611a25615385565b60200260200101518d8060600190611a3d91906156a0565b83818110611a4d57611a4d615385565b9050602002016020810190611a629190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af29190615522565b611afc919061565c565b8a8281518110611b0e57611b0e615385565b6020908102919091010152611b2281615624565b90506119c5565b50611b91565b60005b611b3f60608e018e6156a0565b9050811015611b8f57898181518110611b5a57611b5a615385565b6020026020010151828281518110611b7457611b74615385565b6020908102919091010152611b8881615624565b9050611b32565b505b611bb7611ba160608e018e6156a0565b8b8f8060400190611bb291906156a0565b6131e1565b611c1a611bc760808e018e6156a0565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e001602081019061169c9190614e8e565b602089018190528851611c2c9161322c565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611c639161565c565b838c604051611c75949392919061566f565b60405180910390a1611c878786615355565b945050611ee6565b84831115611e77578515611ca65785830392508593505b611ccc611cb660608d018d6156a0565b858e8060400190611cc791906156a0565b6138ce565b611cd63084613992565b506001611d2c611ce960808d018d6156a0565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061169c925050506101008e0160e08f01614e8e565b602088015260005b611d4160608d018d6156a0565b9050811015611e3157611d5760608d018d6156a0565b82818110611d6757611d67615385565b9050602002016020810190611d7c9190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0c9190615522565b838281518110611e1e57611e1e615385565b6020908102919091010152600101611d34565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611e6a9186919086906158a1565b60405180910390a1611ee6565b8515611ede5782935060005b611e9060608d018d6156a0565b9050811015611ed857888181518110611eab57611eab615385565b6020026020010151838281518110611ec557611ec5615385565b6020908102919091010152600101611e83565b50600190505b865160208801525b8015611f8e5760005b611efc60608d018d6156a0565b9050811015611f8c57611f84611f1860e08e0160c08f01614e8e565b848381518110611f2a57611f2a615385565b60200260200101518e8060600190611f4291906156a0565b85818110611f5257611f52615385565b9050602002016020810190611f679190614e8e565b73ffffffffffffffffffffffffffffffffffffffff169190613b58565b600101611eef565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b6040805160018082528183019092526060916020808301908036833701905050609a546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529192506120769173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120719190615522565b613c2c565b8160008151811061208957612089615385565b60200260200101818152505090565b609a546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526d04ee2d6d415b85acef81000000009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121389190615522565b1115610244576040517f09a3940800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361219e82826128f0565b6121a88585612f70565b92505b505092915050565b60606096805461051a906152d3565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336121ee82826128f0565b61061284308561267a565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156122ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d091906158c0565b1580156123ae57506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ac91906158c0565b155b156123e7576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610726565b610e1287308888888888612e21565b73ffffffffffffffffffffffffffffffffffffffff8316612498576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff821661253b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610612578181101561266d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610726565b61061284848484036123f6565b73ffffffffffffffffffffffffffffffffffffffff831661271d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff82166127c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128e39086815260200190565b60405180910390a3610612565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a791906158c0565b6129fc576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610726565b5050565b600054610100900460ff16612a97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610726565b8151600003612ad2576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000612b385780612b2e576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055612b70565b8015612b70576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e612bb4610e1f565b6040518263ffffffff1660e01b8152600401612bd291815260200190565b60006040518083038186803b158015612bea57600080fd5b505afa158015612bfe573d6000803e3d6000fd5b505050508160969081612c119190615928565b506129fc6040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613cd1565b609a546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d199190615522565b9050612d2481613d72565b6000612d2e610d0b565b9050610d048382600081518110612d4757612d47615385565b60209081029190910101516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de19190615522565b83600081518110612df457612df4615385565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16613b589092919063ffffffff16565b60606000612e3286868b8787613ea1565b9050612e3e888a613992565b60005b85811015612e8157612e7988838381518110612e5f57612e5f615385565b6020026020010151898985818110611f5257611f52615385565b600101612e41565b5090505b979650505050505050565b60408051600180825281830190925260609182916000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683375050609854845192935073ffffffffffffffffffffffffffffffffffffffff1691849150600090612f0757612f07615385565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f49614102565b81600081518110612f5c57612f5c615385565b602090810291909101015290939092509050565b609a546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612fe3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130079190615522565b905080156131da57600061301a82613c2c565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a613062610e1f565b6040518263ffffffff1660e01b815260040161308091815260200190565b600060405180830381865afa15801561309d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526130e39190810190615595565b90508473ffffffffffffffffffffffffffffffffffffffff16639115900c8260008151811061311457613114615385565b6020026020010151848960008151811061313057613130615385565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa1580156131b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d59190615522565b935050505b5092915050565b610d04858560008181106131f7576131f7615385565b905060200201602081019061320c9190614e8e565b8460008151811061321f5761321f615385565b6020026020010151614217565b60008061323860355490565b905064e8d4a51000811015613280576132536103e88461553b565b915064e8d4a51000819003808310156132695750815b808303925061327a61dead82614394565b506132a9565b83156117aa578381613292828661565c565b61329c919061553b565b6132a69190615581565b91505b6131da3083614394565b600080609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133479190615522565b609960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d89190615522565b609c546133e5919061553b565b6133ef9190615581565b90506133fd609b5482614489565b609b9190915592915050565b60008315610e1557600061341b614102565b90508015613749576098546134679073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000083613b58565b604080516001808252818301909252600091602080830190803683375050609854825192935073ffffffffffffffffffffffffffffffffffffffff16918391506000906134b6576134b6615385565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166367c15262838a8a8e8e306040518763ffffffff1660e01b815260040161355596959493929190615a8b565b6000604051808303816000875af1158015613574573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526135ba9190810190615c22565b6000815181106135cc576135cc615385565b60200260200101519050600081111561374657609a546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561364e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136729190615522565b90506136a58b8b600081811061368a5761368a615385565b905060200201602081019061369f9190614e8e565b83614217565b609a546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261374291839173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015613719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373d9190615522565b614489565b9450505b50505b509695505050505050565b6000808313156105b15782600061377264e8d4a5100061271061553b565b6137826080860160608701615ca8565b6bffffffffffffffffffffffff166137a06040870160208801615ca8565b6137ba906bffffffffffffffffffffffff1661271061565c565b6137c4919061565c565b6137ce908461553b565b6137d89190615355565b90506000826137e660355490565b6137f0919061553b565b90506000826138056040880160208901615ca8565b61381d906bffffffffffffffffffffffff168461553b565b6138279190615581565b905061383f6138396020880188614e8e565b82614394565b6000836138526080890160608a01615ca8565b61386a906bffffffffffffffffffffffff168561553b565b6138749190615581565b90506138896138396060890160408a01614e8e565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b60006138d960355490565b609a546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152869173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061396b9190615522565b613975919061553b565b61397f9190615581565b905061398a81613d72565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216613a35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613aeb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610726565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526102449084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526144fc565b600081600003613c3e57506000919050565b6099546040517f4cdad5060000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff90911690634cdad50690602401602060405180830381865afa158015613cad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b19190615522565b600054610100900460ff16613d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610726565b6129fc8282614608565b8015613e9e57609a546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90602401600060405180830381600087803b158015613de457600080fd5b505af1158015613df8573d6000803e3d6000fd5b50506099546040517fba087652000000000000000000000000000000000000000000000000000000008152600481018590523060248201819052604482015273ffffffffffffffffffffffffffffffffffffffff909116925063ba08765291506064016020604051808303816000875af1158015613e7a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fc9190615522565b50565b60608467ffffffffffffffff811115613ebc57613ebc614cdc565b604051908082528060200260200182016040528015613ee5578160200160208202803683370190505b50905060005b85811015613fd757868682818110613f0557613f05615385565b9050602002016020810190613f1a9190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613faa9190615522565b828281518110613fbc57613fbc615385565b6020908102919091010152613fd081615624565b9050613eeb565b50613fe586868686866138ce565b60005b858110156140f85781818151811061400257614002615385565b602002602001015187878381811061401c5761401c615385565b90506020020160208101906140319190614e8e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561409d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140c19190615522565b6140cb919061565c565b8282815181106140dd576140dd615385565b60209081029190910101526140f181615624565b9050613fe8565b5095945050505050565b609a54604080517f4e71d92d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691634e71d92d916004808301928692919082900301818387803b15801561416d57600080fd5b505af1158015614181573d6000803e3d6000fd5b50506098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff90911692506370a082319150602401602060405180830381865afa1580156141f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd29190615522565b80156129fc5760995461424290839073ffffffffffffffffffffffffffffffffffffffff16836146b8565b6099546040517f6e553f650000000000000000000000000000000000000000000000000000000081526004810183905230602482015260009173ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af11580156142ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142de9190615522565b609954609a5491925061430b9173ffffffffffffffffffffffffffffffffffffffff9182169116836146b8565b609a546040517fb6b55f250000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff9091169063b6b55f2590602401600060405180830381600087803b15801561437757600080fd5b505af115801561438b573d6000803e3d6000fd5b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216614411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610726565b80603560008282546144239190615355565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000828211156144bf578264e8d4a510006144a4828561565c565b6144ae919061553b565b6144b89190615581565b90506105b1565b818311156105b1578264e8d4a510006144d8848361565c565b6144e2919061553b565b6144ec9190615581565b6144f590615cd6565b9392505050565b600061455e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166146e39092919063ffffffff16565b805190915015610244578080602001905181019061457c91906158c0565b610244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610726565b600054610100900460ff1661469f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610726565b60366146ab8382615928565b5060376102448282615928565b6146c283836146fa565b61024473ffffffffffffffffffffffffffffffffffffffff841683836147b8565b60606146f2848460008561493a565b949350505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147949190615522565b11156129fc576129fc73ffffffffffffffffffffffffffffffffffffffff83168260005b80158061485857506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148569190615522565b155b6148e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610726565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526102449084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613baa565b6060824710156149cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610726565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516149f59190615d0e565b60006040518083038185875af1925050503d8060008114614a32576040519150601f19603f3d011682016040523d82523d6000602084013e614a37565b606091505b5091509150612e858783838760608315614ad9578251600003614ad25773ffffffffffffffffffffffffffffffffffffffff85163b614ad2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610726565b50816146f2565b6146f28383815115614aee5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107269190614b64565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614b5b578181015183820152602001614b43565b50506000910152565b6020815260008251806020840152614b83816040850160208701614b40565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114613e9e57600080fd5b60008060408385031215614bea57600080fd5b8235614bf581614bb5565b946020939093013593505050565b60008083601f840112614c1557600080fd5b50813567ffffffffffffffff811115614c2d57600080fd5b6020830191508360208260051b8501011115614c4857600080fd5b9250929050565b600080600060408486031215614c6457600080fd5b83359250602084013567ffffffffffffffff811115614c8257600080fd5b614c8e86828701614c03565b9497909650939450505050565b600080600060608486031215614cb057600080fd5b8335614cbb81614bb5565b92506020840135614ccb81614bb5565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614d5257614d52614cdc565b604052919050565b8035614d6581614bb5565b919050565b600080600060608486031215614d7f57600080fd5b833567ffffffffffffffff80821115614d9757600080fd5b818601915086601f830112614dab57600080fd5b8135602082821115614dbf57614dbf614cdc565b614def817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614d0b565b92508183528881838601011115614e0557600080fd5b8181850182850137600081838501015282965080880135955050505050614e2e60408501614d5a565b90509250925092565b600080600060408486031215614e4c57600080fd5b833567ffffffffffffffff811115614e6357600080fd5b614e6f86828701614c03565b9094509250506020840135614e8381614bb5565b809150509250925092565b600060208284031215614ea057600080fd5b81356144f581614bb5565b600081518084526020808501945080840160005b83811015614ef157815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614ebf565b509495945050505050565b6020815260006144f56020830184614eab565b60008060008060008060808789031215614f2857600080fd5b863595506020870135614f3a81614bb5565b9450604087013567ffffffffffffffff80821115614f5757600080fd5b614f638a838b01614c03565b90965094506060890135915080821115614f7c57600080fd5b50614f8989828a01614c03565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614ef157815187529582019590820190600101614faf565b6020815260006144f56020830184614f9b565b604081526000614ff16040830185614eab565b82810360208401526150038185614f9b565b95945050505050565b600080600080600080600080600060a08a8c03121561502a57600080fd5b893567ffffffffffffffff8082111561504257600080fd5b61504e8d838e01614c03565b909b50995060208c013591508082111561506757600080fd5b6150738d838e01614c03565b909950975060408c0135915061508882614bb5565b90955060608b0135908082111561509e57600080fd5b6150aa8d838e01614c03565b909650945060808c01359150808211156150c357600080fd5b506150d08c828d01614c03565b915080935050809150509295985092959850929598565b6000602082840312156150f957600080fd5b813567ffffffffffffffff81111561511057600080fd5b82016101a081850312156144f557600080fd5b60208152815160208201526000602083015160a0604084015261514960c0840182614f9b565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff82111561518d5761518d614cdc565b5060051b60200190565b600082601f8301126151a857600080fd5b813560206151bd6151b883615173565b614d0b565b82815260059290921b840181019181810190868411156151dc57600080fd5b8286015b8481101561374957803583529183019183016151e0565b60008060006040848603121561520c57600080fd5b833567ffffffffffffffff8082111561522457600080fd5b61523087838801615197565b9450602086013591508082111561524657600080fd5b50614c8e86828701614c03565b6000806040838503121561526657600080fd5b823567ffffffffffffffff81111561527d57600080fd5b61528985828601615197565b925050602083013561529a81614bb5565b809150509250929050565b600080604083850312156152b857600080fd5b82356152c381614bb5565b9150602083013561529a81614bb5565b600181811c908216806152e757607f821691505b602082108103615320577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105b1576105b1615326565b60006020828403121561537a57600080fd5b81516144f581614bb5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156153c657600080fd5b815160ff811681146144f557600080fd5b60ff81811683821602908116908181146131da576131da615326565b600181815b8085111561544c57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561543257615432615326565b8085161561543f57918102915b93841c93908002906153f8565b509250929050565b600082615463575060016105b1565b81615470575060006105b1565b81600181146154865760028114615490576154ac565b60019150506105b1565b60ff8411156154a1576154a1615326565b50506001821b6105b1565b5060208310610133831016604e8410600b84101617156154cf575081810a6105b1565b6154d983836153f3565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561550b5761550b615326565b029392505050565b60006144f560ff841683615454565b60006020828403121561553457600080fd5b5051919050565b80820281158282048414176105b1576105b1615326565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261559057615590615552565b500490565b600060208083850312156155a857600080fd5b825167ffffffffffffffff8111156155bf57600080fd5b8301601f810185136155d057600080fd5b80516155de6151b882615173565b81815260059190911b820183019083810190878311156155fd57600080fd5b928401925b82841015612e8557835161561581614bb5565b82529284019290840190615602565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361565557615655615326565b5060010190565b818103818111156105b1576105b1615326565b84815283602082015260806040820152600061568e6080830185614f9b565b8281036060840152612e858185614f9b565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126156d557600080fd5b83018035915067ffffffffffffffff8211156156f057600080fd5b6020019150600581901b3603821315614c4857600080fd5b808202600082127f80000000000000000000000000000000000000000000000000000000000000008414161561574057615740615326565b81810583148215176105b1576105b1615326565b60008261576357615763615552565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156157b7576157b7615326565b500590565b80820182811260008312801582168215821617156121ab576121ab615326565b8183526000602080850194508260005b85811015614ef15781356157ff81614bb5565b73ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016157ec565b60608152600061583b6060830187896157dc565b828103602084015261584d8187614f9b565b905082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561588757600080fd5b8360051b8086602084013701602001979650505050505050565b8381528260208201526060604082015260006150036060830184614f9b565b6000602082840312156158d257600080fd5b815180151581146144f557600080fd5b601f82111561024457600081815260208120601f850160051c810160208610156159095750805b601f850160051c820191505b8181101561398a57828155600101615915565b815167ffffffffffffffff81111561594257615942614cdc565b6159568161595084546152d3565b846158e2565b602080601f8311600181146159a957600084156159735750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561398a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156159f6578886015182559484019460019091019084016159d7565b5085821015615a3257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b608081526000615a9e6080830189614eab565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615be5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18e3603018112615b1d57600080fd5b8d0160608135615b2c81614bb5565b73ffffffffffffffffffffffffffffffffffffffff90811686528288013590615b5482614bb5565b1685880152604082810135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112615b9057600080fd5b90920187810192903567ffffffffffffffff811115615bae57600080fd5b803603841315615bbd57600080fd5b8282880152615bcf8388018286615a42565b9789019796505050928601925050600101615abc565b50508581036040870152615bfa81898b6157dc565b945050505050612e85606083018473ffffffffffffffffffffffffffffffffffffffff169052565b60006020808385031215615c3557600080fd5b825167ffffffffffffffff811115615c4c57600080fd5b8301601f81018513615c5d57600080fd5b8051615c6b6151b882615173565b81815260059190911b82018301908381019087831115615c8a57600080fd5b928401925b82841015612e8557835182529284019290840190615c8f565b600060208284031215615cba57600080fd5b81356bffffffffffffffffffffffff811681146144f557600080fd5b60007f80000000000000000000000000000000000000000000000000000000000000008203615d0757615d07615326565b5060000390565b60008251615d20818460208701614b40565b919091019291505056fea2646970667358221220a177bd400ab19b1baed3c50c5e07e76be9c9b1bbae4a62635d155d3b9501aa6a64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd1300000000000000000000000033e52c206d584550193e642c8982f2fff6339994", + "nonce": "0x29", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x68108b6f0ed11f97c495be98ff227d8d1f519b24c2abdd16b90fb7191dc8a965", + "transactionType": "CREATE", + "contractName": "MorphoAaveV2Strategy", + "contractAddress": "0xdD55DAb8A52b1E2983a9c7297650DBA857dB4e3b", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x777777c9898D384F785Ee44Acfe945efDFf5f3E0", + "0x4da27a545c0c5B758a6BA100e3a049001de870f5", + "0x33E52c206d584550193E642C8982f2Fff6339994", + "0x507fA343d0A90786d86C7cd885f5C49263A91FF4" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x5755d4", + "value": "0x0", + "data": "0x6101606040523480156200001257600080fd5b506040516200519a3803806200519a833981016040819052620000359162000161565b858585858584846000816001600160a01b038116620000675760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000955760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c75760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038316620000ef5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001175760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e05291821661010052811661012052929092166101405250620001f595505050505050565b6001600160a01b03811681146200015e57600080fd5b50565b60008060008060008060c087890312156200017b57600080fd5b8651620001888162000148565b60208801519096506200019b8162000148565b6040880151909550620001ae8162000148565b6060880151909450620001c18162000148565b6080880151909350620001d48162000148565b60a0880151909250620001e78162000148565b809150509295509295509295565b60805160a05160c05160e051610100516101205161014051614efd6200029d600039600081816102d7015261305e015260006105f40152600081816105590152818161260f01528181612d0b0152818161348001526134fa0152600061035b0152600081816109030152818161093101526138c40152600081816107f00152818161286f0152613962015260008181611d6401528181611e400152611f560152614efd6000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80638bbcc0e711610160578063c1a0ff4c116100d8578063e173ad251161008c578063ebbd6bc711610071578063ebbd6bc7146105dc578063f70eebf5146105ef578063fc195d8c1461061657600080fd5b8063e173ad25146105c1578063e1e5ae0d146105c957600080fd5b8063c8d31e74116100bd578063c8d31e7414610541578063d8fbc83314610554578063dd62ed3e1461057b57600080fd5b8063c1a0ff4c1461052b578063c1a7d80e1461053357600080fd5b8063a3ea6c971161012f578063a63e8c4b11610114578063a63e8c4b146104f0578063a9059cbb146104f8578063beef8a711461050b57600080fd5b8063a3ea6c97146104ca578063a457c2d7146104dd57600080fd5b80638bbcc0e71461046b57806395d89b411461048b5780639b6aaa4714610493578063a0078347146104a957600080fd5b8063313ce567116101f35780636cc14600116101c257806371a97305116101a757806371a973051461042e5780637817bf4a1461044357806384ba89e31461046357600080fd5b80636cc14600146103e557806370a08231146103f857600080fd5b8063313ce56714610390578063395093511461039f5780634c4d7571146103b25780636c60d9e7146103d257600080fd5b80631480fce31161024a57806323b872dd1161022f57806323b872dd146103435780632b3297f9146103565780632ce5183f1461037d57600080fd5b80631480fce31461031e57806318160ddd1461033157600080fd5b806301a262ed1461027c57806306fdde0314610291578063095ea7b3146102af578063112666b7146102d2575b600080fd5b61028f61028a366004614063565b610629565b005b61029961063f565b6040516102a691906140a9565b60405180910390f35b6102c26102bd366004614127565b6106d1565b60405190151581526020016102a6565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102a6565b61028f61032c36600461419f565b505050565b6035545b6040519081526020016102a6565b6102c26103513660046141eb565b6106eb565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b61028f61038b366004614127565b61070f565b604051601281526020016102a6565b6102c26103ad366004614127565b61074c565b6099546102f99073ffffffffffffffffffffffffffffffffffffffff1681565b61028f6103e036600461422c565b610798565b61028f6103f3366004614063565b6107d6565b610335610406366004614283565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b6104366107ec565b6040516102a691906142f1565b610456610451366004614304565b6108b8565b6040516102a691906143c0565b6103356108fe565b60965461047890600f0b81565b604051600f9190910b81526020016102a6565b610299610953565b61049b610962565b6040516102a69291906143d3565b609654610478907001000000000000000000000000000000009004600f0b81565b6103356104d8366004614401565b610979565b6102c26104eb366004614127565b610d55565b610456610e2b565b6102c2610506366004614127565b610e76565b61051e6105193660046144dc565b610e84565b6040516102a69190614518565b610456611a9c565b61028f61032c366004614675565b61033561054f3660046146d1565b611ae8565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b610335610589366004614723565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b610299611b2b565b61028f6105d7366004614751565b611b3a565b61028f6105ea366004614127565b611cd6565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b610456610624366004614304565b611d0d565b6000336106368282611f0a565b61032c8361201a565b60606036805461064e90614840565b80601f016020809104026020016040519081016040528092919081815260200182805461067a90614840565b80156106c75780601f1061069c576101008083540402835291602001916106c7565b820191906000526020600020905b8154815290600101906020018083116106aa57829003601f168201915b5050505050905090565b6000336106df8185856120a7565b60019150505b92915050565b6000336106f985828561225a565b61070485858561232b565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361073b8282611f0a565b61074630858561232b565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106df90829086906107939087906148c2565b6120a7565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336107c48282611f0a565b6107cf8585856125a1565b5050505050565b6000336107e38282611f0a565b61032c8361276a565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6108326108fe565b6040518263ffffffff1660e01b815260040161085091815260200190565b600060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526108b391908101906148d5565b905090565b60606108e47fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233611f0a565b6108f3878788888888886127eb565b979650505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000001161092e575060985490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461064e90614840565b606080321561097057600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336109a78282611f0a565b60008b67ffffffffffffffff8111156109c2576109c2614568565b6040519080825280602002602001820160405280156109eb578160200160208202803683370190505b50905060005b8c811015610add578d8d82818110610a0b57610a0b614964565b9050602002016020810190610a209190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab09190614993565b828281518110610ac257610ac2614964565b6020908102919091010152610ad6816149ac565b90506109f1565b50610b178d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610b3257610b32614568565b604051908082528060200260200182016040528015610b5b578160200160208202803683370190505b50905060005b8d811015610c4d578e8e82818110610b7b57610b7b614964565b9050602002016020810190610b909190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c209190614993565b828281518110610c3257610c32614964565b6020908102919091010152610c46816149ac565b9050610b61565b506000610c8e8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612858915050565b9050610c9d8f8f848d8d612a2b565b6000610cea8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612858565b90506000610cf88383612a76565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610d2685856149e4565b8787604051610d3894939291906149f7565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61070482868684036120a7565b6040805160018082528183019092526060916000919060208083019080368337019050509050600181600081518110610e6657610e66614964565b6020908102919091010152919050565b6000336106df81858561232b565b610eb66040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b610ee07fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233611f0a565b600080610ef06060850185614a28565b905067ffffffffffffffff811115610f0a57610f0a614568565b604051908082528060200260200182016040528015610f33578160200160208202803683370190505b50905060005b610f466060860186614a28565b905081101561105e57610f5c6060860186614a28565b82818110610f6c57610f6c614964565b9050602002016020810190610f819190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610fed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110119190614993565b82828151811061102357611023614964565b602002602001018181525050600082828151811061104357611043614964565b6020026020010151111561105657600192505b600101610f39565b506110708161032c6040870187614a28565b61108560a085013561032c6040870187614a28565b61108d61402e565b61109b856101000135612afd565b604085015260006110d86110b26060880188614a28565b6110bf60208a018a614a28565b6110cc60408c018c614a28565b60009695505050505050565b905064e8d4a510008560400151826110f09190614a90565b6110fa9190614b0b565b6111049082614b73565b856040018181516111159190614b73565b90525050604084015161112c906101208701612b0c565b5061118561113d6080870187614a28565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061118092505050610100880160e08901614283565b612858565b81526000808060a088013586156112d65760006111a96101008b0160e08c01614283565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6111d160608d018d614a28565b8a8e80608001906111e29190614a28565b6040518663ffffffff1660e01b8152600401611202959493929190614b93565b602060405180830381865afa15801561121f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112439190614993565b905064e8d4a5100061125460355490565b101561126d57611266816103e8614c4b565b93506112c0565b85511561128e578551603554611284908390614c4b565b6112669190614c62565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156112d0578394506112d4565b8194505b505b60006112e560608b018b614a28565b905067ffffffffffffffff8111156112ff576112ff614568565b604051908082528060200260200182016040528015611328578160200160208202803683370190505b5090506000828511156117735785156113e95760005b61134b60608d018d614a28565b90508110156113e35785878a838151811061136857611368614964565b6020026020010151028161137e5761137e614adc565b0483828151811061139157611391614964565b6020026020010181815250508281815181106113af576113af614964565b60200260200101518982815181106113c9576113c9614964565b60209081029190910101805191909103905260010161133e565b50600190505b6000885167ffffffffffffffff81111561140557611405614568565b60405190808252806020026020018201604052801561142e578160200160208202803683370190505b509050600061143d8d80614a28565b90501115611613576114a661145560608e018e614a28565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906107469190614a28565b60005b6114b660608e018e614a28565b905081101561160d578981815181106114d1576114d1614964565b60200260200101518282815181106114eb576114eb614964565b60200260200101818152505083818151811061150957611509614964565b60200260200101518d80606001906115219190614a28565b8381811061153157611531614964565b90506020020160208101906115469190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614993565b6115e091906149e4565b8a82815181106115f2576115f2614964565b6020908102919091010152611606816149ac565b90506114a9565b50611675565b60005b61162360608e018e614a28565b90508110156116735789818151811061163e5761163e614964565b602002602001015182828151811061165857611658614964565b602090810291909101015261166c816149ac565b9050611616565b505b61169b61168560608e018e614a28565b8b8f80604001906116969190614a28565b612a2b565b6116fe6116ab60808e018e614a28565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906111809190614283565b60208901819052885161171091612a76565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611747916149e4565b838c60405161175994939291906149f7565b60405180910390a161176b87866148c2565b9450506119ca565b8483111561195b57851561178a5785830392508593505b6117b061179a60608d018d614a28565b858e80604001906117ab9190614a28565b612c86565b6117ba3084612d71565b5060016118106117cd60808d018d614a28565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611180925050506101008e0160e08f01614283565b602088015260005b61182560608d018d614a28565b90508110156119155761183b60608d018d614a28565b8281811061184b5761184b614964565b90506020020160208101906118609190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156118cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f09190614993565b83828151811061190257611902614964565b6020908102919091010152600101611818565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b39161194e918691908690614c76565b60405180910390a16119ca565b85156119c25782935060005b61197460608d018d614a28565b90508110156119bc5788818151811061198f5761198f614964565b60200260200101518382815181106119a9576119a9614964565b6020908102919091010152600101611967565b50600190505b865160208801525b8015611a725760005b6119e060608d018d614a28565b9050811015611a7057611a686119fc60e08e0160c08f01614283565b848381518110611a0e57611a0e614964565b60200260200101518e8060600190611a269190614a28565b85818110611a3657611a36614964565b9050602002016020810190611a4b9190614283565b73ffffffffffffffffffffffffffffffffffffffff169190612f37565b6001016119d3565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050509050611ac661300b565b81600081518110611ad957611ad9614964565b60200260200101818152505090565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611b168282611f0a565b611b208585612858565b92505b505092915050565b60606097805461064e90614840565b600054610100900460ff1615808015611b5a5750600054600160ff909116105b80611b745750303b158015611b74575060005460ff166001145b611c00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610e15565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611c5e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b611c6b86868686866130d3565b8015611cce57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611d028282611f0a565b61074684308561232b565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015611dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de49190614c95565b158015611ec257506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015611e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec09190614c95565b155b15611efb576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610e15565b6108f3873088888888886127eb565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190614c95565b612016576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610e15565b5050565b600081600f0b138061203b575061203564e8d4a51000614cb7565b81600f0b125b15612072576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316612149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff82166121ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610746578181101561231e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610e15565b61074684848484036120a7565b73ffffffffffffffffffffffffffffffffffffffff83166123ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff8216612471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125949086815260200190565b60405180910390a3610746565b6099546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b15801561265557600080fd5b505af1158015612669573d6000803e3d6000fd5b5050505060006126776107ec565b9050610746828260008151811061269057612690614964565b60209081029190910101516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272a9190614993565b8360008151811061273d5761273d614964565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16612f379092919063ffffffff16565b600081600f0b12156127a8576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b606060006127fc86868b8787613213565b9050612808888a612d71565b60005b8581101561284b576128438883838151811061282957612829614964565b6020026020010151898985818110611a3657611a36614964565b60010161280b565b5098975050505050505050565b60008061286361300b565b90508015612a245760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6128b16108fe565b6040518263ffffffff1660e01b81526004016128cf91815260200190565b600060405180830381865afa1580156128ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261293291908101906148d5565b90508373ffffffffffffffffffffffffffffffffffffffff16639115900c8260008151811061296357612963614964565b6020026020010151848860008151811061297f5761297f614964565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b209190614993565b5092915050565b6107cf85856000818110612a4157612a41614964565b9050602002016020810190612a569190614283565b84600081518110612a6957612a69614964565b6020026020010151613474565b600080612a8260355490565b905064e8d4a51000811015612aca57612a9d6103e884614c4b565b915064e8d4a5100081900380831015612ab35750815b8083039250612ac461dead82613554565b50612af3565b831561128e578381612adc82866149e4565b612ae69190614c4b565b612af09190614c62565b91505b612a243083613554565b6000612b0882613649565b5090565b6000808313156106e557826000612b2a64e8d4a51000612710614c4b565b612b3a6080860160608701614cef565b6bffffffffffffffffffffffff16612b586040870160208801614cef565b612b72906bffffffffffffffffffffffff166127106149e4565b612b7c91906149e4565b612b869084614c4b565b612b9091906148c2565b9050600082612b9e60355490565b612ba89190614c4b565b9050600082612bbd6040880160208901614cef565b612bd5906bffffffffffffffffffffffff1684614c4b565b612bdf9190614c62565b9050612bf7612bf16020880188614283565b82613554565b600083612c0a6080890160608a01614cef565b612c22906bffffffffffffffffffffffff1685614c4b565b612c2c9190614c62565b9050612c41612bf16060890160408a01614283565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b82156107cf576000612c9760355490565b84612ca061300b565b612caa9190614c4b565b612cb49190614c62565b90508015611cce576099546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b158015612d5157600080fd5b505af1158015612d65573d6000803e3d6000fd5b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216612e14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015612eca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610e15565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261032c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526136e4565b6099546040517fa480b7ed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015230602482015260009182917f00000000000000000000000000000000000000000000000000000000000000009091169063a480b7ed90604401606060405180830381865afa1580156130a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130cb9190614d1d565b949350505050565b600054610100900460ff1661316a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e15565b61317485856137f0565b73ffffffffffffffffffffffffffffffffffffffff83166131c1576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff851617905561320a8261276a565b6107cf8161201a565b60608467ffffffffffffffff81111561322e5761322e614568565b604051908082528060200260200182016040528015613257578160200160208202803683370190505b50905060005b858110156133495786868281811061327757613277614964565b905060200201602081019061328c9190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156132f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061331c9190614993565b82828151811061332e5761332e614964565b6020908102919091010152613342816149ac565b905061325d565b506133578686868686612c86565b60005b8581101561346a5781818151811061337457613374614964565b602002602001015187878381811061338e5761338e614964565b90506020020160208101906133a39190614283565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561340f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134339190614993565b61343d91906149e4565b82828151811061344f5761344f614964565b6020908102919091010152613463816149ac565b905061335a565b5095945050505050565b8015612016576134a5827f000000000000000000000000000000000000000000000000000000000000000083613a76565b6099546040517f0c0a769b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152306024820152604481018390527f000000000000000000000000000000000000000000000000000000000000000090911690630c0a769b90606401600060405180830381600087803b15801561354057600080fd5b505af1158015611cce573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff82166135d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610e15565b80603560008282546135e391906148c2565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b609654600f0b81131561368b576040517fe4efd19b00000000000000000000000000000000000000000000000000000000815260048101829052602401610e15565b6096547001000000000000000000000000000000009004600f0b8112156136e1576040517feaaa5fe600000000000000000000000000000000000000000000000000000000815260048101829052602401610e15565b50565b6000613746826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613aa19092919063ffffffff16565b80519091501561032c57808060200190518101906137649190614c95565b61032c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610e15565b600054610100900460ff16613887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e15565b81516000036138c2576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000613928578061391e576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6098819055613960565b8015613960576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e6139a46108fe565b6040518263ffffffff1660e01b81526004016139c291815260200190565b60006040518083038186803b1580156139da57600080fd5b505afa1580156139ee573d6000803e3d6000fd5b505050508160979081613a019190614d91565b506120166040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613ab0565b613a808383613b51565b61032c73ffffffffffffffffffffffffffffffffffffffff84168383613c0f565b60606130cb8484600085613d91565b600054610100900460ff16613b47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e15565b6120168282613e9f565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015613bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613beb9190614993565b11156120165761201673ffffffffffffffffffffffffffffffffffffffff83168260005b801580613caf57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cad9190614993565b155b613d3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610e15565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261032c9084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401612f89565b606082471015613e23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610e15565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613e4c9190614eab565b60006040518083038185875af1925050503d8060008114613e89576040519150601f19603f3d011682016040523d82523d6000602084013e613e8e565b606091505b50915091506108f387838387613f4f565b600054610100900460ff16613f36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e15565b6036613f428382614d91565b50603761032c8282614d91565b60608315613fe5578251600003613fde5773ffffffffffffffffffffffffffffffffffffffff85163b613fde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e15565b50816130cb565b6130cb8383815115613ffa5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1591906140a9565b60405180604001604052806002906020820280368337509192915050565b8035600f81900b811461405e57600080fd5b919050565b60006020828403121561407557600080fd5b61407e8261404c565b9392505050565b60005b838110156140a0578181015183820152602001614088565b50506000910152565b60208152600082518060208401526140c8816040850160208701614085565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff811681146136e157600080fd5b803561405e816140fa565b6000806040838503121561413a57600080fd5b8235614145816140fa565b946020939093013593505050565b60008083601f84011261416557600080fd5b50813567ffffffffffffffff81111561417d57600080fd5b6020830191508360208260051b850101111561419857600080fd5b9250929050565b6000806000604084860312156141b457600080fd5b83359250602084013567ffffffffffffffff8111156141d257600080fd5b6141de86828701614153565b9497909650939450505050565b60008060006060848603121561420057600080fd5b833561420b816140fa565b9250602084013561421b816140fa565b929592945050506040919091013590565b60008060006040848603121561424157600080fd5b833567ffffffffffffffff81111561425857600080fd5b61426486828701614153565b9094509250506020840135614278816140fa565b809150509250925092565b60006020828403121561429557600080fd5b813561407e816140fa565b600081518084526020808501945080840160005b838110156142e657815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016142b4565b509495945050505050565b60208152600061407e60208301846142a0565b6000806000806000806080878903121561431d57600080fd5b86359550602087013561432f816140fa565b9450604087013567ffffffffffffffff8082111561434c57600080fd5b6143588a838b01614153565b9096509450606089013591508082111561437157600080fd5b5061437e89828a01614153565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b838110156142e6578151875295820195908201906001016143a4565b60208152600061407e6020830184614390565b6040815260006143e660408301856142a0565b82810360208401526143f88185614390565b95945050505050565b600080600080600080600080600060a08a8c03121561441f57600080fd5b893567ffffffffffffffff8082111561443757600080fd5b6144438d838e01614153565b909b50995060208c013591508082111561445c57600080fd5b6144688d838e01614153565b909950975060408c0135915061447d826140fa565b90955060608b0135908082111561449357600080fd5b61449f8d838e01614153565b909650945060808c01359150808211156144b857600080fd5b506144c58c828d01614153565b915080935050809150509295985092959850929598565b6000602082840312156144ee57600080fd5b813567ffffffffffffffff81111561450557600080fd5b82016101a0818503121561407e57600080fd5b60208152815160208201526000602083015160a0604084015261453e60c0840182614390565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156145de576145de614568565b604052919050565b600067ffffffffffffffff82111561460057614600614568565b5060051b60200190565b600082601f83011261461b57600080fd5b8135602061463061462b836145e6565b614597565b82815260059290921b8401810191818101908684111561464f57600080fd5b8286015b8481101561466a5780358352918301918301614653565b509695505050505050565b60008060006040848603121561468a57600080fd5b833567ffffffffffffffff808211156146a257600080fd5b6146ae8783880161460a565b945060208601359150808211156146c457600080fd5b506141de86828701614153565b600080604083850312156146e457600080fd5b823567ffffffffffffffff8111156146fb57600080fd5b6147078582860161460a565b9250506020830135614718816140fa565b809150509250929050565b6000806040838503121561473657600080fd5b8235614741816140fa565b91506020830135614718816140fa565b600080600080600060a0868803121561476957600080fd5b853567ffffffffffffffff8082111561478157600080fd5b818801915088601f83011261479557600080fd5b81356020828211156147a9576147a9614568565b6147d9817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614597565b92508183528a818386010111156147ef57600080fd5b81818501828501376000818385010152829850808a01359750505050506148186040870161411c565b92506148266060870161404c565b91506148346080870161404c565b90509295509295909350565b600181811c9082168061485457607f821691505b60208210810361488d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156106e5576106e5614893565b600060208083850312156148e857600080fd5b825167ffffffffffffffff8111156148ff57600080fd5b8301601f8101851361491057600080fd5b805161491e61462b826145e6565b81815260059190911b8201830190838101908783111561493d57600080fd5b928401925b828410156108f3578351614955816140fa565b82529284019290840190614942565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156149a557600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036149dd576149dd614893565b5060010190565b818103818111156106e5576106e5614893565b848152836020820152608060408201526000614a166080830185614390565b82810360608401526108f38185614390565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a5d57600080fd5b83018035915067ffffffffffffffff821115614a7857600080fd5b6020019150600581901b360382131561419857600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615614ac857614ac8614893565b81810583148215176106e5576106e5614893565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614b1a57614b1a614adc565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614b6e57614b6e614893565b500590565b8082018281126000831280158216821582161715611b2357611b23614893565b6060808252810185905260008660808301825b88811015614be3578235614bb9816140fa565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101614ba6565b508381036020850152614bf68188614390565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614c3157600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176106e5576106e5614893565b600082614c7157614c71614adc565b500490565b8381528260208201526060604082015260006143f86060830184614390565b600060208284031215614ca757600080fd5b8151801515811461407e57600080fd5b60007f80000000000000000000000000000000000000000000000000000000000000008203614ce857614ce8614893565b5060000390565b600060208284031215614d0157600080fd5b81356bffffffffffffffffffffffff8116811461407e57600080fd5b600080600060608486031215614d3257600080fd5b8351925060208401519150604084015190509250925092565b601f82111561032c57600081815260208120601f850160051c81016020861015614d725750805b601f850160051c820191505b81811015611cce57828155600101614d7e565b815167ffffffffffffffff811115614dab57614dab614568565b614dbf81614db98454614840565b84614d4b565b602080601f831160018114614e125760008415614ddc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611cce565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015614e5f57888601518255948401946001909101908401614e40565b5085821015614e9b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614ebd818460208701614085565b919091019291505056fea26469706673582212203ebd6230d080de1a74d4fdf84082e84e7ff7f06861946237375e30bdb0827fff64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000777777c9898d384f785ee44acfe945efdff5f3e00000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f500000000000000000000000033e52c206d584550193e642c8982f2fff6339994000000000000000000000000507fa343d0a90786d86c7cd885f5c49263a91ff4", + "nonce": "0x2a", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7f1f918b80089a7cf9cf5dfb7032132a1d0f4c3b202d2e01994043f7af61a201", + "transactionType": "CREATE", + "contractName": "MorphoCompoundV2Strategy", + "contractAddress": "0x40844863f1a8945499501111f71eCdABDBedDEf5", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "0x8888882f8f843896699869179fB6E4f7e3B58888", + "0xc00e94Cb662C3520282E6f5717214004A7f26888", + "0x33E52c206d584550193E642C8982f2Fff6339994", + "0x930f1b46e1D081Ec1524efD95752bE3eCe51EF67" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x600b87", + "value": "0x0", + "data": "0x6101606040523480156200001257600080fd5b50604051620059c7380380620059c7833981016040819052620000359162000161565b858585858584846000816001600160a01b038116620000675760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000955760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c75760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038316620000ef5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001175760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e05291821661010052811661012052929092166101405250620001f595505050505050565b6001600160a01b03811681146200015e57600080fd5b50565b60008060008060008060c087890312156200017b57600080fd5b8651620001888162000148565b60208801519096506200019b8162000148565b6040880151909550620001ae8162000148565b6060880151909450620001c18162000148565b6080880151909350620001d48162000148565b60a0880151909250620001e78162000148565b809150509295509295509295565b60805160a05160c05160e0516101005161012051610140516156f9620002ce600039600081816102d701526133a50152600081816105f4015281816128a801528181612c2b01528181612c9601526138f00152600081816105590152818161261101528181613052015281816138580152818161398401526139fe01526000818161035b01528181612c4d0152612d06015260008181610905015281816109330152613e3b0152600081816107f00152818161295a0152613ed9015260008181611d6601528181611e420152611f5801526156f96000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80638bbcc0e711610160578063c1a0ff4c116100d8578063e173ad251161008c578063ebbd6bc711610071578063ebbd6bc7146105dc578063f70eebf5146105ef578063fc195d8c1461061657600080fd5b8063e173ad25146105c1578063e1e5ae0d146105c957600080fd5b8063c8d31e74116100bd578063c8d31e7414610541578063d8fbc83314610554578063dd62ed3e1461057b57600080fd5b8063c1a0ff4c1461052b578063c1a7d80e1461053357600080fd5b8063a3ea6c971161012f578063a63e8c4b11610114578063a63e8c4b146104f0578063a9059cbb146104f8578063beef8a711461050b57600080fd5b8063a3ea6c97146104ca578063a457c2d7146104dd57600080fd5b80638bbcc0e71461046b57806395d89b411461048b5780639b6aaa4714610493578063a0078347146104a957600080fd5b8063313ce567116101f35780636cc14600116101c257806371a97305116101a757806371a973051461042e5780637817bf4a1461044357806384ba89e31461046357600080fd5b80636cc14600146103e557806370a08231146103f857600080fd5b8063313ce56714610390578063395093511461039f5780634c4d7571146103b25780636c60d9e7146103d257600080fd5b80631480fce31161024a57806323b872dd1161022f57806323b872dd146103435780632b3297f9146103565780632ce5183f1461037d57600080fd5b80631480fce31461031e57806318160ddd1461033157600080fd5b806301a262ed1461027c57806306fdde0314610291578063095ea7b3146102af578063112666b7146102d2575b600080fd5b61028f61028a3660046145da565b610629565b005b61029961063f565b6040516102a69190614619565b60405180910390f35b6102c26102bd366004614697565b6106d1565b60405190151581526020016102a6565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102a6565b61028f61032c36600461470f565b505050565b6035545b6040519081526020016102a6565b6102c261035136600461475b565b6106eb565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b61028f61038b366004614697565b61070f565b604051601281526020016102a6565b6102c26103ad366004614697565b61074c565b6099546102f99073ffffffffffffffffffffffffffffffffffffffff1681565b61028f6103e036600461479c565b610798565b61028f6103f33660046145da565b6107d6565b6103356104063660046147f3565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b6104366107ec565b6040516102a69190614861565b610456610451366004614874565b6108b8565b6040516102a69190614930565b610335610900565b60965461047890600f0b81565b604051600f9190910b81526020016102a6565b610299610955565b61049b610964565b6040516102a6929190614943565b609654610478907001000000000000000000000000000000009004600f0b81565b6103356104d8366004614971565b610982565b6102c26104eb366004614697565b610d5e565b610456610e34565b6102c2610506366004614697565b610e7f565b61051e610519366004614a4c565b610e8d565b6040516102a69190614a88565b610456611a9e565b61028f61032c366004614bda565b61033561054f366004614c36565b611aea565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b610335610589366004614c88565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b610299611b2d565b61028f6105d7366004614cb6565b611b3c565b61028f6105ea366004614697565b611cd8565b6102f97f000000000000000000000000000000000000000000000000000000000000000081565b610456610624366004614874565b611d0f565b6000336106368282611f0c565b61032c8361201c565b60606036805461064e90614da5565b80601f016020809104026020016040519081016040528092919081815260200182805461067a90614da5565b80156106c75780601f1061069c576101008083540402835291602001916106c7565b820191906000526020600020905b8154815290600101906020018083116106aa57829003601f168201915b5050505050905090565b6000336106df8185856120a9565b60019150505b92915050565b6000336106f985828561225c565b61070485858561232d565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361073b8282611f0c565b61074630858561232d565b50505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106df9082908690610793908790614e27565b6120a9565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336107c48282611f0c565b6107cf8585856125a3565b5050505050565b6000336107e38282611f0c565b61032c8361276c565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610832610900565b6040518263ffffffff1660e01b815260040161085091815260200190565b600060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526108b39190810190614e3a565b905090565b60606108e47fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233611f0c565b6108f3878788888888886127ed565b90505b9695505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610930575060985490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461064e90614da5565b606080321561097257600080fd5b61097a61285c565b915091509091565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336109b08282611f0c565b60008b67ffffffffffffffff8111156109cb576109cb614ad8565b6040519080825280602002602001820160405280156109f4578160200160208202803683370190505b50905060005b8c811015610ae6578d8d82818110610a1457610a14614ec9565b9050602002016020810190610a2991906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab99190614ef8565b828281518110610acb57610acb614ec9565b6020908102919091010152610adf81614f11565b90506109fa565b50610b208d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610b3b57610b3b614ad8565b604051908082528060200260200182016040528015610b64578160200160208202803683370190505b50905060005b8d811015610c56578e8e82818110610b8457610b84614ec9565b9050602002016020810190610b9991906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610c05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c299190614ef8565b828281518110610c3b57610c3b614ec9565b6020908102919091010152610c4f81614f11565b9050610b6a565b506000610c978d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612943915050565b9050610ca68f8f848d8d612b16565b6000610cf38e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612943565b90506000610d018383612b61565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610d2f8585614f49565b8787604051610d419493929190614f5c565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61070482868684036120a9565b6040805160018082528183019092526060916000919060208083019080368337019050509050600181600081518110610e6f57610e6f614ec9565b6020908102919091010152919050565b6000336106df81858561232d565b610ebf6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b610ee97fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233611f0c565b600080610ef96060850185614f8d565b905067ffffffffffffffff811115610f1357610f13614ad8565b604051908082528060200260200182016040528015610f3c578160200160208202803683370190505b50905060005b610f4f6060860186614f8d565b905081101561106757610f656060860186614f8d565b82818110610f7557610f75614ec9565b9050602002016020810190610f8a91906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190614ef8565b82828151811061102c5761102c614ec9565b602002602001018181525050600082828151811061104c5761104c614ec9565b6020026020010151111561105f57600192505b600101610f42565b506110798161032c6040870187614f8d565b61108e60a085013561032c6040870187614f8d565b6110966145a5565b6110a4856101000135612be8565b604085015260006110da6110bb6060880188614f8d565b6110c860208a018a614f8d565b6110d560408c018c614f8d565b612bf7565b905064e8d4a510008560400151826110f29190614ff5565b6110fc9190615070565b61110690826150d8565b8560400181815161111791906150d8565b90525050604084015161112e906101208701612e53565b5061118761113f6080870187614f8d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061118292505050610100880160e089016147f3565b612943565b81526000808060a088013586156112d85760006111ab6101008b0160e08c016147f3565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6111d360608d018d614f8d565b8a8e80608001906111e49190614f8d565b6040518663ffffffff1660e01b8152600401611204959493929190615143565b602060405180830381865afa158015611221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112459190614ef8565b905064e8d4a5100061125660355490565b101561126f57611268816103e86151bd565b93506112c2565b8551156112905785516035546112869083906151bd565b61126891906151d4565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156112d2578394506112d6565b8194505b505b60006112e760608b018b614f8d565b905067ffffffffffffffff81111561130157611301614ad8565b60405190808252806020026020018201604052801561132a578160200160208202803683370190505b5090506000828511156117755785156113eb5760005b61134d60608d018d614f8d565b90508110156113e55785878a838151811061136a5761136a614ec9565b6020026020010151028161138057611380615041565b0483828151811061139357611393614ec9565b6020026020010181815250508281815181106113b1576113b1614ec9565b60200260200101518982815181106113cb576113cb614ec9565b602090810291909101018051919091039052600101611340565b50600190505b6000885167ffffffffffffffff81111561140757611407614ad8565b604051908082528060200260200182016040528015611430578160200160208202803683370190505b509050600061143f8d80614f8d565b90501115611615576114a861145760608e018e614f8d565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906107469190614f8d565b60005b6114b860608e018e614f8d565b905081101561160f578981815181106114d3576114d3614ec9565b60200260200101518282815181106114ed576114ed614ec9565b60200260200101818152505083818151811061150b5761150b614ec9565b60200260200101518d80606001906115239190614f8d565b8381811061153357611533614ec9565b905060200201602081019061154891906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156115b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d89190614ef8565b6115e29190614f49565b8a82815181106115f4576115f4614ec9565b602090810291909101015261160881614f11565b90506114ab565b50611677565b60005b61162560608e018e614f8d565b90508110156116755789818151811061164057611640614ec9565b602002602001015182828151811061165a5761165a614ec9565b602090810291909101015261166e81614f11565b9050611618565b505b61169d61168760608e018e614f8d565b8b8f80604001906116989190614f8d565b612b16565b6117006116ad60808e018e614f8d565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e001602081019061118291906147f3565b60208901819052885161171291612b61565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc91879161174991614f49565b838c60405161175b9493929190614f5c565b60405180910390a161176d8786614e27565b9450506119cc565b8483111561195d57851561178c5785830392508593505b6117b261179c60608d018d614f8d565b858e80604001906117ad9190614f8d565b612fcd565b6117bc30846130b8565b5060016118126117cf60808d018d614f8d565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611182925050506101008e0160e08f016147f3565b602088015260005b61182760608d018d614f8d565b90508110156119175761183d60608d018d614f8d565b8281811061184d5761184d614ec9565b905060200201602081019061186291906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156118ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f29190614ef8565b83828151811061190457611904614ec9565b602090810291909101015260010161181a565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b3916119509186919086906151e8565b60405180910390a16119cc565b85156119c45782935060005b61197660608d018d614f8d565b90508110156119be5788818151811061199157611991614ec9565b60200260200101518382815181106119ab576119ab614ec9565b6020908102919091010152600101611969565b50600190505b865160208801525b8015611a745760005b6119e260608d018d614f8d565b9050811015611a7257611a6a6119fe60e08e0160c08f016147f3565b848381518110611a1057611a10614ec9565b60200260200101518e8060600190611a289190614f8d565b85818110611a3857611a38614ec9565b9050602002016020810190611a4d91906147f3565b73ffffffffffffffffffffffffffffffffffffffff16919061327e565b6001016119d5565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050509050611ac8613352565b81600081518110611adb57611adb614ec9565b60200260200101818152505090565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611b188282611f0c565b611b228585612943565b92505b505092915050565b60606097805461064e90614da5565b600054610100900460ff1615808015611b5c5750600054600160ff909116105b80611b765750303b158015611b76575060005460ff166001145b611c02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610e1e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611c6057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b611c6d868686868661341a565b8015611cd057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611d048282611f0c565b61074684308561232d565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015611dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de69190615207565b158015611ec457506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015611e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec29190615207565b155b15611efd576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610e1e565b6108f3873088888888886127ed565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015611f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc39190615207565b612018576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610e1e565b5050565b600081600f0b138061203d575061203764e8d4a51000615229565b81600f0b125b15612074576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055565b73ffffffffffffffffffffffffffffffffffffffff831661214b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff82166121ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107465781811015612320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610e1e565b61074684848484036120a9565b73ffffffffffffffffffffffffffffffffffffffff83166123d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff8216612473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125969086815260200190565b60405180910390a3610746565b6099546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b15801561265757600080fd5b505af115801561266b573d6000803e3d6000fd5b5050505060006126796107ec565b9050610746828260008151811061269257612692614ec9565b60209081029190910101516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272c9190614ef8565b8360008151811061273f5761273f614ec9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1661327e9092919063ffffffff16565b600081600f0b12156127aa576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b606060006127fe86868b878761355a565b905061280a888a6130b8565b60005b8581101561284d576128458883838151811061282b5761282b614ec9565b6020026020010151898985818110611a3857611a38614ec9565b60010161280d565b5090505b979650505050505050565b60408051600180825281830190925260609182916000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000826000815181106128da576128da614ec9565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061291c6137bb565b8160008151811061292f5761292f614ec9565b602090810291909101015290939092509050565b60008061294e613352565b90508015612b0f5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a61299c610900565b6040518263ffffffff1660e01b81526004016129ba91815260200190565b600060405180830381865afa1580156129d7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612a1d9190810190614e3a565b90508373ffffffffffffffffffffffffffffffffffffffff16639115900c82600081518110612a4e57612a4e614ec9565b60200260200101518488600081518110612a6a57612a6a614ec9565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b229190614ef8565b5092915050565b6107cf85856000818110612b2c57612b2c614ec9565b9050602002016020810190612b4191906147f3565b84600081518110612b5457612b54614ec9565b6020026020010151613978565b600080612b6d60355490565b905064e8d4a51000811015612bb557612b886103e8846151bd565b915064e8d4a5100081900380831015612b9e5750815b8083039250612baf61dead82613a58565b50612bde565b8315611290578381612bc78286614f49565b612bd191906151bd565b612bdb91906151d4565b91505b612b0f3083613a58565b6000612bf382613b4d565b5090565b600083156108f6576000612c096137bb565b90508015612e4857612c7273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008361327e565b604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110612cc857612cc8614ec9565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166367c15262838a8a8e8e306040518763ffffffff1660e01b8152600401612d67969594939291906152aa565b6000604051808303816000875af1158015612d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612dcc9190810190615441565b600081518110612dde57612dde614ec9565b602002602001015190506000811115612e45576000612dfb613352565b9050612e2e8b8b6000818110612e1357612e13614ec9565b9050602002016020810190612e2891906147f3565b83613978565b612e4181612e3c8482614e27565b613be8565b9450505b50505b509695505050505050565b6000808313156106e557826000612e7164e8d4a510006127106151bd565b612e8160808601606087016154c7565b6bffffffffffffffffffffffff16612e9f60408701602088016154c7565b612eb9906bffffffffffffffffffffffff16612710614f49565b612ec39190614f49565b612ecd90846151bd565b612ed79190614e27565b9050600082612ee560355490565b612eef91906151bd565b9050600082612f0460408801602089016154c7565b612f1c906bffffffffffffffffffffffff16846151bd565b612f2691906151d4565b9050612f3e612f3860208801886147f3565b82613a58565b600083612f516080890160608a016154c7565b612f69906bffffffffffffffffffffffff16856151bd565b612f7391906151d4565b9050612f88612f386060890160408a016147f3565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b82156107cf576000612fde60355490565b84612fe7613352565b612ff191906151bd565b612ffb91906151d4565b90508015611cd0576099546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b15801561309857600080fd5b505af11580156130ac573d6000803e3d6000fd5b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff821661315b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610e1e565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261032c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613c5b565b6099546040517fa480b7ed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015230602482015260009182917f00000000000000000000000000000000000000000000000000000000000000009091169063a480b7ed90604401606060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341291906154f5565b949350505050565b600054610100900460ff166134b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e1e565b6134bb8585613d67565b73ffffffffffffffffffffffffffffffffffffffff8316613508576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790556135518261276c565b6107cf8161201c565b60608467ffffffffffffffff81111561357557613575614ad8565b60405190808252806020026020018201604052801561359e578160200160208202803683370190505b50905060005b85811015613690578686828181106135be576135be614ec9565b90506020020160208101906135d391906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561363f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136639190614ef8565b82828151811061367557613675614ec9565b602090810291909101015261368981614f11565b90506135a4565b5061369e8686868686612fcd565b60005b858110156137b1578181815181106136bb576136bb614ec9565b60200260200101518787838181106136d5576136d5614ec9565b90506020020160208101906136ea91906147f3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377a9190614ef8565b6137849190614f49565b82828151811061379657613796614ec9565b60209081029190910101526137aa81614f11565b90506136a1565b5095945050505050565b604080516001808252818301909252600091829190602080830190803683375050609954825192935073ffffffffffffffffffffffffffffffffffffffff169183915060009061380d5761380d614ec9565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517f148e23ce0000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169063148e23ce90613892908490600090600401615523565b600060405180830381600087803b1580156138ac57600080fd5b505af11580156138c0573d6000803e3d6000fd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1692506370a082319150602401602060405180830381865afa15801561394e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139729190614ef8565b91505090565b8015612018576139a9827f000000000000000000000000000000000000000000000000000000000000000083613fed565b6099546040517f0c0a769b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152306024820152604481018390527f000000000000000000000000000000000000000000000000000000000000000090911690630c0a769b90606401600060405180830381600087803b158015613a4457600080fd5b505af1158015611cd0573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff8216613ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610e1e565b8060356000828254613ae79190614e27565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b609654600f0b811315613b8f576040517fe4efd19b00000000000000000000000000000000000000000000000000000000815260048101829052602401610e1e565b6096547001000000000000000000000000000000009004600f0b811215613be5576040517feaaa5fe600000000000000000000000000000000000000000000000000000000815260048101829052602401610e1e565b50565b600082821115613c1e578264e8d4a51000613c038285614f49565b613c0d91906151bd565b613c1791906151d4565b90506106e5565b818311156106e5578264e8d4a51000613c378483614f49565b613c4191906151bd565b613c4b91906151d4565b613c5490615229565b9392505050565b6000613cbd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166140189092919063ffffffff16565b80519091501561032c5780806020019051810190613cdb9190615207565b61032c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610e1e565b600054610100900460ff16613dfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e1e565b8151600003613e39576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000613e9f5780613e95576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6098819055613ed7565b8015613ed7576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e613f1b610900565b6040518263ffffffff1660e01b8152600401613f3991815260200190565b60006040518083038186803b158015613f5157600080fd5b505afa158015613f65573d6000803e3d6000fd5b505050508160979081613f78919061558d565b506120186040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250614027565b613ff783836140c8565b61032c73ffffffffffffffffffffffffffffffffffffffff84168383614186565b60606134128484600085614308565b600054610100900460ff166140be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e1e565b6120188282614416565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa15801561413e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141629190614ef8565b11156120185761201873ffffffffffffffffffffffffffffffffffffffff83168260005b80158061422657506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142249190614ef8565b155b6142b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610e1e565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261032c9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016132d0565b60608247101561439a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610e1e565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516143c391906156a7565b60006040518083038185875af1925050503d8060008114614400576040519150601f19603f3d011682016040523d82523d6000602084013e614405565b606091505b5091509150612851878383876144c6565b600054610100900460ff166144ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e1e565b60366144b9838261558d565b50603761032c828261558d565b6060831561455c5782516000036145555773ffffffffffffffffffffffffffffffffffffffff85163b614555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e1e565b5081613412565b61341283838151156145715781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e9190614619565b60405180604001604052806002906020820280368337509192915050565b8035600f81900b81146145d557600080fd5b919050565b6000602082840312156145ec57600080fd5b613c54826145c3565b60005b838110156146105781810151838201526020016145f8565b50506000910152565b60208152600082518060208401526146388160408501602087016145f5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114613be557600080fd5b80356145d58161466a565b600080604083850312156146aa57600080fd5b82356146b58161466a565b946020939093013593505050565b60008083601f8401126146d557600080fd5b50813567ffffffffffffffff8111156146ed57600080fd5b6020830191508360208260051b850101111561470857600080fd5b9250929050565b60008060006040848603121561472457600080fd5b83359250602084013567ffffffffffffffff81111561474257600080fd5b61474e868287016146c3565b9497909650939450505050565b60008060006060848603121561477057600080fd5b833561477b8161466a565b9250602084013561478b8161466a565b929592945050506040919091013590565b6000806000604084860312156147b157600080fd5b833567ffffffffffffffff8111156147c857600080fd5b6147d4868287016146c3565b90945092505060208401356147e88161466a565b809150509250925092565b60006020828403121561480557600080fd5b8135613c548161466a565b600081518084526020808501945080840160005b8381101561485657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614824565b509495945050505050565b602081526000613c546020830184614810565b6000806000806000806080878903121561488d57600080fd5b86359550602087013561489f8161466a565b9450604087013567ffffffffffffffff808211156148bc57600080fd5b6148c88a838b016146c3565b909650945060608901359150808211156148e157600080fd5b506148ee89828a016146c3565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b8381101561485657815187529582019590820190600101614914565b602081526000613c546020830184614900565b6040815260006149566040830185614810565b82810360208401526149688185614900565b95945050505050565b600080600080600080600080600060a08a8c03121561498f57600080fd5b893567ffffffffffffffff808211156149a757600080fd5b6149b38d838e016146c3565b909b50995060208c01359150808211156149cc57600080fd5b6149d88d838e016146c3565b909950975060408c013591506149ed8261466a565b90955060608b01359080821115614a0357600080fd5b614a0f8d838e016146c3565b909650945060808c0135915080821115614a2857600080fd5b50614a358c828d016146c3565b915080935050809150509295985092959850929598565b600060208284031215614a5e57600080fd5b813567ffffffffffffffff811115614a7557600080fd5b82016101a08185031215613c5457600080fd5b60208152815160208201526000602083015160a06040840152614aae60c0840182614900565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614b4e57614b4e614ad8565b604052919050565b600067ffffffffffffffff821115614b7057614b70614ad8565b5060051b60200190565b600082601f830112614b8b57600080fd5b81356020614ba0614b9b83614b56565b614b07565b82815260059290921b84018101918181019086841115614bbf57600080fd5b8286015b84811015612e485780358352918301918301614bc3565b600080600060408486031215614bef57600080fd5b833567ffffffffffffffff80821115614c0757600080fd5b614c1387838801614b7a565b94506020860135915080821115614c2957600080fd5b5061474e868287016146c3565b60008060408385031215614c4957600080fd5b823567ffffffffffffffff811115614c6057600080fd5b614c6c85828601614b7a565b9250506020830135614c7d8161466a565b809150509250929050565b60008060408385031215614c9b57600080fd5b8235614ca68161466a565b91506020830135614c7d8161466a565b600080600080600060a08688031215614cce57600080fd5b853567ffffffffffffffff80821115614ce657600080fd5b818801915088601f830112614cfa57600080fd5b8135602082821115614d0e57614d0e614ad8565b614d3e817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614b07565b92508183528a81838601011115614d5457600080fd5b81818501828501376000818385010152829850808a0135975050505050614d7d6040870161468c565b9250614d8b606087016145c3565b9150614d99608087016145c3565b90509295509295909350565b600181811c90821680614db957607f821691505b602082108103614df2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156106e5576106e5614df8565b60006020808385031215614e4d57600080fd5b825167ffffffffffffffff811115614e6457600080fd5b8301601f81018513614e7557600080fd5b8051614e83614b9b82614b56565b81815260059190911b82018301908381019087831115614ea257600080fd5b928401925b82841015612851578351614eba8161466a565b82529284019290840190614ea7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215614f0a57600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f4257614f42614df8565b5060010190565b818103818111156106e5576106e5614df8565b848152836020820152608060408201526000614f7b6080830185614900565b82810360608401526128518185614900565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614fc257600080fd5b83018035915067ffffffffffffffff821115614fdd57600080fd5b6020019150600581901b360382131561470857600080fd5b808202600082127f80000000000000000000000000000000000000000000000000000000000000008414161561502d5761502d614df8565b81810583148215176106e5576106e5614df8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261507f5761507f615041565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156150d3576150d3614df8565b500590565b8082018281126000831280158216821582161715611b2557611b25614df8565b8183526000602080850194508260005b8581101561485657813561511b8161466a565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101615108565b6060815260006151576060830187896150f8565b82810360208401526151698187614900565b905082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156151a357600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176106e5576106e5614df8565b6000826151e3576151e3615041565b500490565b8381528260208201526060604082015260006149686060830184614900565b60006020828403121561521957600080fd5b81518015158114613c5457600080fd5b60007f8000000000000000000000000000000000000000000000000000000000000000820361525a5761525a614df8565b5060000390565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6080815260006152bd6080830189614810565b602083820381850152818883528183019050818960051b8401018a60005b8b811015615404577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18e360301811261533c57600080fd5b8d016060813561534b8161466a565b73ffffffffffffffffffffffffffffffffffffffff908116865282880135906153738261466a565b1685880152604082810135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10181126153af57600080fd5b90920187810192903567ffffffffffffffff8111156153cd57600080fd5b8036038413156153dc57600080fd5b82828801526153ee8388018286615261565b97890197965050509286019250506001016152db565b5050858103604087015261541981898b6150f8565b945050505050612851606083018473ffffffffffffffffffffffffffffffffffffffff169052565b6000602080838503121561545457600080fd5b825167ffffffffffffffff81111561546b57600080fd5b8301601f8101851361547c57600080fd5b805161548a614b9b82614b56565b81815260059190911b820183019083810190878311156154a957600080fd5b928401925b82841015612851578351825292840192908401906154ae565b6000602082840312156154d957600080fd5b81356bffffffffffffffffffffffff81168114613c5457600080fd5b60008060006060848603121561550a57600080fd5b8351925060208401519150604084015190509250925092565b6040815260006155366040830185614810565b905082151560208301529392505050565b601f82111561032c57600081815260208120601f850160051c8101602086101561556e5750805b601f850160051c820191505b81811015611cd05782815560010161557a565b815167ffffffffffffffff8111156155a7576155a7614ad8565b6155bb816155b58454614da5565b84615547565b602080601f83116001811461560e57600084156155d85750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611cd0565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561565b5788860151825594840194600190910190840161563c565b508582101561569757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600082516156b98184602087016145f5565b919091019291505056fea264697066735822122013594bd94376fb757656f9467513f69909df5ba9e4aebdc7c19cdaa98aeb326f64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd130000000000000000000000008888882f8f843896699869179fb6e4f7e3b58888000000000000000000000000c00e94cb662c3520282e6f5717214004a7f2688800000000000000000000000033e52c206d584550193e642c8982f2fff6339994000000000000000000000000930f1b46e1d081ec1524efd95752be3ece51ef67", + "nonce": "0x2b", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb91ddfd8d422aa9cfff66dc97d7272b22985add2eb89d32ab5b17e0e6a20035c", + "transactionType": "CREATE", + "contractName": "OEthHoldingStrategy", + "contractAddress": "0x120da9fA3F56D2179FACab9Ce9b3D00dF4BE1575", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "1", + "0x856c4Efb76C1D1AE02e20CEB03A2A6a08b0b8dC3", + "0x39254033945AA2E4809Cc2977E7087BEE48bd7Ab", + "0x94B17476A93b3262d87B9a326965D1E91f9c13E7", + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x62c84d", + "value": "0x0", + "data": "0x6101606040523480156200001257600080fd5b5060405162005cbf38038062005cbf83398101604081905262000035916200017f565b80878787816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e0528416620000f05760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038316620001185760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001405760405163bb0e4c3560e01b815260040160405180910390fd5b506001600160a01b0392831661010052908216610120521661014052506200021e915050565b6001600160a01b03811681146200017c57600080fd5b50565b600080600080600080600060e0888a0312156200019b57600080fd5b8751620001a88162000166565b6020890151909750620001bb8162000166565b604089015160608a01519197509550620001d58162000166565b6080890151909450620001e88162000166565b60a0890151909350620001fb8162000166565b60c08901519092506200020e8162000166565b8091505092959891949750929550565b60805160a05160c05160e0516101005161012051610140516159826200033d6000396000818161049f01528181613aa401528181613b0d01526141970152600081816102f701528181613e730152613fbf01526000818161042801528181611cf20152818161226e0152818161230301528181612cbd01528181612e6901528181613169015281816134b201528181613a8301528181613ec9015261405b0152600081816103ac015281816121c101528181612d6301528181612e4701528181613e5201528181613f86015281816145920152614643015260008181610b0801528181610b3601526138ca0152600081816109f5015281816120ee0152613968015260008181612438015281816125140152612b5c01526159826000f3fe60806040526004361061021d5760003560e01c806384ba89e31161011d578063c1a0ff4c116100b0578063e173ad251161007f578063eef0cbca11610064578063eef0cbca146106dc578063f62d1888146106f1578063fc195d8c1461071157600080fd5b8063e173ad25146106a7578063ebbd6bc7146106bc57600080fd5b8063c1a0ff4c146105ff578063c1a7d80e14610614578063c8d31e7414610634578063dd62ed3e1461065457600080fd5b8063a457c2d7116100ec578063a457c2d71461057d578063a63e8c4b1461059d578063a9059cbb146105b2578063beef8a71146105d257600080fd5b806384ba89e31461051057806395d89b41146105255780639b6aaa471461053a578063a3ea6c971461055d57600080fd5b806339509351116101b05780636da47feb1161017f5780637165485d116101645780637165485d1461048d57806371a97305146104c15780637817bf4a146104e357600080fd5b80636da47feb1461041657806370a082311461044a57600080fd5b8063395093511461037a5780633fc8cef31461039a578063458baa0c146103ce5780636c60d9e7146103f657600080fd5b806323b872dd116101ec57806323b872dd146102c55780632948c3c4146102e55780632ce5183f1461033e578063313ce5671461035e57600080fd5b806306fdde0314610229578063095ea7b3146102545780631480fce31461028457806318160ddd146102a657600080fd5b3661022457005b600080fd5b34801561023557600080fd5b5061023e610731565b60405161024b9190614be1565b60405180910390f35b34801561026057600080fd5b5061027461026f366004614c57565b6107c3565b604051901515815260200161024b565b34801561029057600080fd5b506102a461029f366004614ccf565b6107dd565b005b3480156102b257600080fd5b506035545b60405190815260200161024b565b3480156102d157600080fd5b506102746102e0366004614d1b565b61090c565b3480156102f157600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161024b565b34801561034a57600080fd5b506102a4610359366004614c57565b610930565b34801561036a57600080fd5b506040516012815260200161024b565b34801561038657600080fd5b50610274610395366004614c57565b610967565b3480156103a657600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b3480156103da57600080fd5b506103e3600181565b604051600f9190910b815260200161024b565b34801561040257600080fd5b506102a4610411366004614d5c565b6109b3565b34801561042257600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b34801561045657600080fd5b506102b7610465366004614db3565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b34801561049957600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cd57600080fd5b506104d66109f1565b60405161024b9190614e21565b3480156104ef57600080fd5b506105036104fe366004614e34565b610abd565b60405161024b9190614ef0565b34801561051c57600080fd5b506102b7610b03565b34801561053157600080fd5b5061023e610b58565b34801561054657600080fd5b5061054f610b67565b60405161024b929190614f03565b34801561056957600080fd5b506102b7610578366004614f31565b610b7e565b34801561058957600080fd5b50610274610598366004614c57565b610f5a565b3480156105a957600080fd5b50610503611030565b3480156105be57600080fd5b506102746105cd366004614c57565b61107b565b3480156105de57600080fd5b506105f26105ed36600461500c565b611089565b60405161024b9190615048565b34801561060b57600080fd5b50610503611ca1565b34801561062057600080fd5b506102a461062f3660046151a5565b611d94565b34801561064057600080fd5b506102b761064f366004615201565b611efe565b34801561066057600080fd5b506102b761066f366004615253565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b3480156106b357600080fd5b5061023e611f41565b3480156106c857600080fd5b506102a46106d7366004614c57565b611f50565b3480156106e857600080fd5b506103e3600081565b3480156106fd57600080fd5b506102a461070c366004615281565b611f87565b34801561071d57600080fd5b5061050361072c366004614e34565b6123e1565b606060368054610740906152f3565b80601f016020809104026020016040519081016040528092919081815260200182805461076c906152f3565b80156107b95780601f1061078e576101008083540402835291602001916107b9565b820191906000526020600020905b81548152906001019060200180831161079c57829003601f168201915b5050505050905090565b6000336107d18185856125de565b60019150505b92915050565b3261081b576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a906020015b60405180910390a1505050565b600060028383600081811061083257610832615346565b905060200201351015610860578282600281811061085257610852615346565b9050602002013590506108c6565b8282600081811061087357610873615346565b90506020020135600203610894578282600181811061085257610852615346565b6040517f96b391c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108d08185612791565b610906576040517f96b391c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60003361091a8582856127c9565b61092585858561289a565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa563361095c8282612b10565b61090630858561289a565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906107d190829086906109ae9087906153a4565b6125de565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded2336109df8282612b10565b6109ea858585612c20565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610a37610b03565b6040518263ffffffff1660e01b8152600401610a5591815260200190565b600060405180830381865afa158015610a72573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ab891908101906153b7565b905090565b6060610ae97fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612b10565b610af887878888888888612d8a565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610b33575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b606060378054610740906152f3565b6060803215610b7557600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610bac8282612b10565b60008b67ffffffffffffffff811115610bc757610bc7615098565b604051908082528060200260200182016040528015610bf0578160200160208202803683370190505b50905060005b8c811015610ce2578d8d82818110610c1057610c10615346565b9050602002016020810190610c259190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb59190615446565b828281518110610cc757610cc7615346565b6020908102919091010152610cdb8161545f565b9050610bf6565b50610d1c8d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610d3757610d37615098565b604051908082528060200260200182016040528015610d60578160200160208202803683370190505b50905060005b8d811015610e52578e8e82818110610d8057610d80615346565b9050602002016020810190610d959190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610e01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e259190615446565b828281518110610e3757610e37615346565b6020908102919091010152610e4b8161545f565b9050610d66565b506000610e938d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612df7915050565b9050610ea28f8f848d8d612f95565b6000610eef8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612df7565b90506000610efd83836130d6565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610f2b8585615497565b8787604051610f3d94939291906154aa565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61092582868684036125de565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061106b5761106b615346565b6020908102919091010152919050565b6000336107d181858561289a565b6110bb6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6110e57fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612b10565b6000806110f560608501856154db565b905067ffffffffffffffff81111561110f5761110f615098565b604051908082528060200260200182016040528015611138578160200160208202803683370190505b50905060005b61114b60608601866154db565b90508110156112635761116160608601866154db565b8281811061117157611171615346565b90506020020160208101906111869190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190615446565b82828151811061122857611228615346565b602002602001018181525050600082828151811061124857611248615346565b6020026020010151111561125b57600192505b60010161113e565b506112758161062f60408701876154db565b61128a60a085013561029f60408701876154db565b611292614b9f565b6112a0856101000135613164565b604085015260006112dd6112b760608801886154db565b6112c460208a018a6154db565b6112d160408c018c6154db565b60009695505050505050565b905064e8d4a510008560400151826112f59190615543565b6112ff91906155be565b6113099082615626565b8560400181815161131a9190615626565b905250506040840151611331906101208701613219565b5061138a61134260808701876154db565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061138592505050610100880160e08901614db3565b612df7565b81526000808060a088013586156114db5760006113ae6101008b0160e08c01614db3565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6113d660608d018d6154db565b8a8e80608001906113e791906154db565b6040518663ffffffff1660e01b8152600401611407959493929190615646565b602060405180830381865afa158015611424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114489190615446565b905064e8d4a5100061145960355490565b10156114725761146b816103e86156fe565b93506114c5565b8551156114935785516035546114899083906156fe565b61146b9190615715565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156114d5578394506114d9565b8194505b505b60006114ea60608b018b6154db565b905067ffffffffffffffff81111561150457611504615098565b60405190808252806020026020018201604052801561152d578160200160208202803683370190505b5090506000828511156119785785156115ee5760005b61155060608d018d6154db565b90508110156115e85785878a838151811061156d5761156d615346565b602002602001015102816115835761158361558f565b0483828151811061159657611596615346565b6020026020010181815250508281815181106115b4576115b4615346565b60200260200101518982815181106115ce576115ce615346565b602090810291909101018051919091039052600101611543565b50600190505b6000885167ffffffffffffffff81111561160a5761160a615098565b604051908082528060200260200182016040528015611633578160200160208202803683370190505b50905060006116428d806154db565b90501115611818576116ab61165a60608e018e6154db565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061090691906154db565b60005b6116bb60608e018e6154db565b9050811015611812578981815181106116d6576116d6615346565b60200260200101518282815181106116f0576116f0615346565b60200260200101818152505083818151811061170e5761170e615346565b60200260200101518d806060019061172691906154db565b8381811061173657611736615346565b905060200201602081019061174b9190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa1580156117b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117db9190615446565b6117e59190615497565b8a82815181106117f7576117f7615346565b602090810291909101015261180b8161545f565b90506116ae565b5061187a565b60005b61182860608e018e6154db565b90508110156118785789818151811061184357611843615346565b602002602001015182828151811061185d5761185d615346565b60209081029190910101526118718161545f565b905061181b565b505b6118a061188a60608e018e6154db565b8b8f806040019061189b91906154db565b612f95565b6119036118b060808e018e6154db565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906113859190614db3565b602089018190528851611915916130d6565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc91879161194c91615497565b838c60405161195e94939291906154aa565b60405180910390a161197087866153a4565b945050611bcf565b84831115611b6057851561198f5785830392508593505b6119b561199f60608d018d6154db565b858e80604001906119b091906154db565b613393565b6119bf308461355c565b506001611a156119d260808d018d6154db565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611385925050506101008e0160e08f01614db3565b602088015260005b611a2a60608d018d6154db565b9050811015611b1a57611a4060608d018d6154db565b82818110611a5057611a50615346565b9050602002016020810190611a659190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af59190615446565b838281518110611b0757611b07615346565b6020908102919091010152600101611a1d565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611b53918691908690615729565b60405180910390a1611bcf565b8515611bc75782935060005b611b7960608d018d6154db565b9050811015611bc157888181518110611b9457611b94615346565b6020026020010151838281518110611bae57611bae615346565b6020908102919091010152600101611b6c565b50600190505b865160208801525b8015611c775760005b611be560608d018d6154db565b9050811015611c7557611c6d611c0160e08e0160c08f01614db3565b848381518110611c1357611c13615346565b60200260200101518e8060600190611c2b91906154db565b85818110611c3b57611c3b615346565b9050602002016020810190611c509190614db3565b73ffffffffffffffffffffffffffffffffffffffff169190613722565b600101611bd8565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611d4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d729190615446565b81600081518110611d8557611d85615346565b60200260200101818152505090565b32611e32576040805160018082528183019092526000916020808301908036833701905050905083600081518110611dce57611dce615346565b602002602001015181600081518110611de957611de9615346565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611e249190614ef0565b60405180910390a150505050565b600282826000818110611e4757611e47615346565b905060200201351115611e86576040517f670b5cfa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ec382826001818110611e9c57611e9c615346565b9050602002013584600081518110611eb657611eb6615346565b6020026020010151612791565b611ef9576040517f670b5cfa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611f2c8282612b10565b611f368585612df7565b92505b505092915050565b606060968054610740906152f3565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611f7c8282612b10565b61090684308561289a565b600054610100900460ff1615808015611fa75750600054600160ff909116105b80611fc15750303b158015611fc1575060005460ff166001145b61204d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161101a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156120ab57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6120ea83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506137f6915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a612130610b03565b6040518263ffffffff1660e01b815260040161214e91815260200190565b600060405180830381865afa15801561216b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526121b191908101906153b7565b90508051600114158061222a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168160008151811061220957612209615346565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561226c57612237610b03565b6040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260040161101a91815260200190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636691cb3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fb9190615446565b6098819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f51b0fd46040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561236957600080fd5b505af115801561237d573d6000803e3d6000fd5b50505050508015611ef957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161080e565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b89190615748565b15801561259657506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125949190615748565b155b156125cf576040517f7ab612a300000000000000000000000000000000000000000000000000000000815233600482015260240161101a565b610af887308888888888612d8a565b73ffffffffffffffffffffffffffffffffffffffff8316612680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff8216612723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006127af6001700100000000000000000000000000000000615497565b83168210806127c15750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610906578181101561288d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161101a565b61090684848484036125de565b73ffffffffffffffffffffffffffffffffffffffff831661293d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff82166129e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612b039086815260200190565b60405180910390a3610906565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc79190615748565b612c1c576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8216602482015260440161101a565b5050565b82826000818110612c3357612c33615346565b90506020020135600314612c73576040517f3f6f71a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090612d479073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d289190615446565b85856001818110612d3b57612d3b615346565b90506020020135613a7c565b905061090673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168383613722565b60606000612d9b86868b8787613bec565b9050612da7888a61355c565b60005b85811015612dea57612de288838381518110612dc857612dc8615346565b6020026020010151898985818110611c3b57611c3b615346565b600101612daa565b5098975050505050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff80841691639115900c917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015612eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed69190615446565b86600081518110612ee957612ee9615346565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f8e9190615446565b9392505050565b60008083836000818110612fab57612fab615346565b90506020020135600003612ff65783836003818110612fcc57612fcc615346565b90506020020135915083836004818110612fe857612fe8615346565b905060200201359050613078565b8383600081811061300957613009615346565b90506020020135600203613046578383600281811061302a5761302a615346565b90506020020135915083836003818110612fe857612fe8615346565b6040517f5640448e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001036130a9576130a48560008151811061309657613096615346565b602002602001015182613e4d565b6130cd565b6130cd856000815181106130bf576130bf615346565b602002602001015182614132565b50505050505050565b6000806130e260355490565b905064e8d4a5100081101561312a576130fd6103e8846156fe565b915064e8d4a51000819003808310156131135750815b808303925061312461dead82614257565b50613153565b831561149357838161313c8286615497565b61314691906156fe565b6131509190615715565b91505b61315d3083614257565b5092915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636691cb3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f69190615446565b90506132046098548261434c565b61320d9061576a565b60989190915592915050565b6000808313156107d75782600061323764e8d4a510006127106156fe565b61324760808601606087016157a2565b6bffffffffffffffffffffffff1661326560408701602088016157a2565b61327f906bffffffffffffffffffffffff16612710615497565b6132899190615497565b61329390846156fe565b61329d91906153a4565b90506000826132ab60355490565b6132b591906156fe565b90506000826132ca60408801602089016157a2565b6132e2906bffffffffffffffffffffffff16846156fe565b6132ec9190615715565b90506133046132fe6020880188614db3565b82614257565b6000836133176080890160608a016157a2565b61332f906bffffffffffffffffffffffff16856156fe565b6133399190615715565b905061334e6132fe6060890160408a01614db3565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b6000828260008181106133a8576133a8615346565b905060200201356001036133d757828260038181106133c9576133c9615346565b905060200201359050613477565b828260008181106133ea576133ea615346565b9050602002013560020361340b57828260028181106133c9576133c9615346565b8282600081811061341e5761341e615346565b9050602002013560030361343f57828260018181106133c9576133c9615346565b3215613477576040517f3f6f71a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061348260355490565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015286907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561350e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135329190615446565b61353c91906156fe565b6135469190615715565b90506135528183613a7c565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166135ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260336020526040902054818110156136b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161101a565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611ef99084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526143b8565b600054610100900460ff1661388d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161101a565b81516000036138c8576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061392e5780613924576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055613966565b8015613966576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e6139aa610b03565b6040518263ffffffff1660e01b81526004016139c891815260200190565b60006040518083038186803b1580156139e057600080fd5b505afa1580156139f4573d6000803e3d6000fd5b505050508160969081613a079190615816565b50612c1c6040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f53535400000000000000000000000000000000000000000000000000000000008152506144c4565b6000613ac97f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085614565565b6040517f3df02124000000000000000000000000000000000000000000000000000000008152600160048201526000602482015260448101849052606481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690633df02124906084016020604051808303816000875af1158015613b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8f9190615446565b9050613b9a81614590565b326107d75760408051600080825260208201849052606082840181905282015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a192915050565b60608467ffffffffffffffff811115613c0757613c07615098565b604051908082528060200260200182016040528015613c30578160200160208202803683370190505b50905060005b85811015613d2257868682818110613c5057613c50615346565b9050602002016020810190613c659190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cf59190615446565b828281518110613d0757613d07615346565b6020908102919091010152613d1b8161545f565b9050613c36565b50613d308686868686613393565b60005b85811015613e4357818181518110613d4d57613d4d615346565b6020026020010151878783818110613d6757613d67615346565b9050602002016020810190613d7c9190614db3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e0c9190615446565b613e169190615497565b828281518110613e2857613e28615346565b6020908102919091010152613e3c8161545f565b9050613d33565b5095945050505050565b613e987f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084614565565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f499190615446565b6040517f156e29f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201869052604482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063156e29f690606401600060405180830381600087803b15801561400557600080fd5b505af1158015614019573d6000803e3d6000fd5b50505050614025321590565b15611ef9576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156140b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140db9190615446565b90507f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a90600161410a8484615497565b604051611e249291909115158252602082015260606040820181905260009082015260800190565b61413b82614614565b6040517f3df021240000000000000000000000000000000000000000000000000000000081526000600482018190526001602483015260448201849052606482018390529073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690633df0212490859060840160206040518083038185885af11580156141e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906142069190615446565b905032611ef95760408051600181526020810183905260609181018290526000918101919091527f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909060800161080e565b73ffffffffffffffffffffffffffffffffffffffff82166142d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161101a565b80603560008282546142e691906153a4565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115614382578264e8d4a510006143678285615497565b61437191906156fe565b61437b9190615715565b90506107d7565b818311156107d7578264e8d4a5100061439b8483615497565b6143a591906156fe565b6143af9190615715565b612f8e9061576a565b600061441a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166146b09092919063ffffffff16565b805190915015611ef957808060200190518101906144389190615748565b611ef9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161101a565b600054610100900460ff1661455b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161101a565b612c1c82826146c7565b61456f8383614777565b611ef973ffffffffffffffffffffffffffffffffffffffff84168383614835565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156145f857600080fd5b505af115801561460c573d6000803e3d6000fd5b505050505050565b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b15801561469c57600080fd5b505af11580156109ea573d6000803e3d6000fd5b60606146bf84846000856149b7565b949350505050565b600054610100900460ff1661475e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161101a565b603661476a8382615816565b506037611ef98282615816565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156147ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148119190615446565b1115612c1c57612c1c73ffffffffffffffffffffffffffffffffffffffff83168260005b8015806148d557506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156148af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148d39190615446565b155b614961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161101a565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611ef99084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613774565b606082471015614a49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161101a565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614a729190615930565b60006040518083038185875af1925050503d8060008114614aaf576040519150601f19603f3d011682016040523d82523d6000602084013e614ab4565b606091505b5091509150610af88783838760608315614b56578251600003614b4f5773ffffffffffffffffffffffffffffffffffffffff85163b614b4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161101a565b50816146bf565b6146bf8383815115614b6b5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a9190614be1565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614bd8578181015183820152602001614bc0565b50506000910152565b6020815260008251806020840152614c00816040850160208701614bbd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114614c5457600080fd5b50565b60008060408385031215614c6a57600080fd5b8235614c7581614c32565b946020939093013593505050565b60008083601f840112614c9557600080fd5b50813567ffffffffffffffff811115614cad57600080fd5b6020830191508360208260051b8501011115614cc857600080fd5b9250929050565b600080600060408486031215614ce457600080fd5b83359250602084013567ffffffffffffffff811115614d0257600080fd5b614d0e86828701614c83565b9497909650939450505050565b600080600060608486031215614d3057600080fd5b8335614d3b81614c32565b92506020840135614d4b81614c32565b929592945050506040919091013590565b600080600060408486031215614d7157600080fd5b833567ffffffffffffffff811115614d8857600080fd5b614d9486828701614c83565b9094509250506020840135614da881614c32565b809150509250925092565b600060208284031215614dc557600080fd5b8135612f8e81614c32565b600081518084526020808501945080840160005b83811015614e1657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614de4565b509495945050505050565b602081526000612f8e6020830184614dd0565b60008060008060008060808789031215614e4d57600080fd5b863595506020870135614e5f81614c32565b9450604087013567ffffffffffffffff80821115614e7c57600080fd5b614e888a838b01614c83565b90965094506060890135915080821115614ea157600080fd5b50614eae89828a01614c83565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614e1657815187529582019590820190600101614ed4565b602081526000612f8e6020830184614ec0565b604081526000614f166040830185614dd0565b8281036020840152614f288185614ec0565b95945050505050565b600080600080600080600080600060a08a8c031215614f4f57600080fd5b893567ffffffffffffffff80821115614f6757600080fd5b614f738d838e01614c83565b909b50995060208c0135915080821115614f8c57600080fd5b614f988d838e01614c83565b909950975060408c01359150614fad82614c32565b90955060608b01359080821115614fc357600080fd5b614fcf8d838e01614c83565b909650945060808c0135915080821115614fe857600080fd5b50614ff58c828d01614c83565b915080935050809150509295985092959850929598565b60006020828403121561501e57600080fd5b813567ffffffffffffffff81111561503557600080fd5b82016101a08185031215612f8e57600080fd5b60208152815160208201526000602083015160a0604084015261506e60c0840182614ec0565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561510e5761510e615098565b604052919050565b600067ffffffffffffffff82111561513057615130615098565b5060051b60200190565b600082601f83011261514b57600080fd5b8135602061516061515b83615116565b6150c7565b82815260059290921b8401810191818101908684111561517f57600080fd5b8286015b8481101561519a5780358352918301918301615183565b509695505050505050565b6000806000604084860312156151ba57600080fd5b833567ffffffffffffffff808211156151d257600080fd5b6151de8783880161513a565b945060208601359150808211156151f457600080fd5b50614d0e86828701614c83565b6000806040838503121561521457600080fd5b823567ffffffffffffffff81111561522b57600080fd5b6152378582860161513a565b925050602083013561524881614c32565b809150509250929050565b6000806040838503121561526657600080fd5b823561527181614c32565b9150602083013561524881614c32565b6000806020838503121561529457600080fd5b823567ffffffffffffffff808211156152ac57600080fd5b818501915085601f8301126152c057600080fd5b8135818111156152cf57600080fd5b8660208285010111156152e157600080fd5b60209290920196919550909350505050565b600181811c9082168061530757607f821691505b602082108103615340577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156107d7576107d7615375565b600060208083850312156153ca57600080fd5b825167ffffffffffffffff8111156153e157600080fd5b8301601f810185136153f257600080fd5b805161540061515b82615116565b81815260059190911b8201830190838101908783111561541f57600080fd5b928401925b82841015610af857835161543781614c32565b82529284019290840190615424565b60006020828403121561545857600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361549057615490615375565b5060010190565b818103818111156107d7576107d7615375565b8481528360208201526080604082015260006154c96080830185614ec0565b8281036060840152610af88185614ec0565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261551057600080fd5b83018035915067ffffffffffffffff82111561552b57600080fd5b6020019150600581901b3603821315614cc857600080fd5b808202600082127f80000000000000000000000000000000000000000000000000000000000000008414161561557b5761557b615375565b81810583148215176107d7576107d7615375565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826155cd576155cd61558f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561562157615621615375565b500590565b8082018281126000831280158216821582161715611f3957611f39615375565b6060808252810185905260008660808301825b8881101561569657823561566c81614c32565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101615659565b5083810360208501526156a98188614ec0565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156156e457600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176107d7576107d7615375565b6000826157245761572461558f565b500490565b838152826020820152606060408201526000614f286060830184614ec0565b60006020828403121561575a57600080fd5b81518015158114612f8e57600080fd5b60007f8000000000000000000000000000000000000000000000000000000000000000820361579b5761579b615375565b5060000390565b6000602082840312156157b457600080fd5b81356bffffffffffffffffffffffff81168114612f8e57600080fd5b601f821115611ef957600081815260208120601f850160051c810160208610156157f75750805b601f850160051c820191505b8181101561460c57828155600101615803565b815167ffffffffffffffff81111561583057615830615098565b6158448161583e84546152f3565b846157d0565b602080601f83116001811461589757600084156158615750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561460c565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156158e4578886015182559484019460019091019084016158c5565b508582101561592057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008251615942818460208701614bbd565b919091019291505056fea2646970667358221220f86c8c85ef0d7ac70e86af4c7b26bfa4aece21c196ff5e997a6ccc12eaa4216164736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd130000000000000000000000000000000000000000000000000000000000000001000000000000000000000000856c4efb76c1d1ae02e20ceb03a2a6a08b0b8dc300000000000000000000000039254033945aa2e4809cc2977e7087bee48bd7ab00000000000000000000000094b17476a93b3262d87b9a326965d1e91f9c13e7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0x2c", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7c5e1f8832e1e22beb58b34b6ff7d11a6865592b503dcf5ba9a843c2347ac518", + "transactionType": "CREATE", + "contractName": "REthHoldingStrategy", + "contractAddress": "0x56a20C5D76d41338fBd5D7cB7Db37e937143f910", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "1", + "0x16D5A408e807db8eF7c578279BEeEe6b228f1c1C", + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x674715", + "value": "0x0", + "data": "0x6101406040523480156200001257600080fd5b50604051620060b0380380620060b0833981016040819052620000359162000194565b80858585816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e0528216620000f05760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216610100819052604080516332a2a83960e21b8152905163ca8aa0e4916004808201926020929091908290030181865afa1580156200013c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000162919062000208565b6001600160a01b031661012052506200022f9350505050565b6001600160a01b03811681146200019157600080fd5b50565b600080600080600060a08688031215620001ad57600080fd5b8551620001ba816200017b565b6020870151909550620001cd816200017b565b604087015160608801519195509350620001e7816200017b565b6080870151909250620001fa816200017b565b809150509295509295909350565b6000602082840312156200021b57600080fd5b815162000228816200017b565b9392505050565b60805160a05160c05160e0516101005161012051615d89620003276000396000818161027701528181611c4c01528181612b4401528181612ce3015281816132e80152818161392001528181613c3a0152818161430701526144e7015260008181610595015281816139f701528181613c5b01528181613c8201528181614091015261438b01526000818161036b0152818161214e01528181612c0701528181612dd5015281816148ae015261495f015260008181610a5701528181610a8501526137350152600081816109440152818161207b01526137d30152600081816122c30152818161239f01526129e70152615d896000f3fe6080604052600436106101dc5760003560e01c806395d89b4111610102578063c1a7d80e11610095578063e173ad2511610064578063e173ad251461060a578063ebbd6bc71461061f578063f62d18881461063f578063fc195d8c1461065f57600080fd5b8063c1a7d80e14610543578063c8d31e7414610563578063d5ddd50314610583578063dd62ed3e146105b757600080fd5b8063a63e8c4b116100d1578063a63e8c4b146104cc578063a9059cbb146104e1578063beef8a7114610501578063c1a0ff4c1461052e57600080fd5b806395d89b41146104545780639b6aaa4714610469578063a3ea6c971461048c578063a457c2d7146104ac57600080fd5b8063313ce5671161017a57806370a082311161014957806370a08231146103ad57806371a97305146103f05780637817bf4a1461041257806384ba89e31461043f57600080fd5b8063313ce5671461031d57806339509351146103395780633fc8cef3146103595780636c60d9e71461038d57600080fd5b806317094411116101b6578063170944111461026557806318160ddd146102be57806323b872dd146102dd5780632ce5183f146102fd57600080fd5b806306fdde03146101e8578063095ea7b3146102135780631480fce31461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61067f565b60405161020a9190614f3f565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004614f77565b610711565b604051901515815260200161020a565b34801561024f57600080fd5b5061026361025e366004614fef565b61072b565b005b34801561027157600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161020a565b3480156102ca57600080fd5b506035545b60405190815260200161020a565b3480156102e957600080fd5b506102336102f836600461503b565b610859565b34801561030957600080fd5b50610263610318366004614f77565b61087f565b34801561032957600080fd5b506040516012815260200161020a565b34801561034557600080fd5b50610233610354366004614f77565b6108b6565b34801561036557600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b34801561039957600080fd5b506102636103a836600461507c565b610902565b3480156103b957600080fd5b506102cf6103c83660046150d3565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b3480156103fc57600080fd5b50610405610940565b60405161020a9190615141565b34801561041e57600080fd5b5061043261042d366004615154565b610a0c565b60405161020a9190615210565b34801561044b57600080fd5b506102cf610a52565b34801561046057600080fd5b506101fd610aa7565b34801561047557600080fd5b5061047e610ab6565b60405161020a929190615223565b34801561049857600080fd5b506102cf6104a7366004615251565b610acd565b3480156104b857600080fd5b506102336104c7366004614f77565b610ea9565b3480156104d857600080fd5b50610432610f8a565b3480156104ed57600080fd5b506102336104fc366004614f77565b610fd5565b34801561050d57600080fd5b5061052161051c36600461532c565b610fe3565b60405161020a9190615368565b34801561053a57600080fd5b50610432611bfb565b34801561054f57600080fd5b5061026361055e3660046154c5565b611d55565b34801561056f57600080fd5b506102cf61057e366004615521565b611ebf565b34801561058f57600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b3480156105c357600080fd5b506102cf6105d2366004615573565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b34801561061657600080fd5b506101fd611f02565b34801561062b57600080fd5b5061026361063a366004614f77565b611f11565b34801561064b57600080fd5b5061026361065a3660046155a1565b611f48565b34801561066b57600080fd5b5061043261067a366004615154565b61226c565b60606036805461068e90615654565b80601f01602080910402602001604051908101604052809291908181526020018280546106ba90615654565b80156107075780601f106106dc57610100808354040283529160200191610707565b820191906000526020600020905b8154815290600101906020018083116106ea57829003601f168201915b5050505050905090565b60003361071f818585612469565b60019150505b92915050565b32610768576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b600060028383600081811061077f5761077f6156a7565b9050602002013510156107ad578282600281811061079f5761079f6156a7565b905060200201359050610813565b828260008181106107c0576107c06156a7565b905060200201356002036107e1578282600181811061079f5761079f6156a7565b6040517fb23013d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61081d818561261c565b610853576040517fb23013d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600033610867858285612654565b610872858585612725565b60019150505b9392505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336108ab828261299b565b610853308585612725565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061071f90829086906108fd908790615705565b612469565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361092e828261299b565b610939858585612aa7565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610986610a52565b6040518263ffffffff1660e01b81526004016109a491815260200190565b600060405180830381865afa1580156109c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a079190810190615718565b905090565b6060610a387fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361299b565b610a4787878888888888612c2e565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610a82575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461068e90615654565b6060803215610ac457600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610afb828261299b565b60008b67ffffffffffffffff811115610b1657610b166153b8565b604051908082528060200260200182016040528015610b3f578160200160208202803683370190505b50905060005b8c811015610c31578d8d82818110610b5f57610b5f6156a7565b9050602002016020810190610b7491906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0491906157a7565b828281518110610c1657610c166156a7565b6020908102919091010152610c2a816157c0565b9050610b45565b50610c6b8d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610c8657610c866153b8565b604051908082528060200260200182016040528015610caf578160200160208202803683370190505b50905060005b8d811015610da1578e8e82818110610ccf57610ccf6156a7565b9050602002016020810190610ce491906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7491906157a7565b828281518110610d8657610d866156a7565b6020908102919091010152610d9a816157c0565b9050610cb5565b506000610de28d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612c9b915050565b9050610df18f8f848d8d612eb5565b6000610e3e8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612c9b565b90506000610e4c8383612f9d565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610e7a85856157f8565b8787604051610e8c949392919061580b565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610f72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610f7f8286868403612469565b506001949350505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050600181600081518110610fc557610fc56156a7565b6020908102919091010152919050565b60003361071f818585612725565b6110156040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b61103f7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded23361299b565b60008061104f606085018561583c565b905067ffffffffffffffff811115611069576110696153b8565b604051908082528060200260200182016040528015611092578160200160208202803683370190505b50905060005b6110a5606086018661583c565b90508110156111bd576110bb606086018661583c565b828181106110cb576110cb6156a7565b90506020020160208101906110e091906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561114c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117091906157a7565b828281518110611182576111826156a7565b60200260200101818152505060008282815181106111a2576111a26156a7565b602002602001015111156111b557600192505b600101611098565b506111cf8161055e604087018761583c565b6111e460a085013561025e604087018761583c565b6111ec614eb3565b6111fa85610100013561302b565b60408501526000611237611211606088018861583c565b61121e60208a018a61583c565b61122b60408c018c61583c565b60009695505050505050565b905064e8d4a5100085604001518261124f91906158a4565b611259919061591f565b6112639082615987565b856040018181516112749190615987565b90525050604084015161128b906101208701613050565b506112e461129c608087018761583c565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506112df92505050610100880160e089016150d3565b612c9b565b81526000808060a088013586156114355760006113086101008b0160e08c016150d3565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61133060608d018d61583c565b8a8e8060800190611341919061583c565b6040518663ffffffff1660e01b81526004016113619594939291906159a7565b602060405180830381865afa15801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a291906157a7565b905064e8d4a510006113b360355490565b10156113cc576113c5816103e8615a5f565b935061141f565b8551156113ed5785516035546113e3908390615a5f565b6113c59190615a76565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561142f57839450611433565b8194505b505b600061144460608b018b61583c565b905067ffffffffffffffff81111561145e5761145e6153b8565b604051908082528060200260200182016040528015611487578160200160208202803683370190505b5090506000828511156118d25785156115485760005b6114aa60608d018d61583c565b90508110156115425785878a83815181106114c7576114c76156a7565b602002602001015102816114dd576114dd6158f0565b048382815181106114f0576114f06156a7565b60200260200101818152505082818151811061150e5761150e6156a7565b6020026020010151898281518110611528576115286156a7565b60209081029190910101805191909103905260010161149d565b50600190505b6000885167ffffffffffffffff811115611564576115646153b8565b60405190808252806020026020018201604052801561158d578160200160208202803683370190505b509050600061159c8d8061583c565b90501115611772576116056115b460608e018e61583c565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e8060000190610853919061583c565b60005b61161560608e018e61583c565b905081101561176c57898181518110611630576116306156a7565b602002602001015182828151811061164a5761164a6156a7565b602002602001018181525050838181518110611668576116686156a7565b60200260200101518d8060600190611680919061583c565b83818110611690576116906156a7565b90506020020160208101906116a591906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173591906157a7565b61173f91906157f8565b8a8281518110611751576117516156a7565b6020908102919091010152611765816157c0565b9050611608565b506117d4565b60005b61178260608e018e61583c565b90508110156117d25789818151811061179d5761179d6156a7565b60200260200101518282815181106117b7576117b76156a7565b60209081029190910101526117cb816157c0565b9050611775565b505b6117fa6117e460608e018e61583c565b8b8f80604001906117f5919061583c565b612eb5565b61185d61180a60808e018e61583c565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906112df91906150d3565b60208901819052885161186f91612f9d565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc9187916118a6916157f8565b838c6040516118b8949392919061580b565b60405180910390a16118ca8786615705565b945050611b29565b84831115611aba5785156118e95785830392508593505b61190f6118f960608d018d61583c565b858e806040019061190a919061583c565b6131ca565b61191930846133c7565b50600161196f61192c60808d018d61583c565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506112df925050506101008e0160e08f016150d3565b602088015260005b61198460608d018d61583c565b9050811015611a745761199a60608d018d61583c565b828181106119aa576119aa6156a7565b90506020020160208101906119bf91906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4f91906157a7565b838281518110611a6157611a616156a7565b6020908102919091010152600101611977565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611aad918691908690615a8a565b60405180910390a1611b29565b8515611b215782935060005b611ad360608d018d61583c565b9050811015611b1b57888181518110611aee57611aee6156a7565b6020026020010151838281518110611b0857611b086156a7565b6020908102919091010152600101611ac6565b50600190505b865160208801525b8015611bd15760005b611b3f60608d018d61583c565b9050811015611bcf57611bc7611b5b60e08e0160c08f016150d3565b848381518110611b6d57611b6d6156a7565b60200260200101518e8060600190611b85919061583c565b85818110611b9557611b956156a7565b9050602002016020810190611baa91906150d3565b73ffffffffffffffffffffffffffffffffffffffff16919061358d565b600101611b32565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b32fa239082906370a0823190602401602060405180830381865afa158015611cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd491906157a7565b6040518263ffffffff1660e01b8152600401611cf291815260200190565b602060405180830381865afa158015611d0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3391906157a7565b81600081518110611d4657611d466156a7565b60200260200101818152505090565b32611df3576040805160018082528183019092526000916020808301908036833701905050905083600081518110611d8f57611d8f6156a7565b602002602001015181600081518110611daa57611daa6156a7565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611de59190615210565b60405180910390a150505050565b600282826000818110611e0857611e086156a7565b905060200201351115611e47576040517fdfc8737800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611e8482826001818110611e5d57611e5d6156a7565b9050602002013584600081518110611e7757611e776156a7565b602002602001015161261c565b611eba576040517fdfc8737800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611eed828261299b565b611ef78585612c9b565b92505b505092915050565b60606096805461068e90615654565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611f3d828261299b565b610853843085612725565b600054610100900460ff1615808015611f685750600054600160ff909116105b80611f825750303b158015611f82575060005460ff166001145b61200e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610f69565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561206c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b612077826000613661565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6120bd610a52565b6040518263ffffffff1660e01b81526004016120db91815260200190565b600060405180830381865afa1580156120f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261213e9190810190615718565b9050805160011415806121b757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681600081518110612196576121966156a7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156121f9576121c4610a52565b6040517f4b1f57ad000000000000000000000000000000000000000000000000000000008152600401610f6991815260200190565b6122016138e7565b60985550801561226857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa15801561231f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123439190615aa9565b15801561242157506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156123fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241f9190615aa9565b155b1561245a576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401610f69565b610a4787308888888888612c2e565b73ffffffffffffffffffffffffffffffffffffffff831661250b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff82166125ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061263a60017001000000000000000000000000000000006157f8565b831682108061264c5750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108535781811015612718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610f69565b6108538484848403612469565b73ffffffffffffffffffffffffffffffffffffffff83166127c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff821661286b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061298e9086815260200190565b60405180910390a3610853565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a529190615aa9565b612268576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401610f69565b82826000818110612aba57612aba6156a7565b90506020020135600314612afa576040517ffc5fbdf300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090612beb9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612baf91906157a7565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250600192506139a0915050565b905061085373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016838361358d565b60606000612c3f86868b8787613dd9565b9050612c4b888a6133c7565b60005b85811015612c8e57612c8688838381518110612c6c57612c6c6156a7565b6020026020010151898985818110611b9557611b956156a7565b600101612c4e565b5098975050505050505050565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690638b32fa239082906370a0823190602401602060405180830381865afa158015612d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5691906157a7565b6040518263ffffffff1660e01b8152600401612d7491815260200190565b602060405180830381865afa158015612d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db591906157a7565b90508273ffffffffffffffffffffffffffffffffffffffff16639115900c7f00000000000000000000000000000000000000000000000000000000000000008387600081518110612e0857612e086156a7565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ead91906157a7565b949350505050565b600082826000818110612eca57612eca6156a7565b90506020020135600003612ee057506003612f3b565b82826000818110612ef357612ef36156a7565b90506020020135600203612f0957506002612f3b565b6040517f0947e0a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612f9484600081518110612f5157612f516156a7565b602002602001015184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525086925061403a915050565b50505050505050565b600080612fa960355490565b905064e8d4a51000811015612ff157612fc46103e884615a5f565b915064e8d4a5100081900380831015612fda5750815b8083039250612feb61dead82614573565b5061301a565b83156113ed57838161300382866157f8565b61300d9190615a5f565b6130179190615a76565b91505b6130243083614573565b5092915050565b6000806130366138e7565b905061304460985482614668565b60989190915592915050565b6000808313156107255782600061306e64e8d4a51000612710615a5f565b61307e6080860160608701615acb565b6bffffffffffffffffffffffff1661309c6040870160208801615acb565b6130b6906bffffffffffffffffffffffff166127106157f8565b6130c091906157f8565b6130ca9084615a5f565b6130d49190615705565b90506000826130e260355490565b6130ec9190615a5f565b90506000826131016040880160208901615acb565b613119906bffffffffffffffffffffffff1684615a5f565b6131239190615a76565b905061313b61313560208801886150d3565b82614573565b60008361314e6080890160608a01615acb565b613166906bffffffffffffffffffffffff1685615a5f565b6131709190615a76565b90506131856131356060890160408a016150d3565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b6000828260008181106131df576131df6156a7565b905060200201356001036131f5575060036132ad565b82826000818110613208576132086156a7565b9050602002013560020361321e575060026132ad565b82826000818110613231576132316156a7565b90506020020135600303613247575060016132ad565b8282600081811061325a5761325a6156a7565b90506020020135600014801561326e575032155b1561327b575060036132ad565b6040517ffc5fbdf300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006132b860355490565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015286907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613344573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061336891906157a7565b6133729190615a5f565b61337c9190615a76565b90506133bd818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508792506139a0915050565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff821661346a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610f69565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611eba9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526146d4565b600054610100900460ff166136f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f69565b8151600003613733576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000613799578061378f576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60978190556137d1565b80156137d1576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e613815610a52565b6040518263ffffffff1660e01b815260040161383391815260200190565b60006040518083038186803b15801561384b57600080fd5b505afa15801561385f573d6000803e3d6000fd5b5050505081609690816138729190615b3f565b506122686040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f53535400000000000000000000000000000000000000000000000000000000008152506147e0565b6040517f8b32fa23000000000000000000000000000000000000000000000000000000008152670de0b6b3a764000060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b32fa2390602401602060405180830381865afa15801561397c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0791906157a7565b600032613c35576040517f2f18e2af00000000000000000000000000000000000000000000000000000000815260048101859052600a6024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632f18e2af906044016060604051808303816000875af1158015613a40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a649190615c59565b90925090508160006020020151858581518110613a8357613a836156a7565b6020908102919091010152816001602002015185613aa2866001615705565b81518110613ab257613ab26156a7565b60209081029190910101528085613aca866002615705565b81518110613ada57613ada6156a7565b60209081029190910101528085613af2866003615705565b81518110613b0257613b026156a7565b602090810291909101015260408051600480825260a0820190925260009181602001602082028036833750508451825192935091839150600090613b4857613b486156a7565b6020908102919091010152826001602002015181600181518110613b6e57613b6e6156a7565b6020026020010181815250508181600281518110613b8e57613b8e6156a7565b6020026020010181815250508181600381518110613bae57613bae6156a7565b6020026020010181815250507f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a9060008083604051602001613bef9190615210565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052613c29939291615cde565b60405180910390a15050505b613c807f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000086614881565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a824ae8b848481518110613cce57613cce6156a7565b602002602001015185856001613ce49190615705565b81518110613cf457613cf46156a7565b602002602001015186866002613d0a9190615705565b81518110613d1a57613d1a6156a7565b602002602001015187876003613d309190615705565b81518110613d4057613d406156a7565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815260048101949094526024840192909252604483015260648201526084810187905260a401600060405180830381600087803b158015613db557600080fd5b505af1158015613dc9573d6000803e3d6000fd5b50505050479050610878816148ac565b60608467ffffffffffffffff811115613df457613df46153b8565b604051908082528060200260200182016040528015613e1d578160200160208202803683370190505b50905060005b85811015613f0f57868682818110613e3d57613e3d6156a7565b9050602002016020810190613e5291906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee291906157a7565b828281518110613ef457613ef46156a7565b6020908102919091010152613f08816157c0565b9050613e23565b50613f1d86868686866131ca565b60005b8581101561403057818181518110613f3a57613f3a6156a7565b6020026020010151878783818110613f5457613f546156a7565b9050602002016020810190613f6991906150d3565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff991906157a7565b61400391906157f8565b828281518110614015576140156156a7565b6020908102919091010152614029816157c0565b9050613f20565b5095945050505050565b6000326142d0576040517f27e0416300000000000000000000000000000000000000000000000000000000815260048101859052600a6024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906327e04163906044016060604051808303816000875af11580156140da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140fe9190615c59565b9092509050816000602002015185858151811061411d5761411d6156a7565b602090810291909101015281600160200201518561413c866001615705565b8151811061414c5761414c6156a7565b60209081029190910101528085614164866002615705565b81518110614174576141746156a7565b6020908102919091010152808561418c866003615705565b8151811061419c5761419c6156a7565b602090810291909101015260408051600480825260a08201909252600091816020016020820280368337505084518251929350918391506000906141e2576141e26156a7565b6020908102919091010152826001602002015181600181518110614208576142086156a7565b6020026020010181815250508181600281518110614228576142286156a7565b6020026020010181815250508181600381518110614248576142486156a7565b6020026020010181815250507f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a90600160008360405160200161428a9190615210565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526142c4939291615cde565b60405180910390a15050505b6142d984614930565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015614363573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061438791906157a7565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166355362f4d858585815181106143d8576143d86156a7565b6020026020010151868660016143ee9190615705565b815181106143fe576143fe6156a7565b6020026020010151878760026144149190615705565b81518110614424576144246156a7565b60200260200101518888600361443a9190615705565b8151811061444a5761444a6156a7565b60200260200101516040518663ffffffff1660e01b8152600401614487949392919093845260208401929092526040830152606082015260800190565b6000604051808303818588803b1580156144a057600080fd5b505af11580156144b4573d6000803e3d6000fd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201528493507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1692506370a082319150602401602060405180830381865afa158015614545573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061456991906157a7565b612ead91906157f8565b73ffffffffffffffffffffffffffffffffffffffff82166145f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610f69565b80603560008282546146029190615705565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60008282111561469e578264e8d4a5100061468382856157f8565b61468d9190615a5f565b6146979190615a76565b9050610725565b81831115610725578264e8d4a510006146b784836157f8565b6146c19190615a5f565b6146cb9190615a76565b61087890615cff565b6000614736826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166149cc9092919063ffffffff16565b805190915015611eba57808060200190518101906147549190615aa9565b611eba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610f69565b600054610100900460ff16614877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f69565b61226882826149db565b61488b8383614a8b565b611eba73ffffffffffffffffffffffffffffffffffffffff84168383614b49565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561491457600080fd5b505af1158015614928573d6000803e3d6000fd5b505050505050565b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b1580156149b857600080fd5b505af1158015610939573d6000803e3d6000fd5b6060612ead8484600085614ccb565b600054610100900460ff16614a72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f69565b6036614a7e8382615b3f565b506037611eba8282615b3f565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b2591906157a7565b11156122685761226873ffffffffffffffffffffffffffffffffffffffff83168260005b801580614be957506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614be791906157a7565b155b614c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610f69565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611eba9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016135df565b606082471015614d5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610f69565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614d869190615d37565b60006040518083038185875af1925050503d8060008114614dc3576040519150601f19603f3d011682016040523d82523d6000602084013e614dc8565b606091505b5091509150610a478783838760608315614e6a578251600003614e635773ffffffffffffffffffffffffffffffffffffffff85163b614e63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f69565b5081612ead565b612ead8383815115614e7f5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f699190614f3f565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614eec578181015183820152602001614ed4565b50506000910152565b60008151808452614f0d816020860160208601614ed1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006108786020830184614ef5565b73ffffffffffffffffffffffffffffffffffffffff81168114614f7457600080fd5b50565b60008060408385031215614f8a57600080fd5b8235614f9581614f52565b946020939093013593505050565b60008083601f840112614fb557600080fd5b50813567ffffffffffffffff811115614fcd57600080fd5b6020830191508360208260051b8501011115614fe857600080fd5b9250929050565b60008060006040848603121561500457600080fd5b83359250602084013567ffffffffffffffff81111561502257600080fd5b61502e86828701614fa3565b9497909650939450505050565b60008060006060848603121561505057600080fd5b833561505b81614f52565b9250602084013561506b81614f52565b929592945050506040919091013590565b60008060006040848603121561509157600080fd5b833567ffffffffffffffff8111156150a857600080fd5b6150b486828701614fa3565b90945092505060208401356150c881614f52565b809150509250925092565b6000602082840312156150e557600080fd5b813561087881614f52565b600081518084526020808501945080840160005b8381101561513657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101615104565b509495945050505050565b60208152600061087860208301846150f0565b6000806000806000806080878903121561516d57600080fd5b86359550602087013561517f81614f52565b9450604087013567ffffffffffffffff8082111561519c57600080fd5b6151a88a838b01614fa3565b909650945060608901359150808211156151c157600080fd5b506151ce89828a01614fa3565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015615136578151875295820195908201906001016151f4565b60208152600061087860208301846151e0565b60408152600061523660408301856150f0565b828103602084015261524881856151e0565b95945050505050565b600080600080600080600080600060a08a8c03121561526f57600080fd5b893567ffffffffffffffff8082111561528757600080fd5b6152938d838e01614fa3565b909b50995060208c01359150808211156152ac57600080fd5b6152b88d838e01614fa3565b909950975060408c013591506152cd82614f52565b90955060608b013590808211156152e357600080fd5b6152ef8d838e01614fa3565b909650945060808c013591508082111561530857600080fd5b506153158c828d01614fa3565b915080935050809150509295985092959850929598565b60006020828403121561533e57600080fd5b813567ffffffffffffffff81111561535557600080fd5b82016101a0818503121561087857600080fd5b60208152815160208201526000602083015160a0604084015261538e60c08401826151e0565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561542e5761542e6153b8565b604052919050565b600067ffffffffffffffff821115615450576154506153b8565b5060051b60200190565b600082601f83011261546b57600080fd5b8135602061548061547b83615436565b6153e7565b82815260059290921b8401810191818101908684111561549f57600080fd5b8286015b848110156154ba57803583529183019183016154a3565b509695505050505050565b6000806000604084860312156154da57600080fd5b833567ffffffffffffffff808211156154f257600080fd5b6154fe8783880161545a565b9450602086013591508082111561551457600080fd5b5061502e86828701614fa3565b6000806040838503121561553457600080fd5b823567ffffffffffffffff81111561554b57600080fd5b6155578582860161545a565b925050602083013561556881614f52565b809150509250929050565b6000806040838503121561558657600080fd5b823561559181614f52565b9150602083013561556881614f52565b600060208083850312156155b457600080fd5b823567ffffffffffffffff808211156155cc57600080fd5b818501915085601f8301126155e057600080fd5b8135818111156155f2576155f26153b8565b615622847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016153e7565b9150808252868482850101111561563857600080fd5b8084840185840137600090820190930192909252509392505050565b600181811c9082168061566857607f821691505b6020821081036156a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610725576107256156d6565b6000602080838503121561572b57600080fd5b825167ffffffffffffffff81111561574257600080fd5b8301601f8101851361575357600080fd5b805161576161547b82615436565b81815260059190911b8201830190838101908783111561578057600080fd5b928401925b82841015610a4757835161579881614f52565b82529284019290840190615785565b6000602082840312156157b957600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036157f1576157f16156d6565b5060010190565b81810381811115610725576107256156d6565b84815283602082015260806040820152600061582a60808301856151e0565b8281036060840152610a4781856151e0565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261587157600080fd5b83018035915067ffffffffffffffff82111561588c57600080fd5b6020019150600581901b3603821315614fe857600080fd5b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156158dc576158dc6156d6565b8181058314821517610725576107256156d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261592e5761592e6158f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615982576159826156d6565b500590565b8082018281126000831280158216821582161715611efa57611efa6156d6565b6060808252810185905260008660808301825b888110156159f75782356159cd81614f52565b73ffffffffffffffffffffffffffffffffffffffff168252602092830192909101906001016159ba565b508381036020850152615a0a81886151e0565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115615a4557600080fd5b8360051b8086602084013701602001979650505050505050565b8082028115828204841417610725576107256156d6565b600082615a8557615a856158f0565b500490565b83815282602082015260606040820152600061524860608301846151e0565b600060208284031215615abb57600080fd5b8151801515811461087857600080fd5b600060208284031215615add57600080fd5b81356bffffffffffffffffffffffff8116811461087857600080fd5b601f821115611eba57600081815260208120601f850160051c81016020861015615b205750805b601f850160051c820191505b8181101561492857828155600101615b2c565b815167ffffffffffffffff811115615b5957615b596153b8565b615b6d81615b678454615654565b84615af9565b602080601f831160018114615bc05760008415615b8a5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555614928565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015615c0d57888601518255948401946001909101908401615bee565b5085821015615c4957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008060608385031215615c6c57600080fd5b83601f840112615c7b57600080fd5b6040516040810181811067ffffffffffffffff82111715615c9e57615c9e6153b8565b8060405250806040850186811115615cb557600080fd5b855b81811015615ccf578051835260209283019201615cb7565b50519196919550909350505050565b83151581528260208201526060604082015260006152486060830184614ef5565b60007f80000000000000000000000000000000000000000000000000000000000000008203615d3057615d306156d6565b5060000390565b60008251615d49818460208701614ed1565b919091019291505056fea26469706673582212205740574dd20ba806085e79746ceccc677ad2b2edf42947d6d5255ed62ba8944c64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13000000000000000000000000000000000000000000000000000000000000000100000000000000000000000016d5a408e807db8ef7c578279beeee6b228f1c1c000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0x2d", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x96ecc9c1218f9b23e764357a8199120de53203cfb904f5defe23c182b8cb1230", + "transactionType": "CREATE", + "contractName": "SfrxEthHoldingStrategy", + "contractAddress": "0xeFD8CE62CA1cd5C309ee1421496E8657036E9373", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "1", + "0x5E8422345238F34275888049021821E8E08CAa1f", + "0xac3E018457B222d93114458476f3E3416Abbe38F", + "0xbAFA44EFE7901E04E39Dad13167D089C559c1138", + "0xa1F8A6807c402E4A15ef4EBa36528A3FED24E577", + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x6294da", + "value": "0x0", + "data": "0x6101806040523480156200001257600080fd5b5060405162005cc238038062005cc28339810160408190526200003591620001ad565b80888888816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e0528516620000f05760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038416620001185760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038316620001405760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001685760405163bb0e4c3560e01b815260040160405180910390fd5b506001600160a01b03938416610100529183166101205282166101405216610160525062000262915050565b6001600160a01b0381168114620001aa57600080fd5b50565b600080600080600080600080610100898b031215620001cb57600080fd5b8851620001d88162000194565b60208a0151909850620001eb8162000194565b60408a015160608b01519198509650620002058162000194565b60808a0151909550620002188162000194565b60a08a01519094506200022b8162000194565b60c08a01519093506200023e8162000194565b60e08a0151909250620002518162000194565b809150509295985092959890939650565b60805160a05160c05160e0516101005161012051610140516101605161594b620003776000396000818161049201528181613b9c01528181613c0501526140660152600081816102b10152613f7d0152600081816106d401528181611d4101528181612c6901528181612deb0152818161342e01528181613a3101528181613b07015281816140fd01526141570152600081816103fb01528181613b7b01526140dc0152600081816103c70152818161227701528181612d0f01528181612edd0152818161456b0152614614015260008181610b5701528181610b850152613846015260008181610a44015281816121a401526138e40152600081816123e4015281816124c00152612b08015261594b6000f3fe6080604052600436106102385760003560e01c806395d89b4111610138578063c8d31e74116100b0578063e173ad251161007f578063eef0cbca11610064578063eef0cbca1461072b578063f62d188814610740578063fc195d8c1461076057600080fd5b8063e173ad25146106f6578063ebbd6bc71461070b57600080fd5b8063c8d31e7414610627578063c950d58d14610647578063dd62ed3e1461066f578063e0bfa2bf146106c257600080fd5b8063a63e8c4b11610107578063beef8a71116100ec578063beef8a71146105c5578063c1a0ff4c146105f2578063c1a7d80e1461060757600080fd5b8063a63e8c4b14610590578063a9059cbb146105a557600080fd5b806395d89b41146105185780639b6aaa471461052d578063a3ea6c9714610550578063a457c2d71461057057600080fd5b806339509351116101cb57806370a082311161019a57806371a973051161017f57806371a97305146104b45780637817bf4a146104d657806384ba89e31461050357600080fd5b806370a082311461043d5780637165485d1461048057600080fd5b806339509351146103955780633fc8cef3146103b55780635acb12c8146103e95780636c60d9e71461041d57600080fd5b806318160ddd1161020757806318160ddd1461031a57806323b872dd146103395780632ce5183f14610359578063313ce5671461037957600080fd5b806306fdde0314610244578063095ea7b31461026f5780630d199eaa1461029f5780631480fce3146102f857600080fd5b3661023f57005b600080fd5b34801561025057600080fd5b50610259610780565b6040516102669190614baa565b60405180910390f35b34801561027b57600080fd5b5061028f61028a366004614c20565b610812565b6040519015158152602001610266565b3480156102ab57600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610266565b34801561030457600080fd5b50610318610313366004614c98565b61082c565b005b34801561032657600080fd5b506035545b604051908152602001610266565b34801561034557600080fd5b5061028f610354366004614ce4565b61095b565b34801561036557600080fd5b50610318610374366004614c20565b61097f565b34801561038557600080fd5b5060405160128152602001610266565b3480156103a157600080fd5b5061028f6103b0366004614c20565b6109b6565b3480156103c157600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f557600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b34801561042957600080fd5b50610318610438366004614d25565b610a02565b34801561044957600080fd5b5061032b610458366004614d7c565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b34801561048c57600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c057600080fd5b506104c9610a40565b6040516102669190614dea565b3480156104e257600080fd5b506104f66104f1366004614dfd565b610b0c565b6040516102669190614eb9565b34801561050f57600080fd5b5061032b610b52565b34801561052457600080fd5b50610259610ba7565b34801561053957600080fd5b50610542610bb6565b604051610266929190614ecc565b34801561055c57600080fd5b5061032b61056b366004614efa565b610bcd565b34801561057c57600080fd5b5061028f61058b366004614c20565b610fa9565b34801561059c57600080fd5b506104f661107f565b3480156105b157600080fd5b5061028f6105c0366004614c20565b6110ca565b3480156105d157600080fd5b506105e56105e0366004614fd5565b6110d8565b6040516102669190615011565b3480156105fe57600080fd5b506104f6611cf0565b34801561061357600080fd5b5061031861062236600461516e565b611e4a565b34801561063357600080fd5b5061032b6106423660046151ca565b611fb4565b34801561065357600080fd5b5061065c600181565b604051600f9190910b8152602001610266565b34801561067b57600080fd5b5061032b61068a36600461521c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b3480156106ce57600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b34801561070257600080fd5b50610259611ff7565b34801561071757600080fd5b50610318610726366004614c20565b612006565b34801561073757600080fd5b5061065c600081565b34801561074c57600080fd5b5061031861075b36600461524a565b61203d565b34801561076c57600080fd5b506104f661077b366004614dfd565b61238d565b60606036805461078f906152bc565b80601f01602080910402602001604051908101604052809291908181526020018280546107bb906152bc565b80156108085780601f106107dd57610100808354040283529160200191610808565b820191906000526020600020905b8154815290600101906020018083116107eb57829003601f168201915b5050505050905090565b60003361082081858561258a565b60019150505b92915050565b3261086a576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a906020015b60405180910390a1505050565b60006002838360008181106108815761088161530f565b9050602002013510156108af57828260028181106108a1576108a161530f565b905060200201359050610915565b828260008181106108c2576108c261530f565b905060200201356002036108e357828260018181106108a1576108a161530f565b6040517f2fa5440d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61091f818561273d565b610955576040517f2fa5440d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600033610969858285612775565b610974858585612846565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336109ab8282612abc565b610955308585612846565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061082090829086906109fd90879061536d565b61258a565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610a2e8282612abc565b610a39858585612bcc565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610a86610b52565b6040518263ffffffff1660e01b8152600401610aa491815260200190565b600060405180830381865afa158015610ac1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610b079190810190615380565b905090565b6060610b387fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612abc565b610b4787878888888888612d36565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610b82575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461078f906152bc565b6060803215610bc457600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610bfb8282612abc565b60008b67ffffffffffffffff811115610c1657610c16615061565b604051908082528060200260200182016040528015610c3f578160200160208202803683370190505b50905060005b8c811015610d31578d8d82818110610c5f57610c5f61530f565b9050602002016020810190610c749190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d04919061540f565b828281518110610d1657610d1661530f565b6020908102919091010152610d2a81615428565b9050610c45565b50610d6b8d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610d8657610d86615061565b604051908082528060200260200182016040528015610daf578160200160208202803683370190505b50905060005b8d811015610ea1578e8e82818110610dcf57610dcf61530f565b9050602002016020810190610de49190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e74919061540f565b828281518110610e8657610e8661530f565b6020908102919091010152610e9a81615428565b9050610db5565b506000610ee28d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612da3915050565b9050610ef18f8f848d8d612fbd565b6000610f3e8e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612da3565b90506000610f4c83836130e2565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610f7a8585615460565b8787604051610f8c9493929190615473565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610974828686840361258a565b60408051600180825281830190925260609160009190602080830190803683370190505090506001816000815181106110ba576110ba61530f565b6020908102919091010152919050565b600033610820818585612846565b61110a6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6111347fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612abc565b60008061114460608501856154a4565b905067ffffffffffffffff81111561115e5761115e615061565b604051908082528060200260200182016040528015611187578160200160208202803683370190505b50905060005b61119a60608601866154a4565b90508110156112b2576111b060608601866154a4565b828181106111c0576111c061530f565b90506020020160208101906111d59190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611241573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611265919061540f565b8282815181106112775761127761530f565b60200260200101818152505060008282815181106112975761129761530f565b602002602001015111156112aa57600192505b60010161118d565b506112c48161062260408701876154a4565b6112d960a085013561031360408701876154a4565b6112e1614b68565b6112ef856101000135613170565b6040850152600061132c61130660608801886154a4565b61131360208a018a6154a4565b61132060408c018c6154a4565b60009695505050505050565b905064e8d4a51000856040015182611344919061550c565b61134e9190615587565b61135890826155ef565b8560400181815161136991906155ef565b905250506040840151611380906101208701613195565b506113d961139160808701876154a4565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506113d492505050610100880160e08901614d7c565b612da3565b81526000808060a0880135861561152a5760006113fd6101008b0160e08c01614d7c565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61142560608d018d6154a4565b8a8e806080019061143691906154a4565b6040518663ffffffff1660e01b815260040161145695949392919061560f565b602060405180830381865afa158015611473573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611497919061540f565b905064e8d4a510006114a860355490565b10156114c1576114ba816103e86156c7565b9350611514565b8551156114e25785516035546114d89083906156c7565b6114ba91906156de565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561152457839450611528565b8194505b505b600061153960608b018b6154a4565b905067ffffffffffffffff81111561155357611553615061565b60405190808252806020026020018201604052801561157c578160200160208202803683370190505b5090506000828511156119c757851561163d5760005b61159f60608d018d6154a4565b90508110156116375785878a83815181106115bc576115bc61530f565b602002602001015102816115d2576115d2615558565b048382815181106115e5576115e561530f565b6020026020010181815250508281815181106116035761160361530f565b602002602001015189828151811061161d5761161d61530f565b602090810291909101018051919091039052600101611592565b50600190505b6000885167ffffffffffffffff81111561165957611659615061565b604051908082528060200260200182016040528015611682578160200160208202803683370190505b50905060006116918d806154a4565b90501115611867576116fa6116a960608e018e6154a4565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061095591906154a4565b60005b61170a60608e018e6154a4565b9050811015611861578981815181106117255761172561530f565b602002602001015182828151811061173f5761173f61530f565b60200260200101818152505083818151811061175d5761175d61530f565b60200260200101518d806060019061177591906154a4565b838181106117855761178561530f565b905060200201602081019061179a9190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a919061540f565b6118349190615460565b8a82815181106118465761184661530f565b602090810291909101015261185a81615428565b90506116fd565b506118c9565b60005b61187760608e018e6154a4565b90508110156118c7578981815181106118925761189261530f565b60200260200101518282815181106118ac576118ac61530f565b60209081029190910101526118c081615428565b905061186a565b505b6118ef6118d960608e018e6154a4565b8b8f80604001906118ea91906154a4565b612fbd565b6119526118ff60808e018e6154a4565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906113d49190614d7c565b602089018190528851611964916130e2565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc91879161199b91615460565b838c6040516119ad9493929190615473565b60405180910390a16119bf878661536d565b945050611c1e565b84831115611baf5785156119de5785830392508593505b611a046119ee60608d018d6154a4565b858e80604001906119ff91906154a4565b61330f565b611a0e30846134d8565b506001611a64611a2160808d018d6154a4565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506113d4925050506101008e0160e08f01614d7c565b602088015260005b611a7960608d018d6154a4565b9050811015611b6957611a8f60608d018d6154a4565b82818110611a9f57611a9f61530f565b9050602002016020810190611ab49190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b44919061540f565b838281518110611b5657611b5661530f565b6020908102919091010152600101611a6c565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611ba29186919086906156f2565b60405180910390a1611c1e565b8515611c165782935060005b611bc860608d018d6154a4565b9050811015611c1057888181518110611be357611be361530f565b6020026020010151838281518110611bfd57611bfd61530f565b6020908102919091010152600101611bbb565b50600190505b865160208801525b8015611cc65760005b611c3460608d018d6154a4565b9050811015611cc457611cbc611c5060e08e0160c08f01614d7c565b848381518110611c6257611c6261530f565b60200260200101518e8060600190611c7a91906154a4565b85818110611c8a57611c8a61530f565b9050602002016020810190611c9f9190614d7c565b73ffffffffffffffffffffffffffffffffffffffff16919061369e565b600101611c27565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307a2d13a9082906370a0823190602401602060405180830381865afa158015611da5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc9919061540f565b6040518263ffffffff1660e01b8152600401611de791815260200190565b602060405180830381865afa158015611e04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e28919061540f565b81600081518110611e3b57611e3b61530f565b60200260200101818152505090565b32611ee8576040805160018082528183019092526000916020808301908036833701905050905083600081518110611e8457611e8461530f565b602002602001015181600081518110611e9f57611e9f61530f565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611eda9190614eb9565b60405180910390a150505050565b600282826000818110611efd57611efd61530f565b905060200201351115611f3c576040517fea9a553600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f7982826001818110611f5257611f5261530f565b9050602002013584600081518110611f6c57611f6c61530f565b602002602001015161273d565b611faf576040517fea9a553600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611fe28282612abc565b611fec8585612da3565b92505b505092915050565b60606096805461078f906152bc565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336120328282612abc565b610955843085612846565b600054610100900460ff161580801561205d5750600054600160ff909116105b806120775750303b158015612077575060005460ff166001145b612103576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611069565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561216157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6121a083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250613772915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6121e6610b52565b6040518263ffffffff1660e01b815260040161220491815260200190565b600060405180830381865afa158015612221573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526122679190810190615380565b9050805160011415806122e057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816000815181106122bf576122bf61530f565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15612322576122ed610b52565b6040517f4b1f57ad00000000000000000000000000000000000000000000000000000000815260040161106991815260200190565b61232a6139f8565b609855508015611faf57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161085d565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa158015612440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124649190615711565b15801561254257506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa15801561251c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125409190615711565b155b1561257b576040517f7ab612a3000000000000000000000000000000000000000000000000000000008152336004820152602401611069565b610b4787308888888888612d36565b73ffffffffffffffffffffffffffffffffffffffff831661262c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff82166126cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061275b6001700100000000000000000000000000000000615460565b831682108061276d5750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109555781811015612839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401611069565b610955848484840361258a565b73ffffffffffffffffffffffffffffffffffffffff83166128e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff821661298c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612a42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612aaf9086815260200190565b60405180910390a3610955565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b739190615711565b612bc8576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82166024820152604401611069565b5050565b82826000818110612bdf57612bdf61530f565b90506020020135600314612c1f576040517fdfd8a34a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090612cf39073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd4919061540f565b85856001818110612ce757612ce761530f565b90506020020135613ab1565b905061095573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016838361369e565b60606000612d4786868b8787613ce5565b9050612d53888a6134d8565b60005b85811015612d9657612d8e88838381518110612d7457612d7461530f565b6020026020010151898985818110611c8a57611c8a61530f565b600101612d56565b5098975050505050505050565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a9082906370a0823190602401602060405180830381865afa158015612e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5e919061540f565b6040518263ffffffff1660e01b8152600401612e7c91815260200190565b602060405180830381865afa158015612e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebd919061540f565b90508273ffffffffffffffffffffffffffffffffffffffff16639115900c7f00000000000000000000000000000000000000000000000000000000000000008387600081518110612f1057612f1061530f565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fb5919061540f565b949350505050565b600082826000818110612fd257612fd261530f565b905060200201356000036130015782826003818110612ff357612ff361530f565b905060200201359050613067565b828260008181106130145761301461530f565b905060200201356002036130355782826002818110612ff357612ff361530f565b6040517f89c2503000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81036130b6576130b1846000815181106130a4576130a461530f565b6020026020010151613f46565b6130da565b6130da846000815181106130cc576130cc61530f565b602002602001015182614001565b505050505050565b6000806130ee60355490565b905064e8d4a51000811015613136576131096103e8846156c7565b915064e8d4a510008190038083101561311f5750815b808303925061313061dead82614229565b5061315f565b83156114e25783816131488286615460565b61315291906156c7565b61315c91906156de565b91505b6131693083614229565b5092915050565b60008061317b6139f8565b90506131896098548261431e565b60989190915592915050565b600080831315610826578260006131b364e8d4a510006127106156c7565b6131c36080860160608701615733565b6bffffffffffffffffffffffff166131e16040870160208801615733565b6131fb906bffffffffffffffffffffffff16612710615460565b6132059190615460565b61320f90846156c7565b613219919061536d565b905060008261322760355490565b61323191906156c7565b90506000826132466040880160208901615733565b61325e906bffffffffffffffffffffffff16846156c7565b61326891906156de565b905061328061327a6020880188614d7c565b82614229565b6000836132936080890160608a01615733565b6132ab906bffffffffffffffffffffffff16856156c7565b6132b591906156de565b90506132ca61327a6060890160408a01614d7c565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b6000828260008181106133245761332461530f565b9050602002013560010361335357828260038181106133455761334561530f565b9050602002013590506133f3565b828260008181106133665761336661530f565b9050602002013560020361338757828260028181106133455761334561530f565b8282600081811061339a5761339a61530f565b905060200201356003036133bb57828260018181106133455761334561530f565b32156133f3576040517fdfd8a34a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006133fe60355490565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015286907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561348a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ae919061540f565b6134b891906156c7565b6134c291906156de565b90506134ce8183613ab1565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff821661357b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401611069565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611faf9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614391565b600054610100900460ff16613809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611069565b8151600003613844576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006138aa57806138a0576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60978190556138e2565b80156138e2576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e613926610b52565b6040518263ffffffff1660e01b815260040161394491815260200190565b60006040518083038186803b15801561395c57600080fd5b505afa158015613970573d6000803e3d6000fd5b50505050816096908161398391906157a7565b50612bc86040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f535354000000000000000000000000000000000000000000000000000000000081525061449d565b6040517f07a2d13a000000000000000000000000000000000000000000000000000000008152670de0b6b3a764000060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307a2d13a90602401602060405180830381865afa158015613a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b07919061540f565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810183905230602482018190526044820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015613b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b74919061540f565b9050613bc17f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008361453e565b6040517f3df02124000000000000000000000000000000000000000000000000000000008152600160048201526000602482015260448101829052606481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690633df02124906084016020604051808303816000875af1158015613c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c87919061540f565b9150613c9282614569565b326131695760408051600080825260208201859052606082840181905282015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15092915050565b60608467ffffffffffffffff811115613d0057613d00615061565b604051908082528060200260200182016040528015613d29578160200160208202803683370190505b50905060005b85811015613e1b57868682818110613d4957613d4961530f565b9050602002016020810190613d5e9190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dee919061540f565b828281518110613e0057613e0061530f565b6020908102919091010152613e1481615428565b9050613d2f565b50613e29868686868661330f565b60005b85811015613f3c57818181518110613e4657613e4661530f565b6020026020010151878783818110613e6057613e6061530f565b9050602002016020810190613e759190614d7c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f05919061540f565b613f0f9190615460565b828281518110613f2157613f2161530f565b6020908102919091010152613f3581615428565b9050613e2c565b5095945050505050565b613f4f816145e5565b6040517f4dcd45470000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690634dcd454790839060240160206040518083038185885af1158015613fdc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612bc8919061540f565b61400a826145e5565b6040517f3df021240000000000000000000000000000000000000000000000000000000081526000600482018190526001602483015260448201849052606482018390529073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690633df0212490859060840160206040518083038185885af11580156140b0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906140d5919061540f565b90506141227f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008361453e565b6040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af11580156141b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d9919061540f565b5032611faf5760408051600181526020810183905260609181018290526000918101919091527f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909060800161085d565b73ffffffffffffffffffffffffffffffffffffffff82166142a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401611069565b80603560008282546142b8919061536d565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115614354578264e8d4a510006143398285615460565b61434391906156c7565b61434d91906156de565b9050610826565b81831115610826578264e8d4a5100061436d8483615460565b61437791906156c7565b61438191906156de565b61438a906158c1565b9392505050565b60006143f3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166146819092919063ffffffff16565b805190915015611faf57808060200190518101906144119190615711565b611faf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611069565b600054610100900460ff16614534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611069565b612bc88282614690565b6145488383614740565b611faf73ffffffffffffffffffffffffffffffffffffffff841683836147fe565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156145d157600080fd5b505af11580156130da573d6000803e3d6000fd5b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b15801561466d57600080fd5b505af1158015610a39573d6000803e3d6000fd5b6060612fb58484600085614980565b600054610100900460ff16614727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611069565b603661473383826157a7565b506037611faf82826157a7565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156147b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147da919061540f565b1115612bc857612bc873ffffffffffffffffffffffffffffffffffffffff83168260005b80158061489e57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061489c919061540f565b155b61492a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401611069565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611faf9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016136f0565b606082471015614a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401611069565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614a3b91906158f9565b60006040518083038185875af1925050503d8060008114614a78576040519150601f19603f3d011682016040523d82523d6000602084013e614a7d565b606091505b5091509150610b478783838760608315614b1f578251600003614b185773ffffffffffffffffffffffffffffffffffffffff85163b614b18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611069565b5081612fb5565b612fb58383815115614b345781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110699190614baa565b60405180604001604052806002906020820280368337509192915050565b60005b83811015614ba1578181015183820152602001614b89565b50506000910152565b6020815260008251806020840152614bc9816040850160208701614b86565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114614c1d57600080fd5b50565b60008060408385031215614c3357600080fd5b8235614c3e81614bfb565b946020939093013593505050565b60008083601f840112614c5e57600080fd5b50813567ffffffffffffffff811115614c7657600080fd5b6020830191508360208260051b8501011115614c9157600080fd5b9250929050565b600080600060408486031215614cad57600080fd5b83359250602084013567ffffffffffffffff811115614ccb57600080fd5b614cd786828701614c4c565b9497909650939450505050565b600080600060608486031215614cf957600080fd5b8335614d0481614bfb565b92506020840135614d1481614bfb565b929592945050506040919091013590565b600080600060408486031215614d3a57600080fd5b833567ffffffffffffffff811115614d5157600080fd5b614d5d86828701614c4c565b9094509250506020840135614d7181614bfb565b809150509250925092565b600060208284031215614d8e57600080fd5b813561438a81614bfb565b600081518084526020808501945080840160005b83811015614ddf57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614dad565b509495945050505050565b60208152600061438a6020830184614d99565b60008060008060008060808789031215614e1657600080fd5b863595506020870135614e2881614bfb565b9450604087013567ffffffffffffffff80821115614e4557600080fd5b614e518a838b01614c4c565b90965094506060890135915080821115614e6a57600080fd5b50614e7789828a01614c4c565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614ddf57815187529582019590820190600101614e9d565b60208152600061438a6020830184614e89565b604081526000614edf6040830185614d99565b8281036020840152614ef18185614e89565b95945050505050565b600080600080600080600080600060a08a8c031215614f1857600080fd5b893567ffffffffffffffff80821115614f3057600080fd5b614f3c8d838e01614c4c565b909b50995060208c0135915080821115614f5557600080fd5b614f618d838e01614c4c565b909950975060408c01359150614f7682614bfb565b90955060608b01359080821115614f8c57600080fd5b614f988d838e01614c4c565b909650945060808c0135915080821115614fb157600080fd5b50614fbe8c828d01614c4c565b915080935050809150509295985092959850929598565b600060208284031215614fe757600080fd5b813567ffffffffffffffff811115614ffe57600080fd5b82016101a0818503121561438a57600080fd5b60208152815160208201526000602083015160a0604084015261503760c0840182614e89565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156150d7576150d7615061565b604052919050565b600067ffffffffffffffff8211156150f9576150f9615061565b5060051b60200190565b600082601f83011261511457600080fd5b81356020615129615124836150df565b615090565b82815260059290921b8401810191818101908684111561514857600080fd5b8286015b84811015615163578035835291830191830161514c565b509695505050505050565b60008060006040848603121561518357600080fd5b833567ffffffffffffffff8082111561519b57600080fd5b6151a787838801615103565b945060208601359150808211156151bd57600080fd5b50614cd786828701614c4c565b600080604083850312156151dd57600080fd5b823567ffffffffffffffff8111156151f457600080fd5b61520085828601615103565b925050602083013561521181614bfb565b809150509250929050565b6000806040838503121561522f57600080fd5b823561523a81614bfb565b9150602083013561521181614bfb565b6000806020838503121561525d57600080fd5b823567ffffffffffffffff8082111561527557600080fd5b818501915085601f83011261528957600080fd5b81358181111561529857600080fd5b8660208285010111156152aa57600080fd5b60209290920196919550909350505050565b600181811c908216806152d057607f821691505b602082108103615309577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156108265761082661533e565b6000602080838503121561539357600080fd5b825167ffffffffffffffff8111156153aa57600080fd5b8301601f810185136153bb57600080fd5b80516153c9615124826150df565b81815260059190911b820183019083810190878311156153e857600080fd5b928401925b82841015610b4757835161540081614bfb565b825292840192908401906153ed565b60006020828403121561542157600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036154595761545961533e565b5060010190565b818103818111156108265761082661533e565b8481528360208201526080604082015260006154926080830185614e89565b8281036060840152610b478185614e89565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126154d957600080fd5b83018035915067ffffffffffffffff8211156154f457600080fd5b6020019150600581901b3603821315614c9157600080fd5b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156155445761554461533e565b81810583148215176108265761082661533e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261559657615596615558565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156155ea576155ea61533e565b500590565b8082018281126000831280158216821582161715611fef57611fef61533e565b6060808252810185905260008660808301825b8881101561565f57823561563581614bfb565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101615622565b5083810360208501526156728188614e89565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156156ad57600080fd5b8360051b8086602084013701602001979650505050505050565b80820281158282048414176108265761082661533e565b6000826156ed576156ed615558565b500490565b838152826020820152606060408201526000614ef16060830184614e89565b60006020828403121561572357600080fd5b8151801515811461438a57600080fd5b60006020828403121561574557600080fd5b81356bffffffffffffffffffffffff8116811461438a57600080fd5b601f821115611faf57600081815260208120601f850160051c810160208610156157885750805b601f850160051c820191505b818110156130da57828155600101615794565b815167ffffffffffffffff8111156157c1576157c1615061565b6157d5816157cf84546152bc565b84615761565b602080601f83116001811461582857600084156157f25750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556130da565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561587557888601518255948401946001909101908401615856565b50858210156158b157878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60007f800000000000000000000000000000000000000000000000000000000000000082036158f2576158f261533e565b5060000390565b6000825161590b818460208701614b86565b919091019291505056fea2646970667358221220a2a6455201cde2b9810ca2b5329559fc57b51557638b9724aa96bbfe4d18d5e964736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd1300000000000000000000000000000000000000000000000000000000000000010000000000000000000000005e8422345238f34275888049021821e8e08caa1f000000000000000000000000ac3e018457b222d93114458476f3e3416abbe38f000000000000000000000000bafa44efe7901e04e39dad13167d089c559c1138000000000000000000000000a1f8a6807c402e4a15ef4eba36528a3fed24e577000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0x2e", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa511bed51b1e8aced81d0d1de677c77553a9a9b7c13fff0352b46b84b66e46ff", + "transactionType": "CREATE", + "contractName": "StEthHoldingStrategy", + "contractAddress": "0xc4962991713ff1e5EF4Ac4BA6f5B2292D5b65383", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "1", + "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", + "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022", + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x5ffdf7", + "value": "0x0", + "data": "0x6101406040523480156200001257600080fd5b50604051620059b0380380620059b0833981016040819052620000359162000150565b80868686816001600160a01b038116620000625760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b039081166080528316620000905760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0392831660a05260c052508116620000c25760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660e0528316620000f05760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b038216620001185760405163bb0e4c3560e01b815260040160405180910390fd5b506001600160a01b0391821661010052166101205250620001d8915050565b6001600160a01b03811681146200014d57600080fd5b50565b60008060008060008060c087890312156200016a57600080fd5b8651620001778162000137565b60208801519096506200018a8162000137565b604088015160608901519196509450620001a48162000137565b6080880151909350620001b78162000137565b60a0880151909250620001ca8162000137565b809150509295509295509295565b60805160a05160c05160e05161010051610120516156f5620002bb600039600081816104b301528181613a0101528181613a6a0152613ed101526000818161034401528181611d7c01528181612c0d01528181612db90152818161335601528181613959015281816139e00152613dfb0152600081816103f40152818161221701528181612cb301528181612d97015281816142cc0152614375015260008181610b9201528181610bc0015261376e015260008181610a2901528181612144015261380c01526000818161238c015281816124680152612ab001526156f56000f3fe6080604052600436106102385760003560e01c80637817bf4a11610138578063c1a0ff4c116100b0578063e173ad251161007f578063eef0cbca11610064578063eef0cbca14610710578063f62d188814610725578063fc195d8c1461074557600080fd5b8063e173ad25146106db578063ebbd6bc7146106f057600080fd5b8063c1a0ff4c14610633578063c1a7d80e14610648578063c8d31e7414610668578063dd62ed3e1461068857600080fd5b8063a3ea6c9711610107578063a63e8c4b116100ec578063a63e8c4b146105d1578063a9059cbb146105e6578063beef8a711461060657600080fd5b8063a3ea6c9714610591578063a457c2d7146105b157600080fd5b80637817bf4a1461051757806384ba89e31461054457806395d89b41146105595780639b6aaa471461056e57600080fd5b8063313ce567116101cb5780636c60d9e71161019a5780637165485d1161017f5780637165485d146104a157806371a97305146104d5578063773f400e146104f757600080fd5b80636c60d9e71461043e57806370a082311461045e57600080fd5b8063313ce567146103a657806339509351146103c25780633fc8cef3146103e25780635846a9e21461041657600080fd5b806318160ddd1161020757806318160ddd1461031357806323509a2d1461033257806323b872dd146103665780632ce5183f1461038657600080fd5b806306fdde0314610244578063095ea7b31461026f5780631441a5a91461029f5780631480fce3146102f157600080fd5b3661023f57005b600080fd5b34801561025057600080fd5b50610259610765565b6040516102669190614913565b60405180910390f35b34801561027b57600080fd5b5061028f61028a366004614989565b6107f7565b6040519015158152602001610266565b3480156102ab57600080fd5b506099546102cc9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610266565b3480156102fd57600080fd5b5061031161030c366004614a01565b610811565b005b34801561031f57600080fd5b506035545b604051908152602001610266565b34801561033e57600080fd5b506102cc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561037257600080fd5b5061028f610381366004614a4d565b610940565b34801561039257600080fd5b506103116103a1366004614989565b610964565b3480156103b257600080fd5b5060405160128152602001610266565b3480156103ce57600080fd5b5061028f6103dd366004614989565b61099b565b3480156103ee57600080fd5b506102cc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561042257600080fd5b5061042b600181565b604051600f9190910b8152602001610266565b34801561044a57600080fd5b50610311610459366004614a8e565b6109e7565b34801561046a57600080fd5b50610324610479366004614ae5565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b3480156104ad57600080fd5b506102cc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e157600080fd5b506104ea610a25565b6040516102669190614b53565b34801561050357600080fd5b50610311610512366004614ae5565b610af1565b34801561052357600080fd5b50610537610532366004614b66565b610b47565b6040516102669190614c22565b34801561055057600080fd5b50610324610b8d565b34801561056557600080fd5b50610259610be2565b34801561057a57600080fd5b50610583610bf1565b604051610266929190614c35565b34801561059d57600080fd5b506103246105ac366004614c63565b610c08565b3480156105bd57600080fd5b5061028f6105cc366004614989565b610fe4565b3480156105dd57600080fd5b506105376110ba565b3480156105f257600080fd5b5061028f610601366004614989565b611105565b34801561061257600080fd5b50610626610621366004614d3e565b611113565b6040516102669190614d7a565b34801561063f57600080fd5b50610537611d2b565b34801561065457600080fd5b50610311610663366004614ed7565b611e1e565b34801561067457600080fd5b50610324610683366004614f33565b611f88565b34801561069457600080fd5b506103246106a3366004614f85565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b3480156106e757600080fd5b50610259611fcb565b3480156106fc57600080fd5b5061031161070b366004614989565b611fda565b34801561071c57600080fd5b5061042b600081565b34801561073157600080fd5b50610311610740366004614fb3565b612011565b34801561075157600080fd5b50610537610760366004614b66565b612335565b60606036805461077490615066565b80601f01602080910402602001604051908101604052809291908181526020018280546107a090615066565b80156107ed5780601f106107c2576101008083540402835291602001916107ed565b820191906000526020600020905b8154815290600101906020018083116107d057829003601f168201915b5050505050905090565b600033610805818585612532565b60019150505b92915050565b3261084f576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a906020015b60405180910390a1505050565b6000600283836000818110610866576108666150b9565b9050602002013510156108945782826002818110610886576108866150b9565b9050602002013590506108fa565b828260008181106108a7576108a76150b9565b905060200201356002036108c85782826001818110610886576108866150b9565b6040517f28c19e1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61090481856126e5565b61093a576040517f28c19e1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60003361094e85828561271d565b6109598585856127ee565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336109908282612a64565b61093a3085856127ee565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061080590829086906109e2908790615117565b612532565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610a138282612a64565b610a1e858585612b70565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610a6b610b8d565b6040518263ffffffff1660e01b8152600401610a8991815260200190565b600060405180830381865afa158015610aa6573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610aec919081019061512a565b905090565b600033610afe8282612a64565b5050609980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610b737fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612a64565b610b8287878888888888612cda565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610bbd575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b60606037805461077490615066565b6060803215610bff57600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610c368282612a64565b60008b67ffffffffffffffff811115610c5157610c51614dca565b604051908082528060200260200182016040528015610c7a578160200160208202803683370190505b50905060005b8c811015610d6c578d8d82818110610c9a57610c9a6150b9565b9050602002016020810190610caf9190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3f91906151b9565b828281518110610d5157610d516150b9565b6020908102919091010152610d65816151d2565b9050610c80565b50610da68d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff811115610dc157610dc1614dca565b604051908082528060200260200182016040528015610dea578160200160208202803683370190505b50905060005b8d811015610edc578e8e82818110610e0a57610e0a6150b9565b9050602002016020810190610e1f9190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610e8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaf91906151b9565b828281518110610ec157610ec16150b9565b6020908102919091010152610ed5816151d2565b9050610df0565b506000610f1d8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250612d47915050565b9050610f2c8f8f848d8d612ee5565b6000610f798e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d612d47565b90506000610f87838361300a565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81610fb5858561520a565b8787604051610fc7949392919061521d565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156110ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6109598286868403612532565b60408051600180825281830190925260609160009190602080830190803683370190505090506001816000815181106110f5576110f56150b9565b6020908102919091010152919050565b6000336108058185856127ee565b6111456040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b61116f7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612a64565b60008061117f606085018561524e565b905067ffffffffffffffff81111561119957611199614dca565b6040519080825280602002602001820160405280156111c2578160200160208202803683370190505b50905060005b6111d5606086018661524e565b90508110156112ed576111eb606086018661524e565b828181106111fb576111fb6150b9565b90506020020160208101906112109190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa15801561127c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a091906151b9565b8282815181106112b2576112b26150b9565b60200260200101818152505060008282815181106112d2576112d26150b9565b602002602001015111156112e557600192505b6001016111c8565b506112ff81610663604087018761524e565b61131460a085013561030c604087018761524e565b61131c6148d1565b61132a856101000135613098565b60408501526000611367611341606088018861524e565b61134e60208a018a61524e565b61135b60408c018c61524e565b60009695505050505050565b905064e8d4a5100085604001518261137f91906152b6565b6113899190615331565b6113939082615399565b856040018181516113a49190615399565b9052505060408401516113bb9061012087016130bd565b506114146113cc608087018761524e565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061140f92505050610100880160e08901614ae5565b612d47565b81526000808060a088013586156115655760006114386101008b0160e08c01614ae5565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f61146060608d018d61524e565b8a8e8060800190611471919061524e565b6040518663ffffffff1660e01b81526004016114919594939291906153b9565b602060405180830381865afa1580156114ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d291906151b9565b905064e8d4a510006114e360355490565b10156114fc576114f5816103e8615471565b935061154f565b85511561151d578551603554611513908390615471565b6114f59190615488565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184101561155f57839450611563565b8194505b505b600061157460608b018b61524e565b905067ffffffffffffffff81111561158e5761158e614dca565b6040519080825280602002602001820160405280156115b7578160200160208202803683370190505b509050600082851115611a025785156116785760005b6115da60608d018d61524e565b90508110156116725785878a83815181106115f7576115f76150b9565b6020026020010151028161160d5761160d615302565b04838281518110611620576116206150b9565b60200260200101818152505082818151811061163e5761163e6150b9565b6020026020010151898281518110611658576116586150b9565b6020908102919091010180519190910390526001016115cd565b50600190505b6000885167ffffffffffffffff81111561169457611694614dca565b6040519080825280602002602001820160405280156116bd578160200160208202803683370190505b50905060006116cc8d8061524e565b905011156118a2576117356116e460608e018e61524e565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e806000019061093a919061524e565b60005b61174560608e018e61524e565b905081101561189c57898181518110611760576117606150b9565b602002602001015182828151811061177a5761177a6150b9565b602002602001018181525050838181518110611798576117986150b9565b60200260200101518d80606001906117b0919061524e565b838181106117c0576117c06150b9565b90506020020160208101906117d59190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611841573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186591906151b9565b61186f919061520a565b8a8281518110611881576118816150b9565b6020908102919091010152611895816151d2565b9050611738565b50611904565b60005b6118b260608e018e61524e565b9050811015611902578981815181106118cd576118cd6150b9565b60200260200101518282815181106118e7576118e76150b9565b60209081029190910101526118fb816151d2565b90506118a5565b505b61192a61191460608e018e61524e565b8b8f8060400190611925919061524e565b612ee5565b61198d61193a60808e018e61524e565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e001602081019061140f9190614ae5565b60208901819052885161199f9161300a565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc9187916119d69161520a565b838c6040516119e8949392919061521d565b60405180910390a16119fa8786615117565b945050611c59565b84831115611bea578515611a195785830392508593505b611a3f611a2960608d018d61524e565b858e8060400190611a3a919061524e565b613237565b611a493084613400565b506001611a9f611a5c60808d018d61524e565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061140f925050506101008e0160e08f01614ae5565b602088015260005b611ab460608d018d61524e565b9050811015611ba457611aca60608d018d61524e565b82818110611ada57611ada6150b9565b9050602002016020810190611aef9190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f91906151b9565b838281518110611b9157611b916150b9565b6020908102919091010152600101611aa7565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611bdd91869190869061549c565b60405180910390a1611c59565b8515611c515782935060005b611c0360608d018d61524e565b9050811015611c4b57888181518110611c1e57611c1e6150b9565b6020026020010151838281518110611c3857611c386150b9565b6020908102919091010152600101611bf6565b50600190505b865160208801525b8015611d015760005b611c6f60608d018d61524e565b9050811015611cff57611cf7611c8b60e08e0160c08f01614ae5565b848381518110611c9d57611c9d6150b9565b60200260200101518e8060600190611cb5919061524e565b85818110611cc557611cc56150b9565b9050602002016020810190611cda9190614ae5565b73ffffffffffffffffffffffffffffffffffffffff1691906135c6565b600101611c62565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b60408051600180825281830190925260609160208083019080368337019050506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfc91906151b9565b81600081518110611e0f57611e0f6150b9565b60200260200101818152505090565b32611ebc576040805160018082528183019092526000916020808301908036833701905050905083600081518110611e5857611e586150b9565b602002602001015181600081518110611e7357611e736150b9565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051611eae9190614c22565b60405180910390a150505050565b600282826000818110611ed157611ed16150b9565b905060200201351115611f10576040517f22eb798400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f4d82826001818110611f2657611f266150b9565b9050602002013584600081518110611f4057611f406150b9565b60200260200101516126e5565b611f83576040517f22eb798400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633611fb68282612a64565b611fc08585612d47565b92505b505092915050565b60606096805461077490615066565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336120068282612a64565b61093a8430856127ee565b600054610100900460ff16158080156120315750600054600160ff909116105b8061204b5750303b15801561204b575060005460ff166001145b6120d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110a4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561213557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61214082600061369a565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a612186610b8d565b6040518263ffffffff1660e01b81526004016121a491815260200190565b600060405180830381865afa1580156121c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612207919081019061512a565b90508051600114158061228057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168160008151811061225f5761225f6150b9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156122c25761228d610b8d565b6040517f4b1f57ad0000000000000000000000000000000000000000000000000000000081526004016110a491815260200190565b6122ca613920565b60985550801561233157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c91906154bb565b1580156124ea57506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156124c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e891906154bb565b155b15612523576040517f7ab612a30000000000000000000000000000000000000000000000000000000081523360048201526024016110a4565b610b8287308888888888612cda565b73ffffffffffffffffffffffffffffffffffffffff83166125d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff8216612677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000612703600170010000000000000000000000000000000061520a565b83168210806127155750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461093a57818110156127e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016110a4565b61093a8484848403612532565b73ffffffffffffffffffffffffffffffffffffffff8316612891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff8216612934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040902054818110156129ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612a579086815260200190565b60405180910390a361093a565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1b91906154bb565b612331576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff821660248201526044016110a4565b82826000818110612b8357612b836150b9565b90506020020135600314612bc3576040517f04a85bad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090612c979073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7891906151b9565b85856001818110612c8b57612c8b6150b9565b905060200201356139d9565b905061093a73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683836135c6565b60606000612ceb86868b8787613b49565b9050612cf7888a613400565b60005b85811015612d3a57612d3288838381518110612d1857612d186150b9565b6020026020010151898985818110611cc557611cc56150b9565b600101612cfa565b5098975050505050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff80841691639115900c917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015612e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2691906151b9565b86600081518110612e3957612e396150b9565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015612eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ede91906151b9565b9392505050565b600082826000818110612efa57612efa6150b9565b90506020020135600003612f295782826003818110612f1b57612f1b6150b9565b905060200201359050612f8f565b82826000818110612f3c57612f3c6150b9565b90506020020135600203612f5d5782826002818110612f1b57612f1b6150b9565b6040517fbda2248900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8103612fde57612fd984600081518110612fcc57612fcc6150b9565b6020026020010151613daa565b613002565b61300284600081518110612ff457612ff46150b9565b602002602001015182613e6c565b505050505050565b60008061301660355490565b905064e8d4a5100081101561305e576130316103e884615471565b915064e8d4a51000819003808310156130475750815b808303925061305861dead82613f91565b50613087565b831561151d578381613070828661520a565b61307a9190615471565b6130849190615488565b91505b6130913083613f91565b5092915050565b6000806130a3613920565b90506130b160985482614086565b60989190915592915050565b60008083131561080b578260006130db64e8d4a51000612710615471565b6130eb60808601606087016154dd565b6bffffffffffffffffffffffff1661310960408701602088016154dd565b613123906bffffffffffffffffffffffff1661271061520a565b61312d919061520a565b6131379084615471565b6131419190615117565b905060008261314f60355490565b6131599190615471565b905060008261316e60408801602089016154dd565b613186906bffffffffffffffffffffffff1684615471565b6131909190615488565b90506131a86131a26020880188614ae5565b82613f91565b6000836131bb6080890160608a016154dd565b6131d3906bffffffffffffffffffffffff1685615471565b6131dd9190615488565b90506131f26131a26060890160408a01614ae5565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b60008282600081811061324c5761324c6150b9565b9050602002013560010361327b578282600381811061326d5761326d6150b9565b90506020020135905061331b565b8282600081811061328e5761328e6150b9565b905060200201356002036132af578282600281811061326d5761326d6150b9565b828260008181106132c2576132c26150b9565b905060200201356003036132e3578282600181811061326d5761326d6150b9565b321561331b576040517f04a85bad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061332660355490565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015286907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156133b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d691906151b9565b6133e09190615471565b6133ea9190615488565b90506133f681836139d9565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166134a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015613559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016110a4565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611f839084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526140f2565b600054610100900460ff16613731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016110a4565b815160000361376c576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006137d257806137c8576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609781905561380a565b801561380a576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e61384e610b8d565b6040518263ffffffff1660e01b815260040161386c91815260200190565b60006040518083038186803b15801561388457600080fd5b505afa158015613898573d6000803e3d6000fd5b5050505081609690816138ab9190615551565b506123316040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f53535400000000000000000000000000000000000000000000000000000000008152506141fe565b6040517f7a28fb88000000000000000000000000000000000000000000000000000000008152670de0b6b3a764000060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637a28fb8890602401602060405180830381865afa1580156139b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aec91906151b9565b6000613a267f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008561429f565b6040517f3df02124000000000000000000000000000000000000000000000000000000008152600160048201526000602482015260448101849052606481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690633df02124906084016020604051808303816000875af1158015613ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aec91906151b9565b9050613af7816142ca565b3261080b5760408051600080825260208201849052606082840181905282015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a192915050565b60608467ffffffffffffffff811115613b6457613b64614dca565b604051908082528060200260200182016040528015613b8d578160200160208202803683370190505b50905060005b85811015613c7f57868682818110613bad57613bad6150b9565b9050602002016020810190613bc29190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5291906151b9565b828281518110613c6457613c646150b9565b6020908102919091010152613c78816151d2565b9050613b93565b50613c8d8686868686613237565b60005b85811015613da057818181518110613caa57613caa6150b9565b6020026020010151878783818110613cc457613cc46150b9565b9050602002016020810190613cd99190614ae5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613d45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d6991906151b9565b613d73919061520a565b828281518110613d8557613d856150b9565b6020908102919091010152613d99816151d2565b9050613c90565b5095945050505050565b613db381614346565b6099546040517fa1903eab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527f00000000000000000000000000000000000000000000000000000000000000009091169063a1903eab90839060240160206040518083038185885af1158015613e47573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061233191906151b9565b613e7582614346565b6040517f3df021240000000000000000000000000000000000000000000000000000000081526000600482018190526001602483015260448201849052606482018390529073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690633df0212490859060840160206040518083038185885af1158015613f1b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613f4091906151b9565b905032611f835760408051600181526020810183905260609181018290526000918101919091527f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a9090608001610842565b73ffffffffffffffffffffffffffffffffffffffff821661400e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016110a4565b80603560008282546140209190615117565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000828211156140bc578264e8d4a510006140a1828561520a565b6140ab9190615471565b6140b59190615488565b905061080b565b8183111561080b578264e8d4a510006140d5848361520a565b6140df9190615471565b6140e99190615488565b612ede9061566b565b6000614154826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166143e29092919063ffffffff16565b805190915015611f83578080602001905181019061417291906154bb565b611f83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016110a4565b600054610100900460ff16614295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016110a4565b61233182826143f9565b6142a983836144a9565b611f8373ffffffffffffffffffffffffffffffffffffffff84168383614567565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561433257600080fd5b505af1158015613002573d6000803e3d6000fd5b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b1580156143ce57600080fd5b505af1158015610a1e573d6000803e3d6000fd5b60606143f184846000856146e9565b949350505050565b600054610100900460ff16614490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016110a4565b603661449c8382615551565b506037611f838282615551565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa15801561451f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061454391906151b9565b11156123315761233173ffffffffffffffffffffffffffffffffffffffff83168260005b80158061460757506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156145e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061460591906151b9565b155b614693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016110a4565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611f839084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613618565b60608247101561477b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016110a4565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516147a491906156a3565b60006040518083038185875af1925050503d80600081146147e1576040519150601f19603f3d011682016040523d82523d6000602084013e6147e6565b606091505b5091509150610b8287838387606083156148885782516000036148815773ffffffffffffffffffffffffffffffffffffffff85163b614881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016110a4565b50816143f1565b6143f1838381511561489d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a49190614913565b60405180604001604052806002906020820280368337509192915050565b60005b8381101561490a5781810151838201526020016148f2565b50506000910152565b60208152600082518060208401526149328160408501602087016148ef565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461498657600080fd5b50565b6000806040838503121561499c57600080fd5b82356149a781614964565b946020939093013593505050565b60008083601f8401126149c757600080fd5b50813567ffffffffffffffff8111156149df57600080fd5b6020830191508360208260051b85010111156149fa57600080fd5b9250929050565b600080600060408486031215614a1657600080fd5b83359250602084013567ffffffffffffffff811115614a3457600080fd5b614a40868287016149b5565b9497909650939450505050565b600080600060608486031215614a6257600080fd5b8335614a6d81614964565b92506020840135614a7d81614964565b929592945050506040919091013590565b600080600060408486031215614aa357600080fd5b833567ffffffffffffffff811115614aba57600080fd5b614ac6868287016149b5565b9094509250506020840135614ada81614964565b809150509250925092565b600060208284031215614af757600080fd5b8135612ede81614964565b600081518084526020808501945080840160005b83811015614b4857815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614b16565b509495945050505050565b602081526000612ede6020830184614b02565b60008060008060008060808789031215614b7f57600080fd5b863595506020870135614b9181614964565b9450604087013567ffffffffffffffff80821115614bae57600080fd5b614bba8a838b016149b5565b90965094506060890135915080821115614bd357600080fd5b50614be089828a016149b5565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614b4857815187529582019590820190600101614c06565b602081526000612ede6020830184614bf2565b604081526000614c486040830185614b02565b8281036020840152614c5a8185614bf2565b95945050505050565b600080600080600080600080600060a08a8c031215614c8157600080fd5b893567ffffffffffffffff80821115614c9957600080fd5b614ca58d838e016149b5565b909b50995060208c0135915080821115614cbe57600080fd5b614cca8d838e016149b5565b909950975060408c01359150614cdf82614964565b90955060608b01359080821115614cf557600080fd5b614d018d838e016149b5565b909650945060808c0135915080821115614d1a57600080fd5b50614d278c828d016149b5565b915080935050809150509295985092959850929598565b600060208284031215614d5057600080fd5b813567ffffffffffffffff811115614d6757600080fd5b82016101a08185031215612ede57600080fd5b60208152815160208201526000602083015160a06040840152614da060c0840182614bf2565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614e4057614e40614dca565b604052919050565b600067ffffffffffffffff821115614e6257614e62614dca565b5060051b60200190565b600082601f830112614e7d57600080fd5b81356020614e92614e8d83614e48565b614df9565b82815260059290921b84018101918181019086841115614eb157600080fd5b8286015b84811015614ecc5780358352918301918301614eb5565b509695505050505050565b600080600060408486031215614eec57600080fd5b833567ffffffffffffffff80821115614f0457600080fd5b614f1087838801614e6c565b94506020860135915080821115614f2657600080fd5b50614a40868287016149b5565b60008060408385031215614f4657600080fd5b823567ffffffffffffffff811115614f5d57600080fd5b614f6985828601614e6c565b9250506020830135614f7a81614964565b809150509250929050565b60008060408385031215614f9857600080fd5b8235614fa381614964565b91506020830135614f7a81614964565b60006020808385031215614fc657600080fd5b823567ffffffffffffffff80821115614fde57600080fd5b818501915085601f830112614ff257600080fd5b81358181111561500457615004614dca565b615034847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614df9565b9150808252868482850101111561504a57600080fd5b8084840185840137600090820190930192909252509392505050565b600181811c9082168061507a57607f821691505b6020821081036150b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561080b5761080b6150e8565b6000602080838503121561513d57600080fd5b825167ffffffffffffffff81111561515457600080fd5b8301601f8101851361516557600080fd5b8051615173614e8d82614e48565b81815260059190911b8201830190838101908783111561519257600080fd5b928401925b82841015610b825783516151aa81614964565b82529284019290840190615197565b6000602082840312156151cb57600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615203576152036150e8565b5060010190565b8181038181111561080b5761080b6150e8565b84815283602082015260806040820152600061523c6080830185614bf2565b8281036060840152610b828185614bf2565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261528357600080fd5b83018035915067ffffffffffffffff82111561529e57600080fd5b6020019150600581901b36038213156149fa57600080fd5b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156152ee576152ee6150e8565b818105831482151761080b5761080b6150e8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261534057615340615302565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615394576153946150e8565b500590565b8082018281126000831280158216821582161715611fc357611fc36150e8565b6060808252810185905260008660808301825b888110156154095782356153df81614964565b73ffffffffffffffffffffffffffffffffffffffff168252602092830192909101906001016153cc565b50838103602085015261541c8188614bf2565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561545757600080fd5b8360051b8086602084013701602001979650505050505050565b808202811582820484141761080b5761080b6150e8565b60008261549757615497615302565b500490565b838152826020820152606060408201526000614c5a6060830184614bf2565b6000602082840312156154cd57600080fd5b81518015158114612ede57600080fd5b6000602082840312156154ef57600080fd5b81356bffffffffffffffffffffffff81168114612ede57600080fd5b601f821115611f8357600081815260208120601f850160051c810160208610156155325750805b601f850160051c820191505b818110156130025782815560010161553e565b815167ffffffffffffffff81111561556b5761556b614dca565b61557f816155798454615066565b8461550b565b602080601f8311600181146155d2576000841561559c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613002565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561561f57888601518255948401946001909101908401615600565b508582101561565b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60007f8000000000000000000000000000000000000000000000000000000000000000820361569c5761569c6150e8565b5060000390565b600082516156b58184602087016148ef565b919091019291505056fea2646970667358221220ee3e002fea7b58daf0a94dcbd6b880354af443d4f052a6aee5ca7635a557653564736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd130000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f67022000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0x2f", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x1adf9dd022a32a35ab8a26025d1baeff0e84bb40610956913a54ae104d76d0d0", + "transactionType": "CREATE", + "contractName": "YearnV2Strategy", + "contractAddress": "0xb7F6FBbB8d11946951b14cC349DDcF7e11F74D7e", + "function": null, + "arguments": [ + "0x1Aa2a802BA25669531Ffd2b1fF8ae94f3D87f41A", + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13" + ], + "transaction": { + "type": "0x02", + "from": "0x634672c44c695d51332e3ca3ce22803933ac11e9", + "gas": "0x627e79", + "value": "0x0", + "data": "0x60e06040523480156200001157600080fd5b5060405162005ab438038062005ab48339810160408190526200003491620000c3565b81816000816001600160a01b038116620000615760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390811660805283166200008f5760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b0390921660a0525060c05250620001029050565b6001600160a01b0381168114620000c057600080fd5b50565b60008060408385031215620000d757600080fd5b8251620000e481620000aa565b6020840151909250620000f781620000aa565b809150509250929050565b60805160a05160c0516159516200016360003960008181610e2f01528181610e5d0152612c5f015260008181610a1d01528181610d1c01528181612cfd01526131930152600081816123a30152818161247f0152612ac701526159516000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806384ba89e311610104578063beef8a71116100a2578063dd62ed3e11610071578063dd62ed3e14610467578063e173ad25146104ad578063ebbd6bc7146104b5578063fc195d8c146104c857600080fd5b8063beef8a7114610419578063c1a0ff4c14610439578063c1a7d80e14610441578063c8d31e741461045457600080fd5b8063a3ea6c97116100de578063a3ea6c97146103d8578063a457c2d7146103eb578063a63e8c4b146103fe578063a9059cbb1461040657600080fd5b806384ba89e3146103b257806395d89b41146103ba5780639b6aaa47146103c257600080fd5b8063313ce5671161017c5780636c60d9e71161014b5780636c60d9e71461033457806370a082311461034757806371a973051461037d5780637817bf4a1461039257600080fd5b8063313ce567146102b257806339509351146102c15780634c9e6dbf146102d45780634f3bddeb1461032157600080fd5b80631480fce3116101b85780631480fce31461026557806318160ddd1461027a57806323b872dd1461028c5780632ce5183f1461029f57600080fd5b806306fdde03146101df578063095ea7b3146101fd5780630bc0eebe14610220575b600080fd5b6101e76104db565b6040516101f491906149f4565b60405180910390f35b61021061020b366004614a6a565b61056d565b60405190151581526020016101f4565b6098546102409073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b610278610273366004614ae2565b610587565b005b6035545b6040519081526020016101f4565b61021061029a366004614b2e565b6106b5565b6102786102ad366004614a6a565b6106d9565b604051601281526020016101f4565b6102106102cf366004614a6a565b610710565b609854610304907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff90911681526020016101f4565b61027861032f366004614bfd565b61075c565b610278610342366004614cca565b610cda565b61027e610355366004614d21565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b610385610d18565b6040516101f49190614d8f565b6103a56103a0366004614da2565b610de4565b6040516101f49190614e5e565b61027e610e2a565b6101e7610e7f565b6103ca610e8e565b6040516101f4929190614e71565b61027e6103e6366004614e9f565b610ea5565b6102106103f9366004614a6a565b611281565b6103a5611352565b610210610414366004614a6a565b61139d565b61042c610427366004614f7a565b6113ab565b6040516101f49190614fb6565b6103a5611fc3565b61027861044f366004615095565b612167565b61027e6104623660046150f1565b6122c3565b61027e610475366004615143565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6101e7612306565b6102786104c3366004614a6a565b612315565b6103a56104d6366004614da2565b61234c565b6060603680546104ea90615171565b80601f016020809104026020016040519081016040528092919081815260200182805461051690615171565b80156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b5050505050905090565b60003361057b818585612549565b60019150505b92915050565b326105c4576040518381527f0d4fc85ef490d33e67589b22099d3954a460f3ab83b44caad5335d7f2f2c635a9060200160405180910390a1505050565b60006002838360008181106105db576105db6151c4565b90506020020135101561060957828260028181106105fb576105fb6151c4565b90506020020135905061066f565b8282600081811061061c5761061c6151c4565b9050602002013560020361063d57828260018181106105fb576105fb6151c4565b6040517f476fda5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067981856126fc565b6106af576040517f476fda5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000336106c3858285612734565b6106ce858585612805565b506001949350505050565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336107058282612a7b565b6106af308585612805565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061057b9082908690610757908790615222565b612549565b600054610100900460ff161580801561077c5750600054600160ff909116105b806107965750303b158015610796575060005460ff166001145b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561088557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61088f8484612b8b565b73ffffffffffffffffffffffffffffffffffffffff82166108dc576040517fbb0e4c3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155604080517f313ce56700000000000000000000000000000000000000000000000000000000815290516109ab929163313ce5679160048083019260209291908290030181865afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190615235565b6109a690600a61536e565b612e11565b609880546bffffffffffffffffffffffff92909216740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff9283161790556040517fdd0fe31a0000000000000000000000000000000000000000000000000000000081526000917f0000000000000000000000000000000000000000000000000000000000000000169063dd0fe31a90610a5690879060040190815260200190565b600060405180830381865afa158015610a73573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ab9919081019061537a565b905080516001141580610ba25750609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b589190615409565b73ffffffffffffffffffffffffffffffffffffffff1681600081518110610b8157610b816151c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610bdc576040517f4b1f57ad0000000000000000000000000000000000000000000000000000000081526004810185905260240161081e565b609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399530b066040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6d9190615235565b6099555080156106af57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150505050565b7fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233610d068282612a7b565b610d11858585612eb3565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a610d5e610e2a565b6040518263ffffffff1660e01b8152600401610d7c91815260200190565b600060405180830381865afa158015610d99573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ddf919081019061537a565b905090565b6060610e107fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612a7b565b610e1f87878888888888612fba565b979650505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000011610e5a575060975490565b507f000000000000000000000000000000000000000000000000000000000000000090565b6060603780546104ea90615171565b6060803215610e9c57600080fd5b50606091829150565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5633610ed38282612a7b565b60008b67ffffffffffffffff811115610eee57610eee614b6f565b604051908082528060200260200182016040528015610f17578160200160208202803683370190505b50905060005b8c811015611009578d8d82818110610f3757610f376151c4565b9050602002016020810190610f4c9190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdc9190615235565b828281518110610fee57610fee6151c4565b602090810291909101015261100281615426565b9050610f1d565b506110438d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505050565b60008c67ffffffffffffffff81111561105e5761105e614b6f565b604051908082528060200260200182016040528015611087578160200160208202803683370190505b50905060005b8d811015611179578e8e828181106110a7576110a76151c4565b90506020020160208101906110bc9190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114c9190615235565b82828151811061115e5761115e6151c4565b602090810291909101015261117281615426565b905061108d565b5060006111ba8d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250613027915050565b90506111c98f8f848d8d613348565b60006112168e8e80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d613027565b905060006112248383613447565b90507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc81611252858561545e565b87876040516112649493929190615471565b60405180910390a196505050505050509998505050505050505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161081e565b6106ce8286868403612549565b604080516001808252818301909252606091600091906020808301908036833701905050905060018160008151811061138d5761138d6151c4565b6020908102919091010152919050565b60003361057b818585612805565b6113dd6040518060a0016040528060008152602001606081526020016000815260200160008152602001600081525090565b6114077fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded233612a7b565b60008061141760608501856154a2565b905067ffffffffffffffff81111561143157611431614b6f565b60405190808252806020026020018201604052801561145a578160200160208202803683370190505b50905060005b61146d60608601866154a2565b90508110156115855761148360608601866154a2565b82818110611493576114936151c4565b90506020020160208101906114a89190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611514573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115389190615235565b82828151811061154a5761154a6151c4565b602002602001018181525050600082828151811061156a5761156a6151c4565b6020026020010151111561157d57600192505b600101611460565b506115978161044f60408701876154a2565b6115ac60a085013561027360408701876154a2565b6115b46149b2565b6115c28561010001356134d5565b604085015260006115ff6115d960608801886154a2565b6115e660208a018a6154a2565b6115f360408c018c6154a2565b60009695505050505050565b905064e8d4a51000856040015182611617919061550a565b6116219190615585565b61162b90826155ed565b8560400181815161163c91906155ed565b905250506040840151611653906101208701613583565b506116ac61166460808701876154a2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506116a792505050610100880160e08901614d21565b613027565b81526000808060a088013586156117fd5760006116d06101008b0160e08c01614d21565b73ffffffffffffffffffffffffffffffffffffffff1663a2d2657f6116f860608d018d6154a2565b8a8e806080019061170991906154a2565b6040518663ffffffff1660e01b815260040161172995949392919061560d565b602060405180830381865afa158015611746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176a9190615235565b905064e8d4a5100061177b60355490565b10156117945761178d816103e86156c5565b93506117e7565b8551156117b55785516035546117ab9083906156c5565b61178d91906156dc565b6040517f907d9a5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818410156117f7578394506117fb565b8194505b505b600061180c60608b018b6154a2565b905067ffffffffffffffff81111561182657611826614b6f565b60405190808252806020026020018201604052801561184f578160200160208202803683370190505b509050600082851115611c9a5785156119105760005b61187260608d018d6154a2565b905081101561190a5785878a838151811061188f5761188f6151c4565b602002602001015102816118a5576118a5615556565b048382815181106118b8576118b86151c4565b6020026020010181815250508281815181106118d6576118d66151c4565b60200260200101518982815181106118f0576118f06151c4565b602090810291909101018051919091039052600101611865565b50600190505b6000885167ffffffffffffffff81111561192c5761192c614b6f565b604051908082528060200260200182016040528015611955578160200160208202803683370190505b50905060006119648d806154a2565b90501115611b3a576119cd61197c60608e018e6154a2565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508a8e80600001906106af91906154a2565b60005b6119dd60608e018e6154a2565b9050811015611b34578981815181106119f8576119f86151c4565b6020026020010151828281518110611a1257611a126151c4565b602002602001018181525050838181518110611a3057611a306151c4565b60200260200101518d8060600190611a4891906154a2565b83818110611a5857611a586151c4565b9050602002016020810190611a6d9190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd9190615235565b611b07919061545e565b8a8281518110611b1957611b196151c4565b6020908102919091010152611b2d81615426565b90506119d0565b50611b9c565b60005b611b4a60608e018e6154a2565b9050811015611b9a57898181518110611b6557611b656151c4565b6020026020010151828281518110611b7f57611b7f6151c4565b6020908102919091010152611b9381615426565b9050611b3d565b505b611bc2611bac60608e018e6154a2565b8b8f8060400190611bbd91906154a2565b613348565b611c25611bd260808e018e6154a2565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508d60e00160208101906116a79190614d21565b602089018190528851611c3791613447565b885160208a01519196507fef3370e7b2b7c0f8f907344d48c31e679e6ff7ff055cad7846daf5ca2d5b30dc918791611c6e9161545e565b838c604051611c809493929190615471565b60405180910390a1611c928786615222565b945050611ef1565b84831115611e82578515611cb15785830392508593505b611cd7611cc160608d018d6154a2565b858e8060400190611cd291906154a2565b6136fd565b611ce1308461389f565b506001611d37611cf460808d018d6154a2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506116a7925050506101008e0160e08f01614d21565b602088015260005b611d4c60608d018d6154a2565b9050811015611e3c57611d6260608d018d6154a2565b82818110611d7257611d726151c4565b9050602002016020810190611d879190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e179190615235565b838281518110611e2957611e296151c4565b6020908102919091010152600101611d3f565b5060208701516040517f8b1b306a5c3a19617717b1f37f2b4bea82978af8db2e859975f665fc40bc74b391611e759186919086906156f0565b60405180910390a1611ef1565b8515611ee95782935060005b611e9b60608d018d6154a2565b9050811015611ee357888181518110611eb657611eb66151c4565b6020026020010151838281518110611ed057611ed06151c4565b6020908102919091010152600101611e8e565b50600190505b865160208801525b8015611f995760005b611f0760608d018d6154a2565b9050811015611f9757611f8f611f2360e08e0160c08f01614d21565b848381518110611f3557611f356151c4565b60200260200101518e8060600190611f4d91906154a2565b85818110611f5d57611f5d6151c4565b9050602002016020810190611f729190614d21565b73ffffffffffffffffffffffffffffffffffffffff169190613a65565b600101611efa565b505b838a526020808b0183905287015160608b015260355460808b015250979998505050505050505050565b604080516001808252818301909252606091602080830190803683375050609854604080517f99530b0600000000000000000000000000000000000000000000000000000000815290519394507401000000000000000000000000000000000000000082046bffffffffffffffffffffffff169373ffffffffffffffffffffffffffffffffffffffff90921692506399530b069160048083019260209291908290030181865afa15801561207b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209f9190615235565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561210d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121319190615235565b61213b91906156c5565b61214591906156dc565b81600081518110612158576121586151c4565b60200260200101818152505090565b326121f75760408051600180825281830190925260009160208083019080368337019050509050836000815181106121a1576121a16151c4565b6020026020010151816000815181106121bc576121bc6151c4565b6020026020010181815250507f2da97ade1b5402d92aa4ecf88302c7c6a98498999fe040468284622731550b3681604051610ccc9190614e5e565b60028282600081811061220c5761220c6151c4565b90506020020135111561224b576040517f2ac3958c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61228882826001818110612261576122616151c4565b905060200201358460008151811061227b5761227b6151c4565b60200260200101516126fc565b6122be576040517f2ac3958c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60007f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336122f18282612a7b565b6122fb8585613027565b92505b505092915050565b6060609680546104ea90615171565b7f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa56336123418282612a7b565b6106af843085612805565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f72f6db45f6a510a9f71a52fed1cf587666e7205545d52ee38b978222d6abaa5660048201523360248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156123ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612423919061570f565b15801561250157506040517f91d148540000000000000000000000000000000000000000000000000000000081527fd00dd30c0065f8d96fd9ccd8989cf005814e3a3d416d39c86ff1cd1f1ba7ded260048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156124db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ff919061570f565b155b1561253a576040517f7ab612a300000000000000000000000000000000000000000000000000000000815233600482015260240161081e565b610e1f87308888888888612fba565b73ffffffffffffffffffffffffffffffffffffffff83166125eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff821661268e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061271a600170010000000000000000000000000000000061545e565b831682108061272c5750608083901c82115b159392505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106af57818110156127f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161081e565b6106af8484848403612549565b73ffffffffffffffffffffffffffffffffffffffff83166128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff821661294b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015612a01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612a6e9086815260200190565b60405180910390a36106af565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015612b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b32919061570f565b612b87576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8216602482015260440161081e565b5050565b600054610100900460ff16612c22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161081e565b8151600003612c5d576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000612cc35780612cb9576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097819055612cfb565b8015612cfb576040517f36307dff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e065ce6e612d3f610e2a565b6040518263ffffffff1660e01b8152600401612d5d91815260200190565b60006040518083038186803b158015612d7557600080fd5b505afa158015612d89573d6000803e3d6000fd5b505050508160969081612d9c919061577f565b50612b876040518060400160405280601481526020017f537472617465677920536861726520546f6b656e0000000000000000000000008152506040518060400160405280600381526020017f5353540000000000000000000000000000000000000000000000000000000000815250613b39565b60006bffffffffffffffffffffffff821115612eaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f3620626974730000000000000000000000000000000000000000000000000000606482015260840161081e565b5090565b82826000818110612ec657612ec66151c4565b90506020020135600314612f06576040517f0affb00500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6098546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526122be9173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f9a9190615235565b8285856001818110612fae57612fae6151c4565b90506020020135613bda565b60606000612fcb86868b8787613e7a565b9050612fd7888a61389f565b60005b8581101561301a5761301288838381518110612ff857612ff86151c4565b6020026020010151898985818110611f5d57611f5d6151c4565b600101612fda565b5098975050505050505050565b609854604080517f99530b06000000000000000000000000000000000000000000000000000000008152905160009283926bffffffffffffffffffffffff740100000000000000000000000000000000000000008304169273ffffffffffffffffffffffffffffffffffffffff909216916399530b06916004808201926020929091908290030181865afa1580156130c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e79190615235565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015613155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131799190615235565b61318391906156c5565b61318d91906156dc565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd0fe31a6131d5610e2a565b6040518263ffffffff1660e01b81526004016131f391815260200190565b600060405180830381865afa158015613210573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613256919081019061537a565b90508373ffffffffffffffffffffffffffffffffffffffff16639115900c82600081518110613287576132876151c4565b602002602001015184886000815181106132a3576132a36151c4565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381865afa158015613324573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fb9190615235565b60008282600081811061335d5761335d6151c4565b9050602002013560000361338c578282600381811061337e5761337e6151c4565b9050602002013590506133f2565b8282600081811061339f5761339f6151c4565b905060200201356002036133c0578282600281811061337e5761337e6151c4565b6040517f6e1e41ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61343e86866000818110613408576134086151c4565b905060200201602081019061341d9190614d21565b85600081518110613430576134306151c4565b6020026020010151836140db565b50505050505050565b60008061345360355490565b905064e8d4a5100081101561349b5761346e6103e8846156c5565b915064e8d4a51000819003808310156134845750815b808303925061349561dead8261422c565b506134c4565b83156117b55783816134ad828661545e565b6134b791906156c5565b6134c191906156dc565b91505b6134ce308361422c565b5092915050565b600080609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399530b066040518163ffffffff1660e01b8152600401602060405180830381865afa158015613545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135699190615235565b905061357760995482614321565b60999190915592915050565b600080831315610581578260006135a164e8d4a510006127106156c5565b6135b16080860160608701615899565b6bffffffffffffffffffffffff166135cf6040870160208801615899565b6135e9906bffffffffffffffffffffffff1661271061545e565b6135f3919061545e565b6135fd90846156c5565b6136079190615222565b905060008261361560355490565b61361f91906156c5565b90506000826136346040880160208901615899565b61364c906bffffffffffffffffffffffff16846156c5565b61365691906156dc565b905061366e6136686020880188614d21565b8261422c565b6000836136816080890160608a01615899565b613699906bffffffffffffffffffffffff16856156c5565b6136a391906156dc565b90506136b86136686060890160408a01614d21565b604051828201808252965030907fd02a13a1b75d55c8b9ced16f3558e9004a0827559f52715b34bcc685d904c4599060200160405180910390a2505050505092915050565b600082826000818110613712576137126151c4565b905060200201356001036137415782826003818110613733576137336151c4565b9050602002013590506137e1565b82826000818110613754576137546151c4565b905060200201356002036137755782826002818110613733576137336151c4565b82826000818110613788576137886151c4565b905060200201356003036137a95782826001818110613733576137336151c4565b32156137e1576040517f0affb00500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006137ec60355490565b6098546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152879173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561385a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387e9190615235565b61388891906156c5565b61389291906156dc565b905061343e813084613bda565b73ffffffffffffffffffffffffffffffffffffffff8216613942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260336020526040902054818110156139f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161081e565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526122be9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614394565b600054610100900460ff16613bd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161081e565b612b8782826144a0565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6d9190615235565b6098546040517fe63697c80000000000000000000000000000000000000000000000000000000081526004810187905273ffffffffffffffffffffffffffffffffffffffff868116602483015261271060448301529293506000929091169063e63697c8906064016020604051808303816000875af1158015613cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d189190615235565b905082811015613d54576040517f0affb00500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613d5e858361545e565b6098546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015613dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df09190615235565b14613e27576040517f73f9c9a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b32610d115760408051600080825260208201849052606082840181905282015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15050505050565b60608467ffffffffffffffff811115613e9557613e95614b6f565b604051908082528060200260200182016040528015613ebe578160200160208202803683370190505b50905060005b85811015613fb057868682818110613ede57613ede6151c4565b9050602002016020810190613ef39190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015613f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f839190615235565b828281518110613f9557613f956151c4565b6020908102919091010152613fa981615426565b9050613ec4565b50613fbe86868686866136fd565b60005b858110156140d157818181518110613fdb57613fdb6151c4565b6020026020010151878783818110613ff557613ff56151c4565b905060200201602081019061400a9190614d21565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015614076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061409a9190615235565b6140a4919061545e565b8282815181106140b6576140b66151c4565b60209081029190910101526140ca81615426565b9050613fc1565b5095945050505050565b60985460009061410390859073ffffffffffffffffffffffffffffffffffffffff1685614550565b6098546040517fb6b55f250000000000000000000000000000000000000000000000000000000081526004810185905260009173ffffffffffffffffffffffffffffffffffffffff169063b6b55f25906024016020604051808303816000875af1158015614175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141999190615235565b9050828110156141d5576040517f6e1e41ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3261422457604080516001815260208101839052606081830181905260009082015290517f872697b0ffc2830e88f47a2ddac8d40ec8898cb72bc036d3aaf8ce7960286a909181900360800190a15b949350505050565b73ffffffffffffffffffffffffffffffffffffffff82166142a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161081e565b80603560008282546142bb9190615222565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600082821115614357578264e8d4a5100061433c828561545e565b61434691906156c5565b61435091906156dc565b9050610581565b81831115610581578264e8d4a51000614370848361545e565b61437a91906156c5565b61438491906156dc565b61438d906158c7565b9392505050565b60006143f6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661457b9092919063ffffffff16565b8051909150156122be5780806020019051810190614414919061570f565b6122be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161081e565b600054610100900460ff16614537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161081e565b6036614543838261577f565b5060376122be828261577f565b61455a838361458a565b6122be73ffffffffffffffffffffffffffffffffffffffff84168383614648565b606061422484846000856147ca565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015614600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146249190615235565b1115612b8757612b8773ffffffffffffffffffffffffffffffffffffffff83168260005b8015806146e857506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156146c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146e69190615235565b155b614774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161081e565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526122be9084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401613ab7565b60608247101561485c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161081e565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161488591906158ff565b60006040518083038185875af1925050503d80600081146148c2576040519150601f19603f3d011682016040523d82523d6000602084013e6148c7565b606091505b5091509150610e1f87838387606083156149695782516000036149625773ffffffffffffffffffffffffffffffffffffffff85163b614962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161081e565b5081614224565b614224838381511561497e5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e91906149f4565b60405180604001604052806002906020820280368337509192915050565b60005b838110156149eb5781810151838201526020016149d3565b50506000910152565b6020815260008251806020840152614a138160408501602087016149d0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114614a6757600080fd5b50565b60008060408385031215614a7d57600080fd5b8235614a8881614a45565b946020939093013593505050565b60008083601f840112614aa857600080fd5b50813567ffffffffffffffff811115614ac057600080fd5b6020830191508360208260051b8501011115614adb57600080fd5b9250929050565b600080600060408486031215614af757600080fd5b83359250602084013567ffffffffffffffff811115614b1557600080fd5b614b2186828701614a96565b9497909650939450505050565b600080600060608486031215614b4357600080fd5b8335614b4e81614a45565b92506020840135614b5e81614a45565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614be557614be5614b6f565b604052919050565b8035614bf881614a45565b919050565b600080600060608486031215614c1257600080fd5b833567ffffffffffffffff80821115614c2a57600080fd5b818601915086601f830112614c3e57600080fd5b8135602082821115614c5257614c52614b6f565b614c82817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601614b9e565b92508183528881838601011115614c9857600080fd5b8181850182850137600081838501015282965080880135955050505050614cc160408501614bed565b90509250925092565b600080600060408486031215614cdf57600080fd5b833567ffffffffffffffff811115614cf657600080fd5b614d0286828701614a96565b9094509250506020840135614d1681614a45565b809150509250925092565b600060208284031215614d3357600080fd5b813561438d81614a45565b600081518084526020808501945080840160005b83811015614d8457815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614d52565b509495945050505050565b60208152600061438d6020830184614d3e565b60008060008060008060808789031215614dbb57600080fd5b863595506020870135614dcd81614a45565b9450604087013567ffffffffffffffff80821115614dea57600080fd5b614df68a838b01614a96565b90965094506060890135915080821115614e0f57600080fd5b50614e1c89828a01614a96565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015614d8457815187529582019590820190600101614e42565b60208152600061438d6020830184614e2e565b604081526000614e846040830185614d3e565b8281036020840152614e968185614e2e565b95945050505050565b600080600080600080600080600060a08a8c031215614ebd57600080fd5b893567ffffffffffffffff80821115614ed557600080fd5b614ee18d838e01614a96565b909b50995060208c0135915080821115614efa57600080fd5b614f068d838e01614a96565b909950975060408c01359150614f1b82614a45565b90955060608b01359080821115614f3157600080fd5b614f3d8d838e01614a96565b909650945060808c0135915080821115614f5657600080fd5b50614f638c828d01614a96565b915080935050809150509295985092959850929598565b600060208284031215614f8c57600080fd5b813567ffffffffffffffff811115614fa357600080fd5b82016101a0818503121561438d57600080fd5b60208152815160208201526000602083015160a06040840152614fdc60c0840182614e2e565b90506040840151606084015260608401516080840152608084015160a08401528091505092915050565b600067ffffffffffffffff82111561502057615020614b6f565b5060051b60200190565b600082601f83011261503b57600080fd5b8135602061505061504b83615006565b614b9e565b82815260059290921b8401810191818101908684111561506f57600080fd5b8286015b8481101561508a5780358352918301918301615073565b509695505050505050565b6000806000604084860312156150aa57600080fd5b833567ffffffffffffffff808211156150c257600080fd5b6150ce8783880161502a565b945060208601359150808211156150e457600080fd5b50614b2186828701614a96565b6000806040838503121561510457600080fd5b823567ffffffffffffffff81111561511b57600080fd5b6151278582860161502a565b925050602083013561513881614a45565b809150509250929050565b6000806040838503121561515657600080fd5b823561516181614a45565b9150602083013561513881614a45565b600181811c9082168061518557607f821691505b6020821081036151be577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610581576105816151f3565b60006020828403121561524757600080fd5b5051919050565b600181815b808511156152a757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561528d5761528d6151f3565b8085161561529a57918102915b93841c9390800290615253565b509250929050565b6000826152be57506001610581565b816152cb57506000610581565b81600181146152e157600281146152eb57615307565b6001915050610581565b60ff8411156152fc576152fc6151f3565b50506001821b610581565b5060208310610133831016604e8410600b841016171561532a575081810a610581565b615334838361524e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615366576153666151f3565b029392505050565b600061438d83836152af565b6000602080838503121561538d57600080fd5b825167ffffffffffffffff8111156153a457600080fd5b8301601f810185136153b557600080fd5b80516153c361504b82615006565b81815260059190911b820183019083810190878311156153e257600080fd5b928401925b82841015610e1f5783516153fa81614a45565b825292840192908401906153e7565b60006020828403121561541b57600080fd5b815161438d81614a45565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615457576154576151f3565b5060010190565b81810381811115610581576105816151f3565b8481528360208201526080604082015260006154906080830185614e2e565b8281036060840152610e1f8185614e2e565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126154d757600080fd5b83018035915067ffffffffffffffff8211156154f257600080fd5b6020019150600581901b3603821315614adb57600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615615542576155426151f3565b8181058314821517610581576105816151f3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261559457615594615556565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156155e8576155e86151f3565b500590565b80820182811260008312801582168215821617156122fe576122fe6151f3565b6060808252810185905260008660808301825b8881101561565d57823561563381614a45565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101615620565b5083810360208501526156708188614e2e565b91505082810360408401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156156ab57600080fd5b8360051b8086602084013701602001979650505050505050565b8082028115828204841417610581576105816151f3565b6000826156eb576156eb615556565b500490565b838152826020820152606060408201526000614e966060830184614e2e565b60006020828403121561572157600080fd5b8151801515811461438d57600080fd5b601f8211156122be57600081815260208120601f850160051c810160208610156157585750805b601f850160051c820191505b8181101561577757828155600101615764565b505050505050565b815167ffffffffffffffff81111561579957615799614b6f565b6157ad816157a78454615171565b84615731565b602080601f83116001811461580057600084156157ca5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555615777565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561584d5788860151825594840194600190910190840161582e565b508582101561588957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156158ab57600080fd5b81356bffffffffffffffffffffffff8116811461438d57600080fd5b60007f800000000000000000000000000000000000000000000000000000000000000082036158f8576158f86151f3565b5060000390565b600082516159118184602087016149d0565b919091019291505056fea2646970667358221220c5e7a398bd45256b81ff4ac67872525af64eca84c50480b74c95daaccfadcacc64736f6c634300081100330000000000000000000000001aa2a802ba25669531ffd2b1ff8ae94f3d87f41a0000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13", + "nonce": "0x30", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x3fa8995e30dcae9ee43cf6e3db19b73a61bbb36797e760b04b85cee1f43cdba6", + "transactionIndex": "0x27", + "blockHash": "0xbea2cb9b6aab338c84d6693eb30d7fc8cbed4fed7584d726e2a9d7e29d2db3a6", + "blockNumber": "0x1328bf0", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0xc18bb5", + "gasUsed": "0x475e09", + "contractAddress": "0x3Bb41F7A05535CC05Ab6263dd01a4fa3462bE3c9", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2432f29c6" + }, + { + "transactionHash": "0xaabedaf83b85212aba4aa2b364585b61f81aeb9e860b130aec4e4aebb3cfb3f4", + "transactionIndex": "0x14", + "blockHash": "0x303ca2607a0656780bca8070297c6e20f6db4cb7a8103abd4b9a818a7f851045", + "blockNumber": "0x1328bf1", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x5d0f8d", + "gasUsed": "0x4dce97", + "contractAddress": "0x8fE41e9B43bB45d0eFBc86C32Aa4705935Bf8b13", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x25bf3f1de" + }, + { + "transactionHash": "0x5fda4f8c302c36e7f5f82765166b2e8dfb826425240d796ab9005cb8d8abcdcf", + "transactionIndex": "0x4", + "blockHash": "0x8f4ef1acd0cd71ac8185c25cd4f1c45abe7aea37ba2198fa111a9765acf04c56", + "blockNumber": "0x1328bf2", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x5a21fa", + "gasUsed": "0x4f402c", + "contractAddress": "0xb170F18dca153752b2F35304e5ea581373095f4e", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x26608696f" + }, + { + "transactionHash": "0x68108b6f0ed11f97c495be98ff227d8d1f519b24c2abdd16b90fb7191dc8a965", + "transactionIndex": "0x5", + "blockHash": "0xcd6e6a2f02cf705026d4b55f0499450fbb3f9f74f91cf8e9b08d05e1bcc7d0d3", + "blockNumber": "0x1328bf3", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x46b6b5", + "gasUsed": "0x432e55", + "contractAddress": "0xdD55DAb8A52b1E2983a9c7297650DBA857dB4e3b", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x289246975" + }, + { + "transactionHash": "0x7f1f918b80089a7cf9cf5dfb7032132a1d0f4c3b202d2e01994043f7af61a201", + "transactionIndex": "0x7", + "blockHash": "0xbd7fc82b51a4211563b97d5797cff78689a9ee3cecdf40e1a245dbc7245f224f", + "blockNumber": "0x1328bf4", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x6897da", + "gasUsed": "0x49e17c", + "contractAddress": "0x40844863f1a8945499501111f71eCdABDBedDEf5", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x26587c0fa" + }, + { + "transactionHash": "0xb91ddfd8d422aa9cfff66dc97d7272b22985add2eb89d32ab5b17e0e6a20035c", + "transactionIndex": "0x39", + "blockHash": "0x39e1c1b571fabb7e6ca62b8db6601490cd3028838287978499c036f60094fca4", + "blockNumber": "0x1328bf5", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x96a5f3", + "gasUsed": "0x4bfc8a", + "contractAddress": "0x120da9fA3F56D2179FACab9Ce9b3D00dF4BE1575", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x29b460504" + }, + { + "transactionHash": "0x7c5e1f8832e1e22beb58b34b6ff7d11a6865592b503dcf5ba9a843c2347ac518", + "transactionIndex": "0x3", + "blockHash": "0x8fb51559f3107bb00ca67db7d7da24a0386154fb2a22bd3e9fc0e9406d6d017f", + "blockNumber": "0x1328bf6", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x5a5d34", + "gasUsed": "0x4f71c2", + "contractAddress": "0x56a20C5D76d41338fBd5D7cB7Db37e937143f910", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2a199f0ae" + }, + { + "transactionHash": "0x96ecc9c1218f9b23e764357a8199120de53203cfb904f5defe23c182b8cb1230", + "transactionIndex": "0x5", + "blockHash": "0x99550716c160218bf2098556713e55987aa71d2c81b155f44feb486b9f1de3fa", + "blockNumber": "0x1328bf7", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x5ddce0", + "gasUsed": "0x4bd4f7", + "contractAddress": "0xeFD8CE62CA1cd5C309ee1421496E8657036E9373", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2a987fa8a" + }, + { + "transactionHash": "0xa511bed51b1e8aced81d0d1de677c77553a9a9b7c13fff0352b46b84b66e46ff", + "transactionIndex": "0x4", + "blockHash": "0x2747a484fa657c5096e9dcf381db0a824051a8a23e7f4d4b1884730f3870dd0f", + "blockNumber": "0x1328bf8", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x55c2e6", + "gasUsed": "0x49d70d", + "contractAddress": "0xc4962991713ff1e5EF4Ac4BA6f5B2292D5b65383", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2b2a39db5" + }, + { + "transactionHash": "0x1adf9dd022a32a35ab8a26025d1baeff0e84bb40610956913a54ae104d76d0d0", + "transactionIndex": "0x36", + "blockHash": "0xeb99dd549d934032d32b1b614e6dcaab50476c863512781b0c7394af42083127", + "blockNumber": "0x1328bf9", + "from": "0x634672C44C695D51332e3cA3ce22803933aC11e9", + "to": null, + "cumulativeGasUsed": "0x99fa37", + "gasUsed": "0x4bc3c0", + "contractAddress": "0xb7F6FBbB8d11946951b14cC349DDcF7e11F74D7e", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x2b51e57fc" + } + ], + "libraries": [ + "script/helper/ArraysHelper.sol:ArraysHelper:0x7dF191D01252D2C0BABf77c725c63D69fe6EAA1a", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0", + "src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1", + "src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89", + "src/strategies/libraries/EthFrxEthAssetGroupAdapter.sol:EthFrxEthAssetGroupAdapter:0xE23681bAA697EF5054E2D8C397ae59145027625D", + "src/strategies/libraries/EthStEthAssetGroupAdapter.sol:EthStEthAssetGroupAdapter:0x1516eb3a54377168b6b184326200f4258C3529dF" + ], + "pending": [], + "returns": {}, + "timestamp": 1718365923, + "chain": 1, + "multi": false, + "commit": "d367aee" +} \ No newline at end of file diff --git a/broadcast/mainnet-production/DeployVaultWithTimelockGuard.s.sol/1/run-latest.json b/broadcast/mainnet-production/DeployVaultWithTimelockGuard.s.sol/1/run-latest.json new file mode 100644 index 00000000..77a27d07 --- /dev/null +++ b/broadcast/mainnet-production/DeployVaultWithTimelockGuard.s.sol/1/run-latest.json @@ -0,0 +1,305 @@ +{ + "transactions": [ + { + "hash": "0x6224db09a72057e5e9112bb7fd9d331e55ce1a2e33c3ab0fedd57156a9544c92", + "transactionType": "CREATE", + "contractName": "TimelockGuard", + "contractAddress": "0xC8E48fc7Ebd0db581570244BC98858aFc9036a56", + "function": null, + "arguments": [ + "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xba15d", + "value": "0x0", + "data": "0x60a060405234801561001057600080fd5b50604051610a59380380610a5983398101604081905261002f91610069565b806001600160a01b0381166100575760405163bb0e4c3560e01b815260040160405180910390fd5b6001600160a01b031660805250610099565b60006020828403121561007b57600080fd5b81516001600160a01b038116811461009257600080fd5b9392505050565b6080516109a56100b460003960006103b201526109a56000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631369a927146100465780631a38734814610079578063d47b08ab1461008e575b600080fd5b6100666100543660046104a0565b60316020526000908152604090205481565b6040519081526020015b60405180910390f35b61008c6100873660046104bb565b6100b1565b005b6100a161009c3660046104e5565b61017c565b6040519015158152602001610070565b817f3f4962f8c2b64c6192ef9b583127ce92f8061bd2cdb53f44f7d399d083bda823336100df83838361035e565b6301e13380841115610125576040517f87a5a6a7000000000000000000000000000000000000000000000000000000008152600481018590526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600081815260316020526040808220879055518692917f355b176ded2409ab8e5d857e25e3df1fad9b0c7665a4b9f80a44164b1c5ea93d91a35050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1663a7614d8185856040518363ffffffff1660e01b81526004016101ba92919061056b565b600060405180830381865afa1580156101d7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261021d9190810190610688565b73ffffffffffffffffffffffffffffffffffffffff86166000908152603160205260408120549192505b825181101561034f576000868683818110610264576102646107c9565b9050602002013590507f800000000000000000000000000000000000000000000000000000000000000081106102e5576040517f4e211fe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff891660048201526024810182905260440161011c565b60008483815181106102f9576102f96107c9565b602002602001015180602001905181019061031491906107f8565b90508381602001514261032791906108fc565b1161033a57600095505050505050610357565b5050808061034790610915565b915050610247565b506001925050505b9392505050565b6040517f12fa996c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905282811660448301527f000000000000000000000000000000000000000000000000000000000000000016906312fa996c90606401602060405180830381865afa1580156103f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041d919061094d565b610472576040517f75000dc00000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8216602482015260440161011c565b505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461049b57600080fd5b919050565b6000602082840312156104b257600080fd5b61035782610477565b600080604083850312156104ce57600080fd5b6104d783610477565b946020939093013593505050565b6000806000604084860312156104fa57600080fd5b61050384610477565b9250602084013567ffffffffffffffff8082111561052057600080fd5b818601915086601f83011261053457600080fd5b81358181111561054357600080fd5b8760208260051b850101111561055857600080fd5b6020830194508093505050509250925092565b6020815281602082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156105a457600080fd5b8260051b80856040850137919091016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561060f5761060f6105bd565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561065c5761065c6105bd565b604052919050565b600067ffffffffffffffff82111561067e5761067e6105bd565b5060051b60200190565b6000602080838503121561069b57600080fd5b825167ffffffffffffffff808211156106b357600080fd5b8185019150601f86818401126106c857600080fd5b82516106db6106d682610664565b610615565b81815260059190911b840185019085810190898311156106fa57600080fd5b8686015b838110156107bb578051868111156107165760008081fd5b8701603f81018c136107285760008081fd5b888101518781111561073c5761073c6105bd565b61076b8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08984011601610615565b81815260408e818486010111156107825760008081fd5b60005b838110156107a0578481018201518382018e01528c01610785565b505060009181018b01919091528452509187019187016106fe565b509998505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602080838503121561080b57600080fd5b825167ffffffffffffffff8082111561082357600080fd5b908401906060828703121561083757600080fd5b61083f6105ec565b82518281111561084e57600080fd5b83019150601f8201871361086157600080fd5b815161086f6106d682610664565b81815260059190911b8301850190858101908983111561088e57600080fd5b938601935b828510156108ac57845182529386019390860190610893565b83525050828401519381019390935250604090810151908201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561090f5761090f6108cd565b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610946576109466108cd565b5060010190565b60006020828403121561095f57600080fd5b8151801515811461035757600080fdfea2646970667358221220c198a7fc1baaf74f073177311dccc10432ea663acb65d0dfdaa1bbb8befb635864736f6c634300081100330000000000000000000000007b533e72e0cdc63aacd8cdb926ac402b846fbd13", + "nonce": "0x39", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionType": "CALL", + "contractName": "SmartVaultFactory", + "contractAddress": "0x8049Fc710D4a1Deea6a6bCeF772C166CEd7A82F5", + "function": "deploySmartVault((string,string,string,uint256,address[],uint256,int8,address,address,address[],uint8[],(string,address,bytes2,uint256,uint8[],bytes[])[][],uint8[],uint16,uint16,uint16,bool))", + "arguments": [ + "(Spool (Deposit Lock), SPOOLDEPLOCK, https://token-cdn-domain/, 2, [0xb4a7fb51D06760B5F622643B7276c003418732bD, 0x265cc52678887e59D1b66F3D93BBAB7658Bc0337, 0x90b8695EDCdEfAFA678Df6d819307573f7B1a18C], 0, 10, 0xC216aD6280f4fa92A5159EF383a1206D432481c8, 0xcebF2117a483EFf141c25bf8d365B9B81Af9112F, [], [], [[(checkTimelock(address,uint256[]), 0xC8E48fc7Ebd0db581570244BC98858aFc9036a56, 0x0000000000000000000000000000000000000000000000000000000000000000, 0, [0, 4], [])]], [3], 0, 0, 0, false)" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0x8049fc710d4a1deea6a6bcef772c166ced7a82f5", + "gas": "0x19a680", + "value": "0x0", + "data": "0x6fc3f5d500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000c216ad6280f4fa92a5159ef383a1206d432481c8000000000000000000000000cebf2117a483eff141c25bf8d365b9b81af9112f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000005a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001453706f6f6c20284465706f736974204c6f636b29000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c53504f4f4c4445504c4f434b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001968747470733a2f2f746f6b656e2d63646e2d646f6d61696e2f000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000b4a7fb51d06760b5f622643b7276c003418732bd000000000000000000000000265cc52678887e59d1b66f3d93bbab7658bc033700000000000000000000000090b8695edcdefafa678df6d819307573f7b1a18c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000c8e48fc7ebd0db581570244bc98858afc9036a5600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000020636865636b54696d656c6f636b28616464726573732c75696e743235365b5d29000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003", + "nonce": "0x3a", + "accessList": [] + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0xedd1F8070a9c0F79d294671dA9992a4724F80317", + "initCode": "0x60806040526040516109a03803806109a08339810160408190526100229161045b565b61002e82826000610035565b5050610585565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e9919061051b565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d7919061051b565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c88383604051806060016040528060278152602001610979602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe9190610536565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c95782516000036103c2576001600160a01b0385163b6103c25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d3565b6103d383836103db565b949350505050565b8151156103eb5781518083602001fd5b8060405162461bcd60e51b81526004016101699190610552565b80516001600160a01b038116811461041c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561045257818101518382015260200161043a565b50506000910152565b6000806040838503121561046e57600080fd5b61047783610405565b60208401519092506001600160401b038082111561049457600080fd5b818501915085601f8301126104a857600080fd5b8151818111156104ba576104ba610421565b604051601f8201601f19908116603f011681019083821181831017156104e2576104e2610421565b816040528281528860208487010111156104fb57600080fd5b61050c836020830160208801610437565b80955050505050509250929050565b60006020828403121561052d57600080fd5b6102c882610405565b60008251610548818460208701610437565b9190910192915050565b6020815260008251806020840152610571816040850160208701610437565b601f01601f19169190910160400192915050565b6103e5806105946000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b610127565b565b606061004e83836040518060600160405280602781526020016103896027913961014b565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d505473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906102c1565b905090565b3660008037600080366000845af43d6000803e808015610146573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051610175919061031b565b600060405180830381855af49150503d80600081146101b0576040519150601f19603f3d011682016040523d82523d6000602084013e6101b5565b606091505b50915091506101c6868383876101d0565b9695505050505050565b6060831561026b5782516000036102645773ffffffffffffffffffffffffffffffffffffffff85163b610264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610275565b610275838361027d565b949350505050565b81511561028d5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b9190610337565b6000602082840312156102d357600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461004e57600080fd5b60005b838110156103125781810151838201526020016102fa565b50506000910152565b6000825161032d8184602087016102f7565b9190910192915050565b60208152600082518060208401526103568160408501602087016102f7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a19f3319260a7390c9829d89ff70896fafc3830c320ce054f738d46841fad26c64736f6c63430008110033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000008049fc710d4a1deea6a6bcef772c166ced7a82f5000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001441c5d2b49000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001453706f6f6c20284465706f736974204c6f636b29000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c53504f4f4c4445504c4f434b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001968747470733a2f2f746f6b656e2d63646e2d646f6d61696e2f0000000000000000000000000000000000000000000000000000000000000000000000" + }, + { + "transactionType": "CREATE", + "address": "0xf95e410f8b291df2171A6145C7c6e65E9e69222B", + "initCode": "0x600b5981380380925939f30000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000c8e48fc7ebd0db581570244bc98858afc9036a5600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000020636865636b54696d656c6f636b28616464726573732c75696e743235365b5d290000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000" + } + ], + "isFixedGasLimit": false + }, + { + "hash": "0x973ffd5ecde31e67ed1ccb4c4dbb225c21578a882e0abca42266a9d68731018e", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0x7b533e72e0cdc63aacd8cdb926ac402b846fbd13", + "gas": "0x13c82", + "value": "0x0", + "data": "0x031e3505000000000000000000000000edd1f8070a9c0f79d294671da9992a4724f803170000000000000000000000007d965039141418d6f8c0d534f3d86c4b53e2fd4d", + "nonce": "0x3b", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x6224db09a72057e5e9112bb7fd9d331e55ce1a2e33c3ab0fedd57156a9544c92", + "transactionIndex": "0x6", + "blockHash": "0x0207a89a1dc1584cf030ec5cde9ec95c17982067bf88a9d178812331a0cb3079", + "blockNumber": "0x136b365", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x174151", + "gasUsed": "0x8f248", + "contractAddress": "0xC8E48fc7Ebd0db581570244BC98858aFc9036a56", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x298ea4d8f" + }, + { + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0x8049Fc710D4a1Deea6a6bCeF772C166CEd7A82F5", + "cumulativeGasUsed": "0x63b440", + "gasUsed": "0x129208", + "contractAddress": null, + "logs": [ + { + "address": "0xedd1F8070a9c0F79d294671dA9992a4724F80317", + "topics": [ + "0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e", + "0x0000000000000000000000008049fc710d4a1deea6a6bcef772c166ced7a82f5" + ], + "data": "0x", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0x9b", + "removed": false + }, + { + "address": "0xedd1F8070a9c0F79d294671dA9992a4724F80317", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0x9c", + "removed": false + }, + { + "address": "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0xb7bd763b892057cad661e35255b06a019718ed80b2e18ef713656826edaf9344", + "0x000000000000000000000000edee7b1c9a240c4085a5fcac8f4fa750e3779695", + "0x0000000000000000000000008049fc710d4a1deea6a6bcef772c166ced7a82f5" + ], + "data": "0x", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0x9d", + "removed": false + }, + { + "address": "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "topics": [ + "0x10f13a9559710d17518b277f2460938d060e568e5bd0699bb097741b25fd53bf", + "0x000000000000000000000000edd1f8070a9c0f79d294671da9992a4724f80317", + "0x000000000000000000000000edee7b1c9a240c4085a5fcac8f4fa750e3779695" + ], + "data": "0x", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0x9e", + "removed": false + }, + { + "address": "0xB8c204e858AA420eb5a57599dA86fFD6375da6a8", + "topics": [ + "0xb9f47a76b7534856ef0c4c98da9b5c95949f67ee9394a455848de9e081c42ee4", + "0x000000000000000000000000edd1f8070a9c0f79d294671da9992a4724f80317" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000c8e48fc7ebd0db581570244bc98858afc9036a5600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000020636865636b54696d656c6f636b28616464726573732c75696e743235365b5d29000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0x9f", + "removed": false + }, + { + "address": "0xC30018cbee9C8141F620e950CC9637c7A2eF2c9e", + "topics": [ + "0xb3e96b3704b1ead0da43b357b1dedce3a7872894ad4d4a89db7ec66c6e6d98e7", + "0x000000000000000000000000edd1f8070a9c0f79d294671da9992a4724f80317", + "0x000000000000000000000000c216ad6280f4fa92a5159ef383a1206d432481c8" + ], + "data": "0x", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0xa0", + "removed": false + }, + { + "address": "0xC30018cbee9C8141F620e950CC9637c7A2eF2c9e", + "topics": [ + "0x1234682d0bbb7a19d506bb92f993f05fde6061b349eda485b1e9404410e01705", + "0x000000000000000000000000edd1f8070a9c0f79d294671da9992a4724f80317" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000a", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0xa1", + "removed": false + }, + { + "address": "0xC30018cbee9C8141F620e950CC9637c7A2eF2c9e", + "topics": [ + "0xf88f81baaa4b3025bf81a778c888cf65daf951fb8193f26499958649126dfd4a", + "0x000000000000000000000000edd1f8070a9c0f79d294671da9992a4724f80317", + "0x000000000000000000000000cebf2117a483eff141c25bf8d365b9b81af9112f" + ], + "data": "0x", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0xa2", + "removed": false + }, + { + "address": "0x23Daf34e2b9Af02A74dC19cB52Af727B19403874", + "topics": [ + "0x3de86e7d916b4d19191e071d9ca9ba1c74cc94fc5fea1332b180acf42e27d536", + "0x000000000000000000000000edd1f8070a9c0f79d294671da9992a4724f80317" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000b4a7fb51d06760b5f622643b7276c003418732bd000000000000000000000000265cc52678887e59d1b66f3d93bbab7658bc033700000000000000000000000090b8695edcdefafa678df6d819307573f7b1a18c", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0xa3", + "removed": false + }, + { + "address": "0x8049Fc710D4a1Deea6a6bCeF772C166CEd7A82F5", + "topics": [ + "0x4b6fc311ac818259806f64049ebe6924e21a6b8e08a6b97fbf10baf7dd6f534d", + "0x000000000000000000000000edd1f8070a9c0f79d294671da9992a4724f80317", + "0x000000000000000000000000edee7b1c9a240c4085a5fcac8f4fa750e3779695" + ], + "data": "0x", + "blockHash": "0x0fbce45441f7e06d491c0296f65820ca8cfa2b577e52970ca46f38dfad4c004e", + "blockNumber": "0x136b366", + "transactionHash": "0xbc8f1f9ef003a98d0f74404c142a0e41842656ce9ab9ecd879a22e0c2aa4c780", + "transactionIndex": "0x30", + "logIndex": "0xa4", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000044000000000001000000008000204010000000200000000000001000000200000008801000024000000202001000040000800000000000000000004000000000080000000000000000001000000000800000000012000000000000000000000000000000000000000000000000000020000000000800000000000000000000000000000002000800000200080002080000000080000000000000000020008001000000001800100000400c10002000000010000010001000800000000200000000000000000000000002040000000000140100080100800002000000000000000000010000000000000000400080000000002000000000020000000000", + "type": "0x2", + "effectiveGasPrice": "0x29b54a14b" + }, + { + "transactionHash": "0x973ffd5ecde31e67ed1ccb4c4dbb225c21578a882e0abca42266a9d68731018e", + "transactionIndex": "0x9", + "blockHash": "0x33e20337c5606c8220b9293ebbac41b2965d07828545f2eda490815114cee120", + "blockNumber": "0x136b367", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "cumulativeGasUsed": "0x8cc6f", + "gasUsed": "0xd86b", + "contractAddress": null, + "logs": [ + { + "address": "0x7b533e72E0cDC63AacD8cDB926AC402b846Fbd13", + "topics": [ + "0x73740124f1c82dff6b3c0347d81573f4838653ba8b469065a63064c85522a9f1", + "0x000000000000000000000000edee7b1c9a240c4085a5fcac8f4fa750e3779695", + "0x0000000000000000000000007d965039141418d6f8c0d534f3d86c4b53e2fd4d" + ], + "data": "0x", + "blockHash": "0x33e20337c5606c8220b9293ebbac41b2965d07828545f2eda490815114cee120", + "blockNumber": "0x136b367", + "transactionHash": "0x973ffd5ecde31e67ed1ccb4c4dbb225c21578a882e0abca42266a9d68731018e", + "transactionIndex": "0x9", + "logIndex": "0xd", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000040000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000010000000000010000000000000000000000000040000040002000000000000000000000000002000000000000000000000000000000000008000000000000000002000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x29b584acf" + } + ], + "libraries": [ + "script/helper/Arrays.sol:Arrays:0x1eb431a15a272a3351dcb3be7ad37f4bf7c8ab50", + "script/helper/ArraysHelper.sol:ArraysHelper:0x5665Aa09D1A8b3775024e62E82A902Ae760eebbA", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0", + "src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1", + "src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89", + "src/strategies/libraries/EthFrxEthAssetGroupAdapter.sol:EthFrxEthAssetGroupAdapter:0xE23681bAA697EF5054E2D8C397ae59145027625D", + "src/strategies/libraries/EthStEthAssetGroupAdapter.sol:EthStEthAssetGroupAdapter:0x1516eb3a54377168b6b184326200f4258C3529dF" + ], + "pending": [], + "returns": {}, + "timestamp": 1721651531, + "chain": 1, + "multi": false, + "commit": "86c3ddb" +} \ No newline at end of file diff --git a/broadcast/mainnet-production/MetamorphoExtraStrategySetup.s.sol/1/run-1719912993.json b/broadcast/mainnet-production/MetamorphoExtraStrategySetup.s.sol/1/run-1719912993.json new file mode 100644 index 00000000..5ffb8aad --- /dev/null +++ b/broadcast/mainnet-production/MetamorphoExtraStrategySetup.s.sol/1/run-1719912993.json @@ -0,0 +1,873 @@ +{ + "transactions": [ + { + "hash": "0xaefb8bc1f3429c2d9aac8a19fb442ab47ccdfee14908650f6e4f719816572527", + "transactionType": "CREATE", + "contractName": "ArraysHelper", + "contractAddress": "0x5665Aa09D1A8b3775024e62E82A902Ae760eebbA", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xada2b", + "data": "0x6108f261003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100715760003560e01c80633177266e1161005a5780633177266e146100bf578063d81d3552146100c1578063f3625d8f146100d457600080fd5b8063128424a7146100765780631774a5f91461009f575b600080fd5b610089610084366004610433565b6100e7565b60405161009691906104ff565b60405180910390f35b6100b26100ad3660046105e7565b61024e565b604051610096919061066f565b005b6100b26100cf36600461073d565b6102e6565b6100b26100e236600461077a565b61033d565b606060015b8251811015610247576000838281518110610109576101096107de565b6020026020010151905060008290505b600081118015610177575073ffffffffffffffffffffffffffffffffffffffff82168561014760018461083c565b81518110610157576101576107de565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16115b156101e7578461018860018361083c565b81518110610198576101986107de565b60200260200101518582815181106101b2576101b26107de565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526101e08161084f565b9050610119565b818582815181106101fa576101fa6107de565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050508061024090610884565b90506100ec565b5090919050565b6040805160038082526080820190925260609160009190816020015b606081526020019060019003908161026a5790505090508481600081518110610295576102956107de565b602002602001018190525083816001815181106102b4576102b46107de565b602002602001018190525082816002815181106102d3576102d36107de565b6020908102919091010152949350505050565b60408051600180825281830190925260609160009190816020015b6060815260200190600190039081610301579050509050828160008151811061032c5761032c6107de565b602090810291909101015292915050565b604080516002808252606082810190935260009190816020015b60608152602001906001900390816103575790505090508381600081518110610382576103826107de565b602002602001018190525082816001815181106103a1576103a16107de565b602090810291909101015290505b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561042b5761042b6103b5565b604052919050565b6000602080838503121561044657600080fd5b823567ffffffffffffffff8082111561045e57600080fd5b818501915085601f83011261047257600080fd5b813581811115610484576104846103b5565b8060051b91506104958483016103e4565b81815291830184019184810190888411156104af57600080fd5b938501935b838510156104f3578435925073ffffffffffffffffffffffffffffffffffffffff831683146104e35760008081fd5b82825293850193908501906104b4565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561054d57835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010161051b565b50909695505050505050565b600082601f83011261056a57600080fd5b813567ffffffffffffffff811115610584576105846103b5565b6105b560207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016103e4565b8181528460208386010111156105ca57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156105fc57600080fd5b833567ffffffffffffffff8082111561061457600080fd5b61062087838801610559565b9450602086013591508082111561063657600080fd5b61064287838801610559565b9350604086013591508082111561065857600080fd5b5061066586828701610559565b9150509250925092565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b8381101561072f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089870301855282518051808852835b818110156106ea578281018a01518982018b015289016106cf565b508781018901849052601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909601870195509386019391860191600101610697565b509398975050505050505050565b60006020828403121561074f57600080fd5b813567ffffffffffffffff81111561076657600080fd5b61077284828501610559565b949350505050565b6000806040838503121561078d57600080fd5b823567ffffffffffffffff808211156107a557600080fd5b6107b186838701610559565b935060208501359150808211156107c757600080fd5b506107d485828601610559565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156103af576103af61080d565b60008161085e5761085e61080d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036108b5576108b561080d565b506001019056fea26469706673582212203164387f356dc4a9f80d80663b3e5da4db5cb0b5c5dd1c64052a2e4317b9080764736f6c63430008110033", + "nonce": "0x25", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x8d8d150ea7346198a0b13a5e189dee811350da01ca62e226e33e209fdb440772", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x55cB0D9c32453ecD84aB628cf3A320aB8997fae2", + "function": null, + "arguments": [ + "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "0x51c8FA2c1F093AC643f6431766b1c227d869Cb6F", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xd8f41", + "value": "0x0", + "data": "0x60806040526040516200103838038062001038833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200028c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f83836040518060600160405280602781526020016200101160279139620002f8565b9392505050565b60006200018060008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620002b81760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b6200022e1760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b610a1780620005da6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b61009036600461088b565b610135565b61006b6100a33660046108a6565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b61010136600461088b565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109bb602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161052a565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b61042283610552565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101748161059f565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516104cf919061094d565b600060405180830381855af49150503d806000811461050a576040519150601f19603f3d011682016040523d82523d6000602084013e61050f565b606091505b5091509150610520868383876106ab565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b61055b81610753565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff8116610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561074157825160000361073a5773ffffffffffffffffffffffffffffffffffffffff85163b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103a2565b508161074b565b61074b838361081e565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff81163b6107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610665565b81511561082e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610969565b803573ffffffffffffffffffffffffffffffffffffffff8116811461088657600080fd5b919050565b60006020828403121561089d57600080fd5b6102b182610862565b6000806000604084860312156108bb57600080fd5b6108c484610862565b9250602084013567ffffffffffffffff808211156108e157600080fd5b818601915086601f8301126108f557600080fd5b81358181111561090457600080fd5b87602082850101111561091657600080fd5b6020830194508093505050509250925092565b60005b8381101561094457818101518382015260200161092c565b50506000910152565b6000825161095f818460208701610929565b9190910192915050565b6020815260008251806020840152610988816040850160208701610929565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220260b4cd1cb12a8f0d6f49a3bd23ac54c79daadb2bbbb696622a8c7a10c3f85d964736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a77200000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x26", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf0e63a6cd3d7fdacabce9304686783548d4be2ebfa7430e18bf5785391f748ec", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x55cB0D9c32453ecD84aB628cf3A320aB8997fae2", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0x55cb0d9c32453ecd84ab628cf3a320ab8997fae2", + "gas": "0xaaee2", + "value": "0x0", + "data": "0xed7a7d0e00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002371e134e3455e0593363cbf89d3b6cf537406180000000000000000000000000000000000c097ce7bc90715b34b9f100000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001e6d6574616d6f7270686f2d6761756e746c65742d776574682d7072696d6500000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x27", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xadfa93f14a74b01d1e9878a92d76addf9bb3693265e28e72255ee51be638a0aa", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x3c33C929379D98eb83F1A3fc46A432767Cb32A3a", + "function": null, + "arguments": [ + "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "0x51c8FA2c1F093AC643f6431766b1c227d869Cb6F", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xd8f41", + "value": "0x0", + "data": "0x60806040526040516200103838038062001038833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200028c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f83836040518060600160405280602781526020016200101160279139620002f8565b9392505050565b60006200018060008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620002b81760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b6200022e1760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b610a1780620005da6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b61009036600461088b565b610135565b61006b6100a33660046108a6565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b61010136600461088b565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109bb602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161052a565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b61042283610552565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101748161059f565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516104cf919061094d565b600060405180830381855af49150503d806000811461050a576040519150601f19603f3d011682016040523d82523d6000602084013e61050f565b606091505b5091509150610520868383876106ab565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b61055b81610753565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff8116610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561074157825160000361073a5773ffffffffffffffffffffffffffffffffffffffff85163b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103a2565b508161074b565b61074b838361081e565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff81163b6107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610665565b81511561082e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610969565b803573ffffffffffffffffffffffffffffffffffffffff8116811461088657600080fd5b919050565b60006020828403121561089d57600080fd5b6102b182610862565b6000806000604084860312156108bb57600080fd5b6108c484610862565b9250602084013567ffffffffffffffff808211156108e157600080fd5b818601915086601f8301126108f557600080fd5b81358181111561090457600080fd5b87602082850101111561091657600080fd5b6020830194508093505050509250925092565b60005b8381101561094457818101518382015260200161092c565b50506000910152565b6000825161095f818460208701610929565b9190910192915050565b6020815260008251806020840152610988816040850160208701610929565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220260b4cd1cb12a8f0d6f49a3bd23ac54c79daadb2bbbb696622a8c7a10c3f85d964736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a77200000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x28", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x9c1a983c953d6987fa21f86632fdfb57c4d284dd9cc851aaead4de8d1271cbb1", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x3c33C929379D98eb83F1A3fc46A432767Cb32A3a", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0x3c33c929379d98eb83f1a3fc46a432767cb32a3a", + "gas": "0x80ec5", + "value": "0x0", + "data": "0xed7a7d0e00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dd0f28e19c1780eb6396170735d45153d261490d0000000000000000000000000000000000c097ce7bc90715b34b9f100000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001e6d6574616d6f7270686f2d6761756e746c65742d757364632d7072696d6500000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x29", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xfba391287dd33367b51a2573e8351b55d84d83863810d8dca566b492c83bd2f1", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x173F7C86757bFD9Aea8D218Ac03E2Bc787F31fE4", + "function": null, + "arguments": [ + "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "0x51c8FA2c1F093AC643f6431766b1c227d869Cb6F", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xd8f41", + "value": "0x0", + "data": "0x60806040526040516200103838038062001038833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200028c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f83836040518060600160405280602781526020016200101160279139620002f8565b9392505050565b60006200018060008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620002b81760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b6200022e1760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b610a1780620005da6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b61009036600461088b565b610135565b61006b6100a33660046108a6565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b61010136600461088b565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109bb602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161052a565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b61042283610552565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101748161059f565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516104cf919061094d565b600060405180830381855af49150503d806000811461050a576040519150601f19603f3d011682016040523d82523d6000602084013e61050f565b606091505b5091509150610520868383876106ab565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b61055b81610753565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff8116610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561074157825160000361073a5773ffffffffffffffffffffffffffffffffffffffff85163b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103a2565b508161074b565b61074b838361081e565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff81163b6107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610665565b81511561082e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610969565b803573ffffffffffffffffffffffffffffffffffffffff8116811461088657600080fd5b919050565b60006020828403121561089d57600080fd5b6102b182610862565b6000806000604084860312156108bb57600080fd5b6108c484610862565b9250602084013567ffffffffffffffff808211156108e157600080fd5b818601915086601f8301126108f557600080fd5b81358181111561090457600080fd5b87602082850101111561091657600080fd5b6020830194508093505050509250925092565b60005b8381101561094457818101518382015260200161092c565b50506000910152565b6000825161095f818460208701610929565b9190910192915050565b6020815260008251806020840152610988816040850160208701610929565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220260b4cd1cb12a8f0d6f49a3bd23ac54c79daadb2bbbb696622a8c7a10c3f85d964736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a77200000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2a", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x65a1d65ee38c96e5f16eeb22789de6fc7b5c4435477f97b6e2f0c5cbe53008b4", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x173F7C86757bFD9Aea8D218Ac03E2Bc787F31fE4", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0x173f7c86757bfd9aea8d218ac03e2bc787f31fe4", + "gas": "0x874cc", + "value": "0x0", + "data": "0xed7a7d0e00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000beef01735c132ada46aa9aa4c54623caa92a64cb0000000000000000000000000000000000c097ce7bc90715b34b9f100000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001a6d6574616d6f7270686f2d737465616b686f7573652d757364630000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2b", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xec15f7c716ef78956f2ad45a5aceed5d2b1063c17b9397636da4e6a3e22c4e48", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x92e19a03468356FEd850EAF6cA5f25d8d6Ebf5AD", + "function": null, + "arguments": [ + "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "0x51c8FA2c1F093AC643f6431766b1c227d869Cb6F", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xd8f41", + "value": "0x0", + "data": "0x60806040526040516200103838038062001038833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200028c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f83836040518060600160405280602781526020016200101160279139620002f8565b9392505050565b60006200018060008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620002b81760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b6200022e1760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b610a1780620005da6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b61009036600461088b565b610135565b61006b6100a33660046108a6565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b61010136600461088b565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109bb602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161052a565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b61042283610552565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101748161059f565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516104cf919061094d565b600060405180830381855af49150503d806000811461050a576040519150601f19603f3d011682016040523d82523d6000602084013e61050f565b606091505b5091509150610520868383876106ab565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b61055b81610753565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff8116610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561074157825160000361073a5773ffffffffffffffffffffffffffffffffffffffff85163b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103a2565b508161074b565b61074b838361081e565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff81163b6107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610665565b81511561082e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610969565b803573ffffffffffffffffffffffffffffffffffffffff8116811461088657600080fd5b919050565b60006020828403121561089d57600080fd5b6102b182610862565b6000806000604084860312156108bb57600080fd5b6108c484610862565b9250602084013567ffffffffffffffff808211156108e157600080fd5b818601915086601f8301126108f557600080fd5b81358181111561090457600080fd5b87602082850101111561091657600080fd5b6020830194508093505050509250925092565b60005b8381101561094457818101518382015260200161092c565b50506000910152565b6000825161095f818460208701610929565b9190910192915050565b6020815260008251806020840152610988816040850160208701610929565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220260b4cd1cb12a8f0d6f49a3bd23ac54c79daadb2bbbb696622a8c7a10c3f85d964736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a77200000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2c", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x1f1263b7264e04b1651dd162b5de564f0ecce92330ea10ff9ee006a9bbcee9f3", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x92e19a03468356FEd850EAF6cA5f25d8d6Ebf5AD", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0x92e19a03468356fed850eaf6ca5f25d8d6ebf5ad", + "gas": "0x94849", + "value": "0x0", + "data": "0xed7a7d0e00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000007000000000000000000000000beef02e5e13584ab96848af90261f0c8ee04722a0000000000000000000000000000000000c097ce7bc90715b34b9f100000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001b6d6574616d6f7270686f2d737465616b686f7573652d707975736400000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2d", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2384fcaca2b1afd6fb425a73420a1c0380ff8c86ff7cee5f2dd42eb7e77c0910", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0xBa57985052Dc49075e353b359c7A8Cc47807F60d", + "function": null, + "arguments": [ + "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "0x51c8FA2c1F093AC643f6431766b1c227d869Cb6F", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xd8f41", + "value": "0x0", + "data": "0x60806040526040516200103838038062001038833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200028c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f83836040518060600160405280602781526020016200101160279139620002f8565b9392505050565b60006200018060008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620002b81760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b6200022e1760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b610a1780620005da6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b61009036600461088b565b610135565b61006b6100a33660046108a6565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b61010136600461088b565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109bb602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161052a565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b61042283610552565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101748161059f565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516104cf919061094d565b600060405180830381855af49150503d806000811461050a576040519150601f19603f3d011682016040523d82523d6000602084013e61050f565b606091505b5091509150610520868383876106ab565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b61055b81610753565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff8116610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561074157825160000361073a5773ffffffffffffffffffffffffffffffffffffffff85163b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103a2565b508161074b565b61074b838361081e565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff81163b6107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610665565b81511561082e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610969565b803573ffffffffffffffffffffffffffffffffffffffff8116811461088657600080fd5b919050565b60006020828403121561089d57600080fd5b6102b182610862565b6000806000604084860312156108bb57600080fd5b6108c484610862565b9250602084013567ffffffffffffffff808211156108e157600080fd5b818601915086601f8301126108f557600080fd5b81358181111561090457600080fd5b87602082850101111561091657600080fd5b6020830194508093505050509250925092565b60005b8381101561094457818101518382015260200161092c565b50506000910152565b6000825161095f818460208701610929565b9190910192915050565b6020815260008251806020840152610988816040850160208701610929565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220260b4cd1cb12a8f0d6f49a3bd23ac54c79daadb2bbbb696622a8c7a10c3f85d964736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a77200000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2e", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x0f6cb3dce126e404f0edc39272205791188b53db904282ae2c103448167a1970", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0xBa57985052Dc49075e353b359c7A8Cc47807F60d", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0xba57985052dc49075e353b359c7a8cc47807f60d", + "gas": "0xb0bbf", + "value": "0x0", + "data": "0xed7a7d0e00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038989bba00bdf8181f4082995b3deae96163ac5d0000000000000000000000000000000000c097ce7bc90715b34b9f1000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000216d6574616d6f7270686f2d6270726f746f636f6c2d666c6167736869702d657468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2f", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xbd562a27526c90146eddf944d1d351d32f7000f3b20aaf95b79b2216b170234a", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0xee7fA506CDC3E3698087B25dE72eeAC37131119d", + "function": null, + "arguments": [ + "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "0x51c8FA2c1F093AC643f6431766b1c227d869Cb6F", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xd8f41", + "value": "0x0", + "data": "0x60806040526040516200103838038062001038833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200028c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f83836040518060600160405280602781526020016200101160279139620002f8565b9392505050565b60006200018060008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620002b81760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b6200022e1760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b610a1780620005da6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b61009036600461088b565b610135565b61006b6100a33660046108a6565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b61010136600461088b565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109bb602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161052a565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b61042283610552565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101748161059f565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516104cf919061094d565b600060405180830381855af49150503d806000811461050a576040519150601f19603f3d011682016040523d82523d6000602084013e61050f565b606091505b5091509150610520868383876106ab565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b61055b81610753565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff8116610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561074157825160000361073a5773ffffffffffffffffffffffffffffffffffffffff85163b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103a2565b508161074b565b61074b838361081e565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff81163b6107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610665565b81511561082e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610969565b803573ffffffffffffffffffffffffffffffffffffffff8116811461088657600080fd5b919050565b60006020828403121561089d57600080fd5b6102b182610862565b6000806000604084860312156108bb57600080fd5b6108c484610862565b9250602084013567ffffffffffffffff808211156108e157600080fd5b818601915086601f8301126108f557600080fd5b81358181111561090457600080fd5b87602082850101111561091657600080fd5b6020830194508093505050509250925092565b60005b8381101561094457818101518382015260200161092c565b50506000910152565b6000825161095f818460208701610929565b9190910192915050565b6020815260008251806020840152610988816040850160208701610929565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220260b4cd1cb12a8f0d6f49a3bd23ac54c79daadb2bbbb696622a8c7a10c3f85d964736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a77200000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x30", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3494cb3e0ae72f89efa411ac118655fdede9ba5c70e180eef33ba2521dcbf0c5", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0xee7fA506CDC3E3698087B25dE72eeAC37131119d", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0xee7fa506cdc3e3698087b25de72eeac37131119d", + "gas": "0x126e2d", + "value": "0x0", + "data": "0xed7a7d0e00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000078fc2c2ed1a4cdb5402365934ae5648adad094d00000000000000000000000000000000000c097ce7bc90715b34b9f100000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000136d6574616d6f7270686f2d7265372d77657468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c55126051b22ebb829d00368f4b12bde432de5da000000000000000000000000320623b8e4ff03373931769a31fc52a4e78b5d70000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000008207c1ffc5b6804f6024322ccf34f29c3541ae26", + "nonce": "0x31", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3071fdd10bba616852335195d7816271316b6a16febc1a86f30fbf41bdc66020", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x9A7582DD1946dCCF000B155a88649C64228fAf24", + "function": null, + "arguments": [ + "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "0x51c8FA2c1F093AC643f6431766b1c227d869Cb6F", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xd8f41", + "value": "0x0", + "data": "0x60806040526040516200103838038062001038833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200028c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f83836040518060600160405280602781526020016200101160279139620002f8565b9392505050565b60006200018060008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620002b81760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b6200022e1760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b610a1780620005da6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b61009036600461088b565b610135565b61006b6100a33660046108a6565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b61010136600461088b565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109bb602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161052a565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b61042283610552565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101748161059f565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516104cf919061094d565b600060405180830381855af49150503d806000811461050a576040519150601f19603f3d011682016040523d82523d6000602084013e61050f565b606091505b5091509150610520868383876106ab565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b61055b81610753565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff8116610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561074157825160000361073a5773ffffffffffffffffffffffffffffffffffffffff85163b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103a2565b508161074b565b61074b838361081e565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff81163b6107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610665565b81511561082e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610969565b803573ffffffffffffffffffffffffffffffffffffffff8116811461088657600080fd5b919050565b60006020828403121561089d57600080fd5b6102b182610862565b6000806000604084860312156108bb57600080fd5b6108c484610862565b9250602084013567ffffffffffffffff808211156108e157600080fd5b818601915086601f8301126108f557600080fd5b81358181111561090457600080fd5b87602082850101111561091657600080fd5b6020830194508093505050509250925092565b60005b8381101561094457818101518382015260200161092c565b50506000910152565b6000825161095f818460208701610929565b9190910192915050565b6020815260008251806020840152610988816040850160208701610929565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220260b4cd1cb12a8f0d6f49a3bd23ac54c79daadb2bbbb696622a8c7a10c3f85d964736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a77200000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x32", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x244d3596ae25f49aed76322a69b4465c2d80ebbe1c8a47f758ff11e7e7955c86", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x9A7582DD1946dCCF000B155a88649C64228fAf24", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0x9a7582dd1946dccf000b155a88649c64228faf24", + "gas": "0x8aeb7", + "value": "0x0", + "data": "0xed7a7d0e00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000095eef579155cd2c5510f312c8fa39208c3be01a80000000000000000000000000000000000c097ce7bc90715b34b9f100000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000136d6574616d6f7270686f2d7265372d75736474000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x33", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xaefb8bc1f3429c2d9aac8a19fb442ab47ccdfee14908650f6e4f719816572527", + "transactionIndex": "0x7", + "blockHash": "0xf2a61e3533d560046d91d4b98a86829a3d149571b43f0b8f842f6085ea64525a", + "blockNumber": "0x1348068", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x172ae2", + "gasUsed": "0x8590e", + "contractAddress": "0x5665Aa09D1A8b3775024e62E82A902Ae760eebbA", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1c002b524" + }, + { + "transactionHash": "0x8d8d150ea7346198a0b13a5e189dee811350da01ca62e226e33e209fdb440772", + "transactionIndex": "0x10", + "blockHash": "0x984379c1d2be0fa7a6af8b8c75ec2769a78f84d39b500b29163e585dd9dd2da2", + "blockNumber": "0x1348069", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x15cb58", + "gasUsed": "0xa6e32", + "contractAddress": "0x55cB0D9c32453ecD84aB628cf3A320aB8997fae2", + "logs": [ + { + "address": "0x55cB0D9c32453ecD84aB628cf3A320aB8997fae2", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a772" + ], + "data": "0x", + "blockHash": "0x984379c1d2be0fa7a6af8b8c75ec2769a78f84d39b500b29163e585dd9dd2da2", + "blockNumber": "0x1348069", + "transactionHash": "0x8d8d150ea7346198a0b13a5e189dee811350da01ca62e226e33e209fdb440772", + "transactionIndex": "0x10", + "logIndex": "0xc", + "removed": false + }, + { + "address": "0x55cB0D9c32453ecD84aB628cf3A320aB8997fae2", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f", + "blockHash": "0x984379c1d2be0fa7a6af8b8c75ec2769a78f84d39b500b29163e585dd9dd2da2", + "blockNumber": "0x1348069", + "transactionHash": "0x8d8d150ea7346198a0b13a5e189dee811350da01ca62e226e33e209fdb440772", + "transactionIndex": "0x10", + "logIndex": "0xd", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004000000000000800000000000008000000000000000000000800000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000010000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000004000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1bc51f1df" + }, + { + "transactionHash": "0xf0e63a6cd3d7fdacabce9304686783548d4be2ebfa7430e18bf5785391f748ec", + "transactionIndex": "0x40", + "blockHash": "0x4cb8961afe555735ff2feeb0cdf0de47548c2f5dfef78d976acaca57427936f2", + "blockNumber": "0x134806a", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0x55cB0D9c32453ecD84aB628cf3A320aB8997fae2", + "cumulativeGasUsed": "0x78dd4f", + "gasUsed": "0x74e02", + "contractAddress": null, + "logs": [ + { + "address": "0x55cB0D9c32453ecD84aB628cf3A320aB8997fae2", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x4cb8961afe555735ff2feeb0cdf0de47548c2f5dfef78d976acaca57427936f2", + "blockNumber": "0x134806a", + "transactionHash": "0xf0e63a6cd3d7fdacabce9304686783548d4be2ebfa7430e18bf5785391f748ec", + "transactionIndex": "0x40", + "logIndex": "0x114", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1a8fdaa3c" + }, + { + "transactionHash": "0xadfa93f14a74b01d1e9878a92d76addf9bb3693265e28e72255ee51be638a0aa", + "transactionIndex": "0xe", + "blockHash": "0x759129c69483be9df478162a192cf82eb58aecbc32e1211e656db3bcbc6e1a82", + "blockNumber": "0x134806b", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x24005d", + "gasUsed": "0xa6e32", + "contractAddress": "0x3c33C929379D98eb83F1A3fc46A432767Cb32A3a", + "logs": [ + { + "address": "0x3c33C929379D98eb83F1A3fc46A432767Cb32A3a", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a772" + ], + "data": "0x", + "blockHash": "0x759129c69483be9df478162a192cf82eb58aecbc32e1211e656db3bcbc6e1a82", + "blockNumber": "0x134806b", + "transactionHash": "0xadfa93f14a74b01d1e9878a92d76addf9bb3693265e28e72255ee51be638a0aa", + "transactionIndex": "0xe", + "logIndex": "0x33", + "removed": false + }, + { + "address": "0x3c33C929379D98eb83F1A3fc46A432767Cb32A3a", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f", + "blockHash": "0x759129c69483be9df478162a192cf82eb58aecbc32e1211e656db3bcbc6e1a82", + "blockNumber": "0x134806b", + "transactionHash": "0xadfa93f14a74b01d1e9878a92d76addf9bb3693265e28e72255ee51be638a0aa", + "transactionIndex": "0xe", + "logIndex": "0x34", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000002004000000000000000000000000008000000000000000000000800000000000000000000800000000000000000000000000000000000000000200000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000010000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1a98f8f2d" + }, + { + "transactionHash": "0x9c1a983c953d6987fa21f86632fdfb57c4d284dd9cc851aaead4de8d1271cbb1", + "transactionIndex": "0x33", + "blockHash": "0x56a853cd975a6ef8588b49a509a2e65b08ea536a6cdd044f38b2b079377c24ef", + "blockNumber": "0x134806c", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0x3c33C929379D98eb83F1A3fc46A432767Cb32A3a", + "cumulativeGasUsed": "0x4b8019", + "gasUsed": "0x58271", + "contractAddress": null, + "logs": [ + { + "address": "0x3c33C929379D98eb83F1A3fc46A432767Cb32A3a", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x56a853cd975a6ef8588b49a509a2e65b08ea536a6cdd044f38b2b079377c24ef", + "blockNumber": "0x134806c", + "transactionHash": "0x9c1a983c953d6987fa21f86632fdfb57c4d284dd9cc851aaead4de8d1271cbb1", + "transactionIndex": "0x33", + "logIndex": "0x8c", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1ae081f7d" + }, + { + "transactionHash": "0xfba391287dd33367b51a2573e8351b55d84d83863810d8dca566b492c83bd2f1", + "transactionIndex": "0xf", + "blockHash": "0x3e4606221c21a5302002d896b1206e06f7ec7d46db65afc11b4303d7aa949c5c", + "blockNumber": "0x134806d", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x61b1ed", + "gasUsed": "0xa6e32", + "contractAddress": "0x173F7C86757bFD9Aea8D218Ac03E2Bc787F31fE4", + "logs": [ + { + "address": "0x173F7C86757bFD9Aea8D218Ac03E2Bc787F31fE4", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a772" + ], + "data": "0x", + "blockHash": "0x3e4606221c21a5302002d896b1206e06f7ec7d46db65afc11b4303d7aa949c5c", + "blockNumber": "0x134806d", + "transactionHash": "0xfba391287dd33367b51a2573e8351b55d84d83863810d8dca566b492c83bd2f1", + "transactionIndex": "0xf", + "logIndex": "0x81", + "removed": false + }, + { + "address": "0x173F7C86757bFD9Aea8D218Ac03E2Bc787F31fE4", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f", + "blockHash": "0x3e4606221c21a5302002d896b1206e06f7ec7d46db65afc11b4303d7aa949c5c", + "blockNumber": "0x134806d", + "transactionHash": "0xfba391287dd33367b51a2573e8351b55d84d83863810d8dca566b492c83bd2f1", + "transactionIndex": "0xf", + "logIndex": "0x82", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000002004000000400000000000000000008000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000010000000080000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1a3846aef" + }, + { + "transactionHash": "0x65a1d65ee38c96e5f16eeb22789de6fc7b5c4435477f97b6e2f0c5cbe53008b4", + "transactionIndex": "0x2b", + "blockHash": "0xaaa4daa40f848412b4a77f977072b1d64041207ec6b96ea74ecd96907701bafc", + "blockNumber": "0x134806e", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0x173F7C86757bFD9Aea8D218Ac03E2Bc787F31fE4", + "cumulativeGasUsed": "0x829d0e", + "gasUsed": "0x61f47", + "contractAddress": null, + "logs": [ + { + "address": "0x173F7C86757bFD9Aea8D218Ac03E2Bc787F31fE4", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xaaa4daa40f848412b4a77f977072b1d64041207ec6b96ea74ecd96907701bafc", + "blockNumber": "0x134806e", + "transactionHash": "0x65a1d65ee38c96e5f16eeb22789de6fc7b5c4435477f97b6e2f0c5cbe53008b4", + "transactionIndex": "0x2b", + "logIndex": "0x12d", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000080000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x19f29fa81" + }, + { + "transactionHash": "0xec15f7c716ef78956f2ad45a5aceed5d2b1063c17b9397636da4e6a3e22c4e48", + "transactionIndex": "0x2e", + "blockHash": "0xd10007198fecd1773682e0200ffd5f4d54f1f079fb452c7b1b123a0908565648", + "blockNumber": "0x134806f", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x38340b", + "gasUsed": "0xa6e32", + "contractAddress": "0x92e19a03468356FEd850EAF6cA5f25d8d6Ebf5AD", + "logs": [ + { + "address": "0x92e19a03468356FEd850EAF6cA5f25d8d6Ebf5AD", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a772" + ], + "data": "0x", + "blockHash": "0xd10007198fecd1773682e0200ffd5f4d54f1f079fb452c7b1b123a0908565648", + "blockNumber": "0x134806f", + "transactionHash": "0xec15f7c716ef78956f2ad45a5aceed5d2b1063c17b9397636da4e6a3e22c4e48", + "transactionIndex": "0x2e", + "logIndex": "0x58", + "removed": false + }, + { + "address": "0x92e19a03468356FEd850EAF6cA5f25d8d6Ebf5AD", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f", + "blockHash": "0xd10007198fecd1773682e0200ffd5f4d54f1f079fb452c7b1b123a0908565648", + "blockNumber": "0x134806f", + "transactionHash": "0xec15f7c716ef78956f2ad45a5aceed5d2b1063c17b9397636da4e6a3e22c4e48", + "transactionIndex": "0x2e", + "logIndex": "0x59", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000040000000000000002004000000000000000000000000008000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000010000000000000000000020000000000002000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1bcac113a" + }, + { + "transactionHash": "0x1f1263b7264e04b1651dd162b5de564f0ecce92330ea10ff9ee006a9bbcee9f3", + "transactionIndex": "0x39", + "blockHash": "0xa29d080d37317b5eeb676851f8e286133315806c60d233ac7f5f24b168946590", + "blockNumber": "0x1348070", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0x92e19a03468356FEd850EAF6cA5f25d8d6Ebf5AD", + "cumulativeGasUsed": "0x6a06c9", + "gasUsed": "0x6b864", + "contractAddress": null, + "logs": [ + { + "address": "0x92e19a03468356FEd850EAF6cA5f25d8d6Ebf5AD", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xa29d080d37317b5eeb676851f8e286133315806c60d233ac7f5f24b168946590", + "blockNumber": "0x1348070", + "transactionHash": "0x1f1263b7264e04b1651dd162b5de564f0ecce92330ea10ff9ee006a9bbcee9f3", + "transactionIndex": "0x39", + "logIndex": "0xe5", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000002000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1c1c28b63" + }, + { + "transactionHash": "0x2384fcaca2b1afd6fb425a73420a1c0380ff8c86ff7cee5f2dd42eb7e77c0910", + "transactionIndex": "0x5", + "blockHash": "0x93a466d8ae27dc7a69d3a26adad29951ffe66811eaafcc1ce3cf40b75ed0632c", + "blockNumber": "0x1348071", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x1621b1", + "gasUsed": "0xa6e32", + "contractAddress": "0xBa57985052Dc49075e353b359c7A8Cc47807F60d", + "logs": [ + { + "address": "0xBa57985052Dc49075e353b359c7A8Cc47807F60d", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a772" + ], + "data": "0x", + "blockHash": "0x93a466d8ae27dc7a69d3a26adad29951ffe66811eaafcc1ce3cf40b75ed0632c", + "blockNumber": "0x1348071", + "transactionHash": "0x2384fcaca2b1afd6fb425a73420a1c0380ff8c86ff7cee5f2dd42eb7e77c0910", + "transactionIndex": "0x5", + "logIndex": "0x25", + "removed": false + }, + { + "address": "0xBa57985052Dc49075e353b359c7A8Cc47807F60d", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f", + "blockHash": "0x93a466d8ae27dc7a69d3a26adad29951ffe66811eaafcc1ce3cf40b75ed0632c", + "blockNumber": "0x1348071", + "transactionHash": "0x2384fcaca2b1afd6fb425a73420a1c0380ff8c86ff7cee5f2dd42eb7e77c0910", + "transactionIndex": "0x5", + "logIndex": "0x26", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004000000000000000000000000008000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000400000000000000010000000000000000000020000000000000000000000000000800000400000000000008000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1bfdd3017" + }, + { + "transactionHash": "0x0f6cb3dce126e404f0edc39272205791188b53db904282ae2c103448167a1970", + "transactionIndex": "0x23", + "blockHash": "0x520a1f7f7fbabb22902521229ae9dbc87e42368e07f394ed80fbbeaf4cab6449", + "blockNumber": "0x1348072", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0xBa57985052Dc49075e353b359c7A8Cc47807F60d", + "cumulativeGasUsed": "0x3f56b1", + "gasUsed": "0x7ff3e", + "contractAddress": null, + "logs": [ + { + "address": "0xBa57985052Dc49075e353b359c7A8Cc47807F60d", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x520a1f7f7fbabb22902521229ae9dbc87e42368e07f394ed80fbbeaf4cab6449", + "blockNumber": "0x1348072", + "transactionHash": "0x0f6cb3dce126e404f0edc39272205791188b53db904282ae2c103448167a1970", + "transactionIndex": "0x23", + "logIndex": "0x78", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000400000000000000000000000000000000000000000000000000000000040000000800000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1b6e3bd51" + }, + { + "transactionHash": "0xbd562a27526c90146eddf944d1d351d32f7000f3b20aaf95b79b2216b170234a", + "transactionIndex": "0x3e", + "blockHash": "0x38669203f4734893eb1d7f5fe5f5a03efe425689408100f0c4c4bfa27d73e1cf", + "blockNumber": "0x1348073", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x7f2571", + "gasUsed": "0xa6e32", + "contractAddress": "0xee7fA506CDC3E3698087B25dE72eeAC37131119d", + "logs": [ + { + "address": "0xee7fA506CDC3E3698087B25dE72eeAC37131119d", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a772" + ], + "data": "0x", + "blockHash": "0x38669203f4734893eb1d7f5fe5f5a03efe425689408100f0c4c4bfa27d73e1cf", + "blockNumber": "0x1348073", + "transactionHash": "0xbd562a27526c90146eddf944d1d351d32f7000f3b20aaf95b79b2216b170234a", + "transactionIndex": "0x3e", + "logIndex": "0x110", + "removed": false + }, + { + "address": "0xee7fA506CDC3E3698087B25dE72eeAC37131119d", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f", + "blockHash": "0x38669203f4734893eb1d7f5fe5f5a03efe425689408100f0c4c4bfa27d73e1cf", + "blockNumber": "0x1348073", + "transactionHash": "0xbd562a27526c90146eddf944d1d351d32f7000f3b20aaf95b79b2216b170234a", + "transactionIndex": "0x3e", + "logIndex": "0x111", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000002004000000000000000000000000008000000000000000000000000020000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000010000000000000000000020000000000000000000000800000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1ad70cc82" + }, + { + "transactionHash": "0x3494cb3e0ae72f89efa411ac118655fdede9ba5c70e180eef33ba2521dcbf0c5", + "transactionIndex": "0x38", + "blockHash": "0x29f9828c651dc07036901871f2c0c20ee17acd056ee8556c11d2d31a412bd6b6", + "blockNumber": "0x1348074", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0xee7fA506CDC3E3698087B25dE72eeAC37131119d", + "cumulativeGasUsed": "0x7be69e", + "gasUsed": "0xc9a1b", + "contractAddress": null, + "logs": [ + { + "address": "0xee7fA506CDC3E3698087B25dE72eeAC37131119d", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x29f9828c651dc07036901871f2c0c20ee17acd056ee8556c11d2d31a412bd6b6", + "blockNumber": "0x1348074", + "transactionHash": "0x3494cb3e0ae72f89efa411ac118655fdede9ba5c70e180eef33ba2521dcbf0c5", + "transactionIndex": "0x38", + "logIndex": "0xea", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1b2dd2617" + }, + { + "transactionHash": "0x3071fdd10bba616852335195d7816271316b6a16febc1a86f30fbf41bdc66020", + "transactionIndex": "0x2", + "blockHash": "0x88081fd821f7474d9c389a3b3e6c0c63b4d3df67513ba97fb11094c69629e675", + "blockNumber": "0x1348075", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x102c99", + "gasUsed": "0xa6e32", + "contractAddress": "0x9A7582DD1946dCCF000B155a88649C64228fAf24", + "logs": [ + { + "address": "0x9A7582DD1946dCCF000B155a88649C64228fAf24", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a772" + ], + "data": "0x", + "blockHash": "0x88081fd821f7474d9c389a3b3e6c0c63b4d3df67513ba97fb11094c69629e675", + "blockNumber": "0x1348075", + "transactionHash": "0x3071fdd10bba616852335195d7816271316b6a16febc1a86f30fbf41bdc66020", + "transactionIndex": "0x2", + "logIndex": "0xe", + "removed": false + }, + { + "address": "0x9A7582DD1946dCCF000B155a88649C64228fAf24", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f", + "blockHash": "0x88081fd821f7474d9c389a3b3e6c0c63b4d3df67513ba97fb11094c69629e675", + "blockNumber": "0x1348075", + "transactionHash": "0x3071fdd10bba616852335195d7816271316b6a16febc1a86f30fbf41bdc66020", + "transactionIndex": "0x2", + "logIndex": "0xf", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002006000000000000000000000000008000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000040000000000000000000000010000000000000000000020000000000000000000000100000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1b0d81d84" + }, + { + "transactionHash": "0x244d3596ae25f49aed76322a69b4465c2d80ebbe1c8a47f758ff11e7e7955c86", + "transactionIndex": "0x19", + "blockHash": "0xc091deb282a5ba0cf3e2c348fdfa52e695af5bf9308e277767778a38a48ffdb3", + "blockNumber": "0x1348076", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0x9A7582DD1946dCCF000B155a88649C64228fAf24", + "cumulativeGasUsed": "0x308994", + "gasUsed": "0x64935", + "contractAddress": null, + "logs": [ + { + "address": "0x9A7582DD1946dCCF000B155a88649C64228fAf24", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xc091deb282a5ba0cf3e2c348fdfa52e695af5bf9308e277767778a38a48ffdb3", + "blockNumber": "0x1348076", + "transactionHash": "0x244d3596ae25f49aed76322a69b4465c2d80ebbe1c8a47f758ff11e7e7955c86", + "transactionIndex": "0x19", + "logIndex": "0x5e", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x1b7d04233" + } + ], + "libraries": [ + "script/helper/ArraysHelper.sol:ArraysHelper:0x5665aa09d1a8b3775024e62e82a902ae760eebba", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0", + "src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1", + "src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89", + "src/strategies/libraries/EthFrxEthAssetGroupAdapter.sol:EthFrxEthAssetGroupAdapter:0xE23681bAA697EF5054E2D8C397ae59145027625D", + "src/strategies/libraries/EthStEthAssetGroupAdapter.sol:EthStEthAssetGroupAdapter:0x1516eb3a54377168b6b184326200f4258C3529dF" + ], + "pending": [], + "returns": {}, + "timestamp": 1719912993, + "chain": 1, + "multi": false, + "commit": "865f5cf" +} \ No newline at end of file diff --git a/broadcast/mainnet-production/MetamorphoExtraStrategySetup.s.sol/1/run-latest.json b/broadcast/mainnet-production/MetamorphoExtraStrategySetup.s.sol/1/run-latest.json new file mode 100644 index 00000000..6f97e25d --- /dev/null +++ b/broadcast/mainnet-production/MetamorphoExtraStrategySetup.s.sol/1/run-latest.json @@ -0,0 +1,137 @@ +{ + "transactions": [ + { + "hash": "0x2296508471c33919c19d198d8bed8915a72736575b638fe928ca648fd138bfdb", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0xF9062A1b7BB1797dEe82A1D61f0a88B2dFD765Fd", + "function": null, + "arguments": [ + "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "0x51c8FA2c1F093AC643f6431766b1c227d869Cb6F", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "gas": "0xd8f41", + "value": "0x0", + "data": "0x60806040526040516200103838038062001038833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200028c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f83836040518060600160405280602781526020016200101160279139620002f8565b9392505050565b60006200018060008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000ff183398151915260001b6200037760201b6200022e1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620002b81760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b6200022e1760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b610a1780620005da6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b61009036600461088b565b610135565b61006b6100a33660046108a6565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b61010136600461088b565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109bb602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161052a565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b61042283610552565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101748161059f565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516104cf919061094d565b600060405180830381855af49150503d806000811461050a576040519150601f19603f3d011682016040523d82523d6000602084013e61050f565b606091505b5091509150610520868383876106ab565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b61055b81610753565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff8116610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561074157825160000361073a5773ffffffffffffffffffffffffffffffffffffffff85163b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103a2565b508161074b565b61074b838361081e565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff81163b6107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610665565b81511561082e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610969565b803573ffffffffffffffffffffffffffffffffffffffff8116811461088657600080fd5b919050565b60006020828403121561089d57600080fd5b6102b182610862565b6000806000604084860312156108bb57600080fd5b6108c484610862565b9250602084013567ffffffffffffffff808211156108e157600080fd5b818601915086601f8301126108f557600080fd5b81358181111561090457600080fd5b87602082850101111561091657600080fd5b6020830194508093505050509250925092565b60005b8381101561094457818101518382015260200161092c565b50506000910152565b6000825161095f818460208701610929565b9190910192915050565b6020815260008251806020840152610988816040850160208701610929565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204df8dd7579660e6cbf71515617566dd00436ccee41685b8933943909d1b8194c64736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a77200000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x34", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x50eea8ab0aeeecca73ba75beb81f211a7414bc99459386a7afaf2a70fbe3ef19", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0xF9062A1b7BB1797dEe82A1D61f0a88B2dFD765Fd", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xedee7b1c9a240c4085a5fcac8f4fa750e3779695", + "to": "0xf9062a1b7bb1797dee82a1d61f0a88b2dfd765fd", + "gas": "0xbb3a0", + "value": "0x0", + "data": "0xed7a7d0e00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000030000000000000000000000002c25f6c25770ffec5959d34b94bf898865e5d6b10000000000000000000000000000000000c097ce7bc90715b34b9f1000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000226d6574616d6f7270686f2d6270726f746f636f6c2d666c6167736869702d757364740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x35", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x2296508471c33919c19d198d8bed8915a72736575b638fe928ca648fd138bfdb", + "transactionIndex": "0x8", + "blockHash": "0x3a6379943292ed0793990216dcda57a525d2e17f732b6f405f9320164dd60b00", + "blockNumber": "0x13480e7", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": null, + "cumulativeGasUsed": "0x1c827c", + "gasUsed": "0xa6e32", + "contractAddress": "0xF9062A1b7BB1797dEe82A1D61f0a88B2dFD765Fd", + "logs": [ + { + "address": "0xF9062A1b7BB1797dEe82A1D61f0a88B2dFD765Fd", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000db19e40bd45920b09ac7ff2778d4a1ca90c0a772" + ], + "data": "0x", + "blockHash": "0x3a6379943292ed0793990216dcda57a525d2e17f732b6f405f9320164dd60b00", + "blockNumber": "0x13480e7", + "transactionHash": "0x2296508471c33919c19d198d8bed8915a72736575b638fe928ca648fd138bfdb", + "transactionIndex": "0x8", + "logIndex": "0x29", + "removed": false + }, + { + "address": "0xF9062A1b7BB1797dEe82A1D61f0a88B2dFD765Fd", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051c8fa2c1f093ac643f6431766b1c227d869cb6f", + "blockHash": "0x3a6379943292ed0793990216dcda57a525d2e17f732b6f405f9320164dd60b00", + "blockNumber": "0x13480e7", + "transactionHash": "0x2296508471c33919c19d198d8bed8915a72736575b638fe928ca648fd138bfdb", + "transactionIndex": "0x8", + "logIndex": "0x2a", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800002004000000000000000000000000008000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800080000000000000000000000000000000000000000000000000010000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000010000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x17ce1222d" + }, + { + "transactionHash": "0x50eea8ab0aeeecca73ba75beb81f211a7414bc99459386a7afaf2a70fbe3ef19", + "transactionIndex": "0x3b", + "blockHash": "0x0cd2a9e0d8a48a9f23a19ceac14622413add7ca6b0713887acb0c96eb12a1276", + "blockNumber": "0x13480e8", + "from": "0xeDee7B1C9a240C4085A5fCAC8f4Fa750E3779695", + "to": "0xF9062A1b7BB1797dEe82A1D61f0a88B2dFD765Fd", + "cumulativeGasUsed": "0x7cf47c", + "gasUsed": "0x8004b", + "contractAddress": null, + "logs": [ + { + "address": "0xF9062A1b7BB1797dEe82A1D61f0a88B2dFD765Fd", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x0cd2a9e0d8a48a9f23a19ceac14622413add7ca6b0713887acb0c96eb12a1276", + "blockNumber": "0x13480e8", + "transactionHash": "0x50eea8ab0aeeecca73ba75beb81f211a7414bc99459386a7afaf2a70fbe3ef19", + "transactionIndex": "0x3b", + "logIndex": "0x10b", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000080000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x181a7c88d" + } + ], + "libraries": [ + "script/helper/ArraysHelper.sol:ArraysHelper:0x5665Aa09D1A8b3775024e62E82A902Ae760eebbA", + "src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0", + "src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1", + "src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89", + "src/strategies/libraries/EthFrxEthAssetGroupAdapter.sol:EthFrxEthAssetGroupAdapter:0xE23681bAA697EF5054E2D8C397ae59145027625D", + "src/strategies/libraries/EthStEthAssetGroupAdapter.sol:EthStEthAssetGroupAdapter:0x1516eb3a54377168b6b184326200f4258C3529dF" + ], + "pending": [], + "returns": {}, + "timestamp": 1719914349, + "chain": 1, + "multi": false, + "commit": "4843eda" +} \ No newline at end of file diff --git a/deploy/arbitrum-production.constants.json b/deploy/arbitrum-production.constants.json index 5d91533c..6705e20a 100644 --- a/deploy/arbitrum-production.constants.json +++ b/deploy/arbitrum-production.constants.json @@ -2,30 +2,30 @@ "assets": { "dai": { "address": "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1", - "priceAggregator": { + "priceAggregator": { "address": "0xc5C8E77B397E531B8EC06BFb0048328B30E9eCfB", "timeLimit": 86580 } }, "usdc": { "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", - "priceAggregator": { + "priceAggregator": { "address": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", "timeLimit": 86580 } }, "usdt": { "address": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9", - "priceAggregator": { + "priceAggregator": { "address": "0x3f3f5dF88dC9F13eac63DF89EC16ef6e7E25DdE7", "timeLimit": 86580 } }, "weth": { "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", - "priceAggregator": { + "priceAggregator": { "address": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", - "timeLimit": 86580 + "timeLimit": 86580 } } }, @@ -70,6 +70,7 @@ "gamma-camelot": { "camelotV3Router": "0x1F721E2E82F6676FCE4eA07A5958cF098D339e18", "weth-usdc": { + "clearing": "0xba58521e31E795d1AB1f27656bc12C8a9EDCFad8", "hypervisor": "0xd7Ef5Ac7fd4AAA7994F3bc1D273eAb1d1013530E", "nitroPool": "0x84EDB15BcBf6818879C6FDf26A69700D43100A74", "narrow": { diff --git a/deploy/arbitrum-production.contracts.json b/deploy/arbitrum-production.contracts.json index b75c158a..c4a7e733 100644 --- a/deploy/arbitrum-production.contracts.json +++ b/deploy/arbitrum-production.contracts.json @@ -103,13 +103,16 @@ }, "gamma-camelot": { "gamma-camelot-weth-usdc-narrow": "0xB5d158dc42b329214f7ecC020f715f93501a8f9e", - "implementation": "0x9Abe8f0EB3cBE99965a7F1E774A60A9F7fE1FF78" + "implementation": "0x6c2E2363393087Fdc493c0be59f5Db103c39f9c9" } }, + "riskProviders": { + "spoolLabs": "0x281396fab7cadf88837c411721a5be80e57f3ebd" + }, "strategy-helpers": { "gamma-camelot-rewards": { "implementation": "0xe47674A619a6d21e6c54B9A494e2E0d8416ea451", "weth-usdc-narrow": "0x1216944517eAffc8D31Bd238b2c56dd82b6bE534" } } -} \ No newline at end of file +} diff --git a/deploy/mainnet-production.constants.json b/deploy/mainnet-production.constants.json index 85069432..d3d0204b 100644 --- a/deploy/mainnet-production.constants.json +++ b/deploy/mainnet-production.constants.json @@ -32,7 +32,14 @@ "address": "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3", "priceAggregator": { "address": "0xa569d910839Ae8865Da8F8e70FfFb0cBA869F961", - "timeLimit": 3780 + "timeLimit": 86580 + } + }, + "pyusd": { + "address": "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8", + "priceAggregator": { + "address": "0x8f1dF6D7F2db73eECE86a18b4381F4707b918FB1", + "timeLimit": 86580 } } }, @@ -241,30 +248,77 @@ "harvester": "0x082a5743aAdf3d0Daf750EeF24652b36a68B1e9C" } }, - "metamorpho-gauntlet": { - "mkr-blended": { + "metamorpho": { + "gauntlet-mkr-blended": { "vault": "0xEbFA750279dEfa89b8D99bdd145a016F6292757b", "rewards": ["0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"], "apy": 102600000000, "underlyingAsset": "usdc" }, - "dai-core": { + "gauntlet-dai-core": { "vault": "0x500331c9fF24D9d11aee6B07734Aa72343EA74a5", "rewards": [], "apy": 72800000000, "underlyingAsset": "dai" }, - "lrt-core": { + "gauntlet-lrt-core": { "vault": "0x4881Ef0BF6d2365D3dd6499ccd7532bcdBCE0658", "rewards": ["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"], "apy": 34190000000, "underlyingAsset": "weth" }, - "usdt-prime": { + "gauntlet-usdt-prime": { "vault": "0x8CB3649114051cA5119141a34C200D65dc0Faa73", "rewards": [], "apy": 60900000000, "underlyingAsset": "usdt" + }, + "gauntlet-weth-prime": { + "vault": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "rewards": [], + "apy": 18500000000, + "underlyingAsset": "weth" + }, + "gauntlet-usdc-prime": { + "vault": "0xdd0f28e19C1780eb6396170735D45153D261490d", + "rewards": [], + "apy": 91600000000, + "underlyingAsset": "usdc" + }, + "steakhouse-usdc": { + "vault": "0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB", + "rewards": [], + "apy": 70000000000, + "underlyingAsset": "usdc" + }, + "steakhouse-pyusd": { + "vault": "0xbEEF02e5E13584ab96848af90261f0C8Ee04722a", + "rewards": [], + "apy": 39200000000, + "underlyingAsset": "pyusd" + }, + "bprotocol-flagship-eth": { + "vault": "0x38989BBA00BDF8181F4082995b3DEAe96163aC5D", + "rewards": [], + "apy": 19700000000, + "underlyingAsset": "weth" + }, + "bprotocol-flagship-usdt": { + "vault": "0x2C25f6C25770fFEC5959D34B94Bf898865e5D6b1", + "rewards": [], + "apy": 60900000000, + "underlyingAsset": "usdt" + }, + "re7-weth": { + "vault": "0x78Fc2c2eD1A4cDb5402365934aE5648aDAd094d0", + "rewards": [ + "0xc55126051B22eBb829D00368f4B12Bde432de5Da", + "0x320623b8E4fF03373931769A31Fc52A4E78B5d70", + "0xdAC17F958D2ee523a2206206994597C13D831ec7", + "0x8207c1FfC5B6804F6024322CcF34F29c3541Ae26" + ], + "apy": 41100000000, + "underlyingAsset": "weth" } }, "ethena": { diff --git a/deploy/mainnet-production.contracts.json b/deploy/mainnet-production.contracts.json index 6b29ca15..9519aec8 100644 --- a/deploy/mainnet-production.contracts.json +++ b/deploy/mainnet-production.contracts.json @@ -48,6 +48,7 @@ "implementation": "0x3D9fbCDd24197EbD4Eaf40Ae712C5b7139d75448", "proxy": "0xC30018cbee9C8141F620e950CC9637c7A2eF2c9e" }, + "SmartVaultBeneficiaryFactoryHpf": "0x34e51Cc3Db85F2B8bB1E2E31a9131cb9737228a9", "SmartVaultFactory": "0x8049Fc710D4a1Deea6a6bCeF772C166CEd7A82F5", "SmartVaultFactoryHpf": "0x362599Cdc123e3FFEB7c0812d769128D180667E8", "SmartVaultManager": { @@ -87,28 +88,28 @@ "aave-v2-dai": "0x27f38719608422Af8a31509CBBB5fAcD582f6e1F", "aave-v2-usdc": "0xc6C65c730D7CB5FA22903DBcCB64973be4Fd4629", "aave-v2-usdt": "0xCfdEa0499D00f6ecae256F0FC9daCC837D48409e", - "implementation": "0x3597F15739771b8e040c0cFac048752946B79e9D" + "implementation": "0x3Bb41F7A05535CC05Ab6263dd01a4fa3462bE3c9" }, "compound-v2": { "compound-v2-dai": "0x013022c7ca735eF6ba55cd3eaccB4Ebb3be484e9", "compound-v2-usdc": "0xfC8610aE1D1cc5f30c932E9FF4ac37E3f1a6337d", "compound-v2-usdt": "0xac997F24Ef9f5fc2A3c050eA14d1d017db20a1d1", - "implementation": "0x6Ab817bD92A1c3075d8f1ceD160984EA4E5F8d89" + "implementation": "0x8fE41e9B43bB45d0eFBc86C32Aa4705935Bf8b13" }, "convex-3pool": { - "implementation": "0x63423e8358B3D00a780CCE788Ed4BCCd50ed58b2", + "implementation": "0xbca4677aD780bF59FBdF6194a145cf00A1a7c12b", "proxy": "0x93f0F12e368b06d7914255FBA5cA47821cd5908d" }, "convex-alusd": { - "implementation": "0xD049C7B5707021C39787438B95d65C9C7339EA04", + "implementation": "0x7158c40A536dA9E23d8D0A226698A788621adA8A", "proxy": "0x2cA41209c87D2a611059d85C62cc0F913068d301" }, "convex-stfrxeth": { - "implementation": "0xbb141226abA3b1dDfBe5EB03De9138f16198b42c", + "implementation": "0x7f47E9e456F7a74c4D44Cc56B08CbAFFf6BF95e8", "proxy": "0x5699181904Ae5781d204a0E189862f8AF9109479" }, "curve-3pool": { - "implementation": "0x520AeDDdd3fb45E49ce236Df4c43B6a1a0cc061A", + "implementation": "0xDB90a96095f53a015f6C69EF5e05f8f7B5a649fD", "proxy": "0x6EB6251AF926016c60DE17aD976b9C1e2485e1F0" }, "ethena": { @@ -119,24 +120,31 @@ "gearbox-v3": { "gearbox-v3-usdc": "0xb4a7fb51D06760B5F622643B7276c003418732bD", "gearbox-v3-weth": "0xD92B65d2321076FBAc23FCfC9A9Fd5Ed2E98B758", - "implementation": "0x615a54527c08e15d9276EDfb707e7F457aBCF3Ae", + "implementation": "0xb170F18dca153752b2F35304e5ea581373095f4e", "implementation-airdrop": "0x64a21Ca82fe09712af8CeC6C5fED62e97Bae33A1" }, - "metamorpho-gauntlet": { - "implementation": "0x35E72AF2E0245077785472eD4A166C56649Ff0B2", + "metamorpho": { + "implementation": "0xDb19e40bD45920b09Ac7fF2778d4A1cA90C0A772", + "metamorpho-bprotocol-flagship-eth": "0xBa57985052Dc49075e353b359c7A8Cc47807F60d", + "metamorpho-bprotocol-flagship-usdt": "0xF9062A1b7BB1797dEe82A1D61f0a88B2dFD765Fd", "metamorpho-gauntlet-dai-core": "0x05d9A563cb7bFC58082935ccb44FEe9dF19D1ee5", "metamorpho-gauntlet-lrt-core": "0x1D060A1B17a7FF1929133B202a7Ec1D9B90A1965", "metamorpho-gauntlet-mkr-blended": "0xAfC182fcFbdA42F639CCD4518aEcccE5Ea777440", - "metamorpho-gauntlet-usdt-prime": "0x35A73350c199b25618cFF7E9f33eC2EbcD1F0180" + "metamorpho-gauntlet-usdc-prime": "0x3c33C929379D98eb83F1A3fc46A432767Cb32A3a", + "metamorpho-gauntlet-usdt-prime": "0x35A73350c199b25618cFF7E9f33eC2EbcD1F0180", + "metamorpho-gauntlet-weth-prime": "0x55cB0D9c32453ecD84aB628cf3A320aB8997fae2", + "metamorpho-re7-weth": "0xee7fA506CDC3E3698087B25dE72eeAC37131119d", + "metamorpho-steakhouse-pyusd": "0x92e19a03468356FEd850EAF6cA5f25d8d6Ebf5AD", + "metamorpho-steakhouse-usdc": "0x173F7C86757bFD9Aea8D218Ac03E2Bc787F31fE4" }, "morpho-aave-v2": { - "implementation": "0x7b2121D7d8699aF6420941AE06834625ce650623", + "implementation": "0xdD55DAb8A52b1E2983a9c7297650DBA857dB4e3b", "morpho-aave-v2-dai": "0xfE6D982a773F4251dA4Ba04fc8fE7F2717413599", "morpho-aave-v2-usdc": "0xa51C0a9F2d688c8943F029feC00a3c9193aAdf81", "morpho-aave-v2-usdt": "0xd353b46208493F1515d5f5c67A86795cf509c598" }, "morpho-compound-v2": { - "implementation": "0x879BF9a1BBBa52dAd6C0d4a804EC3Bc088A51c7d", + "implementation": "0x40844863f1a8945499501111f71eCdABDBedDEf5", "morpho-compound-v2-dai": "0xcab95acA532aD88C68fe464bD276C5beEb6FE373", "morpho-compound-v2-usdc": "0x07D01228801cAc1EFEB36481370e5b532C7935a4", "morpho-compound-v2-usdt": "0xb7364aF55b4A0393d070AEEB2D8a6468f82e178e" @@ -147,23 +155,23 @@ "notional-finance-usdc": "0x107D759C58C5933320e636624f4B716d7B199E21" }, "oeth-holding": { - "implementation": "0x4349909E23B4CDdd4d8573D75D21B5E6FBFb36A8", + "implementation": "0x120da9fA3F56D2179FACab9Ce9b3D00dF4BE1575", "proxy": "0x39E5c2a796082eB553c1b0656e09E49583D12CB8" }, "reth-holding": { - "implementation": "0xefC54333d3Fc82a7BE86ECAB7Eab1E3834B32909", + "implementation": "0x56a20C5D76d41338fBd5D7cB7Db37e937143f910", "proxy": "0x019834Ef2ec086e495668aa4E06B4d31119beC71" }, "sfrxeth-holding": { - "implementation": "0xAcB8e69668c5005bC14e83D2f4aAC15E7186D797", + "implementation": "0xeFD8CE62CA1cd5C309ee1421496E8657036E9373", "proxy": "0x6d0e6242FE023675487BccA4Ab989a91D0932a51" }, "steth-holding": { - "implementation": "0x89fD0A5549d402595C9DB1Be92564C486fB10B96", + "implementation": "0xc4962991713ff1e5EF4Ac4BA6f5B2292D5b65383", "proxy": "0x504d272aC93e7ffAcAcB7DD69061c9b4D0781410" }, "yearn-v2": { - "implementation": "0x13b727aBD64063629fcc1b9F8CbD6B4efc619c08", + "implementation": "0xb7F6FBbB8d11946951b14cC349DDcF7e11F74D7e", "yearn-v2-dai": "0xb8943E7eBB7B919AAFaE261343c38F02e4182CA6", "yearn-v2-usdc": "0xc61E829DF3fbD6Cf5B2f5881F190C69eE48d20DF", "yearn-v2-usdt": "0x24416AE2794C222725185734c7050c008fC1d2f8" @@ -178,5 +186,12 @@ "implementation": "0x123dB049CC5Ee36010f5148000754181aB87b3B3", "yearn-v3-juiced-dai": "0x2e988479F14Ff61586F8Fd0F09E8720484Eb6030" } + }, + "riskProviders": { + "spoolLabs": "0xC216aD6280f4fa92A5159EF383a1206D432481c8", + "DeFi": "0x9098c4936138536849d7ee6447777626ea202bd1" + }, + "guards": { + "timelockGuard": "0xC8E48fc7Ebd0db581570244BC98858aFc9036a56" } -} \ No newline at end of file +} diff --git a/deploy/mainnet-staging.contracts.json b/deploy/mainnet-staging.contracts.json index 233cecf4..82758a29 100644 --- a/deploy/mainnet-staging.contracts.json +++ b/deploy/mainnet-staging.contracts.json @@ -172,5 +172,8 @@ "implementation": "0x19EEac602e0987bcB6e43B3035266EFcEAB4c2Cc", "yearn-v3-juiced-dai": "0xDBF01AAEdAa58F53C139106361ce0ABF01B6804c" } + }, + "riskProviders": { + "spoolLabs": "0xC216aD6280f4fa92A5159EF383a1206D432481c8" } -} \ No newline at end of file +} diff --git a/foundry.toml b/foundry.toml index 53004c0b..2fc98509 100644 --- a/foundry.toml +++ b/foundry.toml @@ -3,10 +3,13 @@ # project src = 'src' out = 'out' -cache_path = 'cache/default' libs = ['lib'] fs_permissions = [{ access = "read-write", path = "./deploy"}] +broadcast = 'broadcast/default' +cache_path = 'cache/default' +test = 'test' + # compiler evm_version = 'shanghai' optimizer = true @@ -31,11 +34,13 @@ local-mainnet = "http://localhost:8545" # project cache_path = 'cache/mainnet-production' broadcast = 'broadcast/mainnet-production' +test = 'no-test' # compiler optimizer_runs = 99999 libraries = [ - 'script/helper/ArraysHelper.sol:ArraysHelper:0x7dF191D01252D2C0BABf77c725c63D69fe6EAA1a', + "script/helper/Arrays.sol:Arrays:0x1eb431a15a272a3351dcb3be7ad37f4bf7c8ab50", + 'script/helper/ArraysHelper.sol:ArraysHelper:0x5665Aa09D1A8b3775024e62E82A902Ae760eebbA', 'src/libraries/ArrayMapping.sol:ArrayMappingUint256:0xB6B08a9ed9282c695ddFbfA81d9ebF208b4c1De0', 'src/libraries/ReallocationLib.sol:ReallocationLib:0x49CE6640EB2D89F80395C1a3695cc3a01b5C7bc1', 'src/libraries/SpoolUtils.sol:SpoolUtils:0xCB3fECd1D5eabB1b18383604A28352c17Bdfef89', @@ -50,6 +55,7 @@ libraries = [ # project cache_path = 'cache/sepolia-production' broadcast = 'broadcast/sepolia-production' +test = 'no-test' # compiler optimizer_runs = 99999 @@ -67,6 +73,7 @@ libraries = [ # project cache_path = 'cache/arbitrum-production' broadcast = 'broadcast/arbitrum-production' +test = 'no-test' # compiler optimizer_runs = 99999 @@ -77,3 +84,10 @@ libraries = [ "src/libraries/SpoolUtils.sol:SpoolUtils:0x9a6a0820738f6f18f39f9e7109fea44de85bd468", "src/strategies/arbitrum/libraries/GammaCamelotPriceHelper.sol:GammaCamelotPriceHelper:0x1847118d72d1c48c37c5927f7fe89a79bcce5b5f" ] + +[profile.ci] +# FOUNDRY_PROFILE=ci +# inherits from default profile + +# project +script = 'no-script' diff --git a/script/arbitrum/extended/GammaCamelotStrategyImplSetup.s.sol b/script/arbitrum/extended/GammaCamelotStrategyImplSetup.s.sol new file mode 100644 index 00000000..8ddd85e7 --- /dev/null +++ b/script/arbitrum/extended/GammaCamelotStrategyImplSetup.s.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity 0.8.17; + +import "../ArbitrumExtendedSetup.s.sol"; + +contract GammaCamelotStrategyImplSetup is ArbitrumExtendedSetup { + function broadcast() public override { + _deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + } + + function execute() public override { + IGammaCamelotRewards rewards = + IGammaCamelotRewards(_contractsJson.getAddress(".strategy-helpers.gamma-camelot-rewards.weth-usdc-narrow")); + + vm.broadcast(_deployerPrivateKey); + GammaCamelotStrategy implementation = new GammaCamelotStrategy( + assetGroupRegistry, + spoolAccessControl, + swapper, + rewards + ); + + // reserialize strategies + contractsJson().reserializeKeyAddress("strategies"); + + contractsJson().addVariantStrategyImplementation(GAMMA_CAMELOT_KEY, address(implementation)); + } +} diff --git a/script/helper/Arrays.sol b/script/helper/Arrays.sol new file mode 100644 index 00000000..e95fbe8a --- /dev/null +++ b/script/helper/Arrays.sol @@ -0,0 +1,201 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "../../src/libraries/uint16a16Lib.sol"; +import "../../src/libraries/uint128a2Lib.sol"; + +library Arrays { + using uint16a16Lib for uint16a16; + using uint128a2Lib for uint128a2; + + function test_lib() external pure {} + + function toArray(uint256 x1) public pure returns (uint256[] memory) { + uint256[] memory result = new uint256[](1); + result[0] = x1; + return result; + } + + function toArray(uint256 x1, uint256 x2) public pure returns (uint256[] memory) { + uint256[] memory result = new uint256[](2); + result[0] = x1; + result[1] = x2; + return result; + } + + function toArray(uint256 x1, uint256 x2, uint256 x3) public pure returns (uint256[] memory) { + uint256[] memory result = new uint256[](3); + result[0] = x1; + result[1] = x2; + result[2] = x3; + return result; + } + + function toArray(uint256 x1, uint256 x2, uint256 x3, uint256 x4) public pure returns (uint256[] memory) { + uint256[] memory result = new uint256[](4); + result[0] = x1; + result[1] = x2; + result[2] = x3; + result[3] = x4; + return result; + } + + function toArray(address x1) public pure returns (address[] memory) { + address[] memory result = new address[](1); + result[0] = x1; + return result; + } + + function toArray(address x1, address x2) public pure returns (address[] memory) { + address[] memory result = new address[](2); + result[0] = x1; + result[1] = x2; + return result; + } + + function toArray(address x1, address x2, address x3) public pure returns (address[] memory) { + address[] memory result = new address[](3); + result[0] = x1; + result[1] = x2; + result[2] = x3; + return result; + } + + function toArray(address x1, address x2, address x3, address x4) public pure returns (address[] memory) { + address[] memory result = new address[](4); + result[0] = x1; + result[1] = x2; + result[2] = x3; + result[3] = x4; + return result; + } + + function toArray(address x1, address x2, address x3, address x4, address x5) + public + pure + returns (address[] memory) + { + address[] memory result = new address[](5); + result[0] = x1; + result[1] = x2; + result[2] = x3; + result[3] = x4; + result[4] = x5; + return result; + } + + function toArray(address x1, address x2, address x3, address x4, address x5, address x6) + public + pure + returns (address[] memory) + { + address[] memory result = new address[](6); + result[0] = x1; + result[1] = x2; + result[2] = x3; + result[3] = x4; + result[4] = x5; + result[5] = x6; + return result; + } + + function toArray(address x1, address x2, address x3, address x4, address x5, address x6, address x7) + public + pure + returns (address[] memory) + { + address[] memory result = new address[](7); + result[0] = x1; + result[1] = x2; + result[2] = x3; + result[3] = x4; + result[4] = x5; + result[5] = x6; + result[6] = x7; + return result; + } + + function toArray(bool x1) public pure returns (bool[] memory) { + bool[] memory result = new bool[](1); + result[0] = x1; + return result; + } + + function toArray(bool x1, bool x2) public pure returns (bool[] memory) { + bool[] memory result = new bool[](2); + result[0] = x1; + result[1] = x2; + return result; + } + + function toArray(bool x1, bool x2, bool x3) public pure returns (bool[] memory) { + bool[] memory result = new bool[](3); + result[0] = x1; + result[1] = x2; + result[2] = x3; + return result; + } + + function toUint16a16(uint256 x1) public pure returns (uint16a16) { + uint16a16 result; + return result.set(0, x1); + } + + function toUint16a16(uint256 x1, uint256 x2) public pure returns (uint16a16) { + uint16a16 result; + result = result.set(0, x1); + return result.set(1, x2); + } + + function toUint16a16(uint256 x1, uint256 x2, uint256 x3) public pure returns (uint16a16) { + uint16a16 result; + result = result.set(0, x1); + result = result.set(1, x2); + return result.set(2, x3); + } + + function toUint16a16(uint256 x1, uint256 x2, uint256 x3, uint256 x4) public pure returns (uint16a16) { + uint16a16 result; + result = result.set(0, x1); + result = result.set(1, x2); + result = result.set(1, x3); + return result.set(2, x4); + } + + function toPackedRange(uint256 lowerRange, uint256 upperRange) public pure returns (uint256) { + uint128a2 range; + range = range.set(0, lowerRange); + range = range.set(1, upperRange); + + return uint128a2.unwrap(range); + } + + /// @dev based on https://gist.github.com/subhodi/b3b86cc13ad2636420963e692a4d896f + function _quickSort(address[] memory arr, int256 left, int256 right) private pure { + int256 i = left; + int256 j = right; + if (i == j) return; + address pivot = arr[uint256(left + (right - left) / 2)]; + while (i <= j) { + while (arr[uint256(i)] < pivot) i++; + while (pivot < arr[uint256(j)]) j--; + if (i <= j) { + (arr[uint256(i)], arr[uint256(j)]) = (arr[uint256(j)], arr[uint256(i)]); + i++; + j--; + } + } + if (left < j) { + _quickSort(arr, left, j); + } + if (i < right) { + _quickSort(arr, i, right); + } + } + + function sort(address[] memory arr) public pure returns (address[] memory) { + _quickSort(arr, int256(0), int256(arr.length - 1)); + + return arr; + } +} diff --git a/script/helper/ArraysHelper.sol b/script/helper/ArraysHelper.sol index 23446224..c9094c97 100644 --- a/script/helper/ArraysHelper.sol +++ b/script/helper/ArraysHelper.sol @@ -20,6 +20,19 @@ library ArraysHelper { return array; } + function toArray(string memory x1) public pure returns (string[] memory) { + string[] memory result = new string[](1); + result[0] = x1; + return result; + } + + function toArray(string memory x1, string memory x2) public pure returns (string[] memory) { + string[] memory result = new string[](2); + result[0] = x1; + result[1] = x2; + return result; + } + function toArray(string memory x1, string memory x2, string memory x3) public pure returns (string[] memory) { string[] memory result = new string[](3); result[0] = x1; diff --git a/script/mainnet/AssetsInitial.s.sol b/script/mainnet/AssetsInitial.s.sol index 7743694f..d611fd07 100644 --- a/script/mainnet/AssetsInitial.s.sol +++ b/script/mainnet/AssetsInitial.s.sol @@ -12,6 +12,18 @@ string constant USDT_KEY = "usdt"; string constant WETH_KEY = "weth"; string constant DAI_USDC_USDT_KEY = "dai-usdc-usdt"; string constant USDE_KEY = "usde"; +string constant PYUSD_KEY = "pyusd"; + +enum Extended { + INITIAL, + OETH, + CONVEX_STETH_FRXETH, + GEARBOX_V3, + METAMORPHO_YEARN_V3, + USDE, + METAMORPHO_EXTRA, + CURRENT +} contract AssetsInitial { function constantsJson() internal view virtual returns (JsonReader) {} @@ -19,19 +31,39 @@ contract AssetsInitial { mapping(string => address) internal _assets; mapping(string => uint256) internal _assetGroups; - function setupAssets(IAssetGroupRegistry assetGroupRegistry, UsdPriceFeedManager priceFeedManager) public { - setAssets(assetGroupRegistry, priceFeedManager); - createAssetGroups(assetGroupRegistry); + function setupAssets( + IAssetGroupRegistry assetGroupRegistry, + UsdPriceFeedManager priceFeedManager, + Extended extended + ) public { + setAssets(assetGroupRegistry, priceFeedManager, extended); + createAssetGroups(assetGroupRegistry, extended); } - function setAssets(IAssetGroupRegistry assetGroupRegistry, UsdPriceFeedManager priceFeedManager) public { - string[] memory assetNames = new string[](5); + function setAssets(IAssetGroupRegistry assetGroupRegistry, UsdPriceFeedManager priceFeedManager, Extended extended) + public + { + uint256 numAssets = getNumAssets(extended); + string[] memory assetNames = new string[](numAssets); assetNames[0] = DAI_KEY; assetNames[1] = USDC_KEY; assetNames[2] = USDT_KEY; assetNames[3] = WETH_KEY; - assetNames[4] = USDE_KEY; + if (extended >= Extended.USDE) { + assetNames[4] = USDE_KEY; + } + if (extended >= Extended.METAMORPHO_EXTRA) { + assetNames[5] = PYUSD_KEY; + } + + _setAssets(assetGroupRegistry, priceFeedManager, assetNames); + } + function _setAssets( + IAssetGroupRegistry assetGroupRegistry, + UsdPriceFeedManager priceFeedManager, + string[] memory assetNames + ) internal { address[] memory assetAddresses = new address[](assetNames.length); address[] memory assetPriceAggregators = new address[](assetNames.length); uint256[] memory assetTimeLimits = new uint256[](assetNames.length); @@ -54,58 +86,63 @@ contract AssetsInitial { } } - function createAssetGroups(IAssetGroupRegistry assetGroupRegistry) public { - address[] memory assetGroup = new address[](1); - uint256 assetGroupId; + function createAssetGroups(IAssetGroupRegistry assetGroupRegistry, Extended extended) public { + _createAssetGroup(assetGroupRegistry, ArraysHelper.toArray(WETH_KEY)); - assetGroup[0] = _assets[WETH_KEY]; - assetGroupId = assetGroupRegistry.registerAssetGroup(assetGroup); - _assetGroups[WETH_KEY] = assetGroupId; + _createAssetGroup(assetGroupRegistry, ArraysHelper.toArray(USDC_KEY)); - assetGroup[0] = _assets[USDC_KEY]; - assetGroupId = assetGroupRegistry.registerAssetGroup(assetGroup); - _assetGroups[USDC_KEY] = assetGroupId; + _createAssetGroup(assetGroupRegistry, ArraysHelper.toArray(USDT_KEY)); - assetGroup[0] = _assets[USDT_KEY]; - assetGroupId = assetGroupRegistry.registerAssetGroup(assetGroup); - _assetGroups[USDT_KEY] = assetGroupId; + _createAssetGroup(assetGroupRegistry, ArraysHelper.toArray(DAI_KEY)); - assetGroup[0] = _assets[DAI_KEY]; - assetGroupId = assetGroupRegistry.registerAssetGroup(assetGroup); - _assetGroups[DAI_KEY] = assetGroupId; + _createAssetGroup(assetGroupRegistry, ArraysHelper.toArray(DAI_KEY, USDC_KEY, USDT_KEY)); - assetGroup[0] = _assets[USDE_KEY]; - assetGroupId = assetGroupRegistry.registerAssetGroup(assetGroup); - _assetGroups[USDE_KEY] = assetGroupId; + if (extended >= Extended.USDE) { + _createAssetGroup(assetGroupRegistry, ArraysHelper.toArray(USDE_KEY)); + } - assetGroup = new address[](3); - assetGroup[0] = _assets[DAI_KEY]; - assetGroup[1] = _assets[USDC_KEY]; - assetGroup[2] = _assets[USDT_KEY]; + if (extended >= Extended.METAMORPHO_EXTRA) { + _createAssetGroup(assetGroupRegistry, ArraysHelper.toArray(PYUSD_KEY)); + } + } + + function _createAssetGroup(IAssetGroupRegistry assetGroupRegistry, string[] memory keys) internal { + address[] memory assetGroup = new address[](keys.length); + string memory key; + for (uint256 i; i < keys.length; ++i) { + assetGroup[i] = _assets[keys[i]]; + key = string.concat(key, keys[i], (i < keys.length - 1) ? "-" : ""); + } assetGroup = ArraysHelper.sort(assetGroup); - assetGroupId = assetGroupRegistry.registerAssetGroup(assetGroup); - _assetGroups[DAI_USDC_USDT_KEY] = assetGroupId; + uint256 assetGroupId = assetGroupRegistry.registerAssetGroup(assetGroup); + _assetGroups[key] = assetGroupId; } - function loadAssets(IAssetGroupRegistry assetGroupRegistry) public { - loadAssets(); - loadAssetGroups(assetGroupRegistry); + function loadAssets(IAssetGroupRegistry assetGroupRegistry, Extended extended) public { + loadAssets(extended); + loadAssetGroups(assetGroupRegistry, extended); } - function loadAssets() public { - string[] memory assetNames = new string[](5); + function loadAssets(Extended extended) public { + uint256 numAssets = getNumAssets(extended); + string[] memory assetNames = new string[](numAssets); assetNames[0] = DAI_KEY; assetNames[1] = USDC_KEY; assetNames[2] = USDT_KEY; assetNames[3] = WETH_KEY; - assetNames[4] = USDE_KEY; + if (extended >= Extended.USDE) { + assetNames[4] = USDE_KEY; + } + if (extended >= Extended.METAMORPHO_EXTRA) { + assetNames[5] = PYUSD_KEY; + } for (uint256 i; i < assetNames.length; ++i) { _assets[assetNames[i]] = constantsJson().getAddress(string.concat(".assets.", assetNames[i], ".address")); } } - function loadAssetGroups(IAssetGroupRegistry assetGroupRegistry) public { + function loadAssetGroups(IAssetGroupRegistry assetGroupRegistry, Extended extended) public { address[] memory assetGroup = new address[](1); assetGroup[0] = _assets[DAI_KEY]; @@ -120,15 +157,33 @@ contract AssetsInitial { assetGroup[0] = _assets[WETH_KEY]; _assetGroups[WETH_KEY] = assetGroupRegistry.checkAssetGroupExists(assetGroup); - assetGroup[0] = _assets[USDE_KEY]; - _assetGroups[USDE_KEY] = assetGroupRegistry.checkAssetGroupExists(assetGroup); - assetGroup = new address[](3); assetGroup[0] = _assets[DAI_KEY]; assetGroup[1] = _assets[USDC_KEY]; assetGroup[2] = _assets[USDT_KEY]; assetGroup = ArraysHelper.sort(assetGroup); _assetGroups[DAI_USDC_USDT_KEY] = assetGroupRegistry.checkAssetGroupExists(assetGroup); + + assetGroup = new address[](1); + if (extended >= Extended.USDE) { + assetGroup[0] = _assets[USDE_KEY]; + _assetGroups[USDE_KEY] = assetGroupRegistry.checkAssetGroupExists(assetGroup); + } + + if (extended >= Extended.METAMORPHO_EXTRA) { + assetGroup[0] = _assets[PYUSD_KEY]; + _assetGroups[PYUSD_KEY] = assetGroupRegistry.checkAssetGroupExists(assetGroup); + } + } + + function getNumAssets(Extended extended) internal pure returns (uint256 numAssets) { + numAssets = 4; // initial asset length + if (extended >= Extended.USDE) { + numAssets++; + } + if (extended >= Extended.METAMORPHO_EXTRA) { + numAssets++; + } } function test_mock_AssetsInitial() external pure {} diff --git a/script/mainnet/MainnetExtendedSetup.s.sol b/script/mainnet/MainnetExtendedSetup.s.sol index f8a7b4e6..b08c6b0c 100644 --- a/script/mainnet/MainnetExtendedSetup.s.sol +++ b/script/mainnet/MainnetExtendedSetup.s.sol @@ -40,10 +40,10 @@ contract MainnetExtendedSetup is Script, DeploySpool, AssetsInitial, StrategiesI _contractsJson = new JsonReadWriter(vm, string.concat("deploy/", profile, ".contracts.json")); } - function doSetup() public { + function doSetup() public virtual { loadSpool(); - loadAssets(assetGroupRegistry); + loadAssets(assetGroupRegistry, Extended.CURRENT); } function execute() public virtual {} diff --git a/script/mainnet/MainnetInitialSetup.s.sol b/script/mainnet/MainnetInitialSetup.s.sol index 6530948b..a0fcbdf2 100644 --- a/script/mainnet/MainnetInitialSetup.s.sol +++ b/script/mainnet/MainnetInitialSetup.s.sol @@ -20,7 +20,7 @@ contract MainnetInitialSetup is Script, DeploySpool, AssetsInitial, StrategiesIn vm.startBroadcast(deployerPrivateKey); - doSetup(deployerAddress, type(uint256).max); + doSetup(deployerAddress, Extended.CURRENT); } function init() public virtual { @@ -33,10 +33,10 @@ contract MainnetInitialSetup is Script, DeploySpool, AssetsInitial, StrategiesIn _contractsJson = new JsonReadWriter(vm, string.concat("deploy/", profile, ".contracts.json")); } - function doSetup(address deployerAddress, uint256 extended) public { + function doSetup(address deployerAddress, Extended extended) public { deploySpool(); - setupAssets(assetGroupRegistry, usdPriceFeedManager); + setupAssets(assetGroupRegistry, usdPriceFeedManager, extended); deployStrategies( spoolAccessControl, assetGroupRegistry, swapper, address(proxyAdmin), strategyRegistry, extended diff --git a/script/mainnet/StrategiesInitial.s.sol b/script/mainnet/StrategiesInitial.s.sol index 70f92e50..27d1a57a 100644 --- a/script/mainnet/StrategiesInitial.s.sol +++ b/script/mainnet/StrategiesInitial.s.sol @@ -41,7 +41,7 @@ string constant CURVE_STETH_KEY = "curve-steth"; string constant CURVE_OETH_KEY = "curve-oeth"; string constant CURVE_STFRXETH_KEY = "curve-stfrxeth"; string constant GEARBOX_V3_KEY = "gearbox-v3"; -string constant METAMORPHO_GAUNTLET = "metamorpho-gauntlet"; +string constant METAMORPHO = "metamorpho"; string constant IDLE_BEST_YIELD_SENIOR_KEY = "idle-best-yield-senior"; string constant MORPHO_AAVE_V2_KEY = "morpho-aave-v2"; string constant MORPHO_COMPOUND_V2_KEY = "morpho-compound-v2"; @@ -82,7 +82,7 @@ contract StrategiesInitial { ISwapper swapper, address proxyAdmin, IStrategyRegistry strategyRegistry, - uint256 extended + Extended extended ) public { StandardContracts memory contracts = StandardContracts({ accessControl: accessControl, @@ -110,22 +110,28 @@ contract StrategiesInitial { deployYearnV2(contracts); - if (extended >= 1) { + if (extended >= Extended.OETH) { deployOeth(contracts, true); } - if (extended >= 2) { + if (extended >= Extended.CONVEX_STETH_FRXETH) { deployConvexStFrxEth(contracts, true); } - if (extended >= 3) { + if (extended >= Extended.GEARBOX_V3) { deployGearboxV3(contracts, true); } - if (extended >= 4) { - deployMetamorphoGauntlet(contracts, true); + MetamorphoStrategy implementation; + if (extended >= Extended.METAMORPHO_YEARN_V3) { + implementation = deployMetamorphoImplementation(contracts); + + deployMetamorpho(contracts, implementation, true, 0); deployYearnV3WithGauge(contracts, true); deployYearnV3WithJuice(contracts, true); } + if (extended >= Extended.METAMORPHO_EXTRA) { + deployMetamorphoExtra(contracts, implementation, true); + } } function deployAaveV2(StandardContracts memory contracts) public { @@ -760,50 +766,92 @@ contract StrategiesInitial { } } - function deployMetamorphoGauntlet(StandardContracts memory contracts, bool register) public { + function deployMetamorphoImplementation(StandardContracts memory contracts) + public + returns (MetamorphoStrategy implementation) + { // create implementation contract - MetamorphoStrategy implementation = + implementation = new MetamorphoStrategy(contracts.assetGroupRegistry, contracts.accessControl, contracts.swapper); + contractsJson().addVariantStrategyImplementation(METAMORPHO, address(implementation)); + } - contractsJson().addVariantStrategyImplementation(METAMORPHO_GAUNTLET, address(implementation)); + function deployMetamorphoExtra(StandardContracts memory contracts, MetamorphoStrategy implementation, bool register) + public + { + deployMetamorpho(contracts, implementation, register, 1); + } + function deployMetamorpho( + StandardContracts memory contracts, + MetamorphoStrategy implementation, + bool register, + uint256 round + ) public { // create variant proxies - string[] memory variants = new string[](4); - variants[0] = "lrt-core"; - variants[1] = "mkr-blended"; - variants[2] = "usdt-prime"; - variants[3] = "dai-core"; + string[] memory variants; + if (round == 0) { + variants = new string[](4); + variants[0] = "gauntlet-lrt-core"; + variants[1] = "gauntlet-mkr-blended"; + variants[2] = "gauntlet-usdt-prime"; + variants[3] = "gauntlet-dai-core"; + } else if (round == 1) { + variants = new string[](7); + variants[0] = "gauntlet-weth-prime"; + variants[1] = "gauntlet-usdc-prime"; + variants[2] = "steakhouse-usdc"; + variants[3] = "steakhouse-pyusd"; + variants[4] = "bprotocol-flagship-eth"; + variants[5] = "bprotocol-flagship-usdt"; + variants[6] = "re7-weth"; + } + require(variants.length > 0, "Invalid round"); + _deployMetamorpho(implementation, variants, contracts, register); + } + + function _deployMetamorpho( + MetamorphoStrategy implementation, + string[] memory variants, + StandardContracts memory contracts, + bool register + ) private { for (uint256 i; i < variants.length; ++i) { - string memory variantName = _getVariantName(METAMORPHO_GAUNTLET, variants[i]); + string memory variantName = _getVariantName(METAMORPHO, variants[i]); - address variant = _newProxy(address(implementation), contracts.proxyAdmin); string memory assetKey = constantsJson().getString( - string.concat(".strategies.", METAMORPHO_GAUNTLET, ".", variants[i], ".underlyingAsset") + string.concat(".strategies.", METAMORPHO, ".", variants[i], ".underlyingAsset") ); uint256 assetGroupId = assetGroups(assetKey); IERC4626 vault = IERC4626( - constantsJson().getAddress( - string.concat(".strategies.", METAMORPHO_GAUNTLET, ".", variants[i], ".vault") - ) - ); - address[] memory rewards = constantsJson().getAddressArray( - string.concat(".strategies.", METAMORPHO_GAUNTLET, ".", variants[i], ".rewards") - ); - MetamorphoStrategy(variant).initialize( - variantName, assetGroupId, vault, 10 ** (vault.decimals() * 2), rewards + constantsJson().getAddress(string.concat(".strategies.", METAMORPHO, ".", variants[i], ".vault")) ); + address[] memory rewards = + constantsJson().getAddressArray(string.concat(".strategies.", METAMORPHO, ".", variants[i], ".rewards")); + address variant = + _createAndInitializeMetamorpho(contracts, implementation, variantName, assetGroupId, vault, rewards); if (register) { - _registerStrategyVariant( - METAMORPHO_GAUNTLET, variants[i], variant, assetGroupId, contracts.strategyRegistry - ); + _registerStrategyVariant(METAMORPHO, variants[i], variant, assetGroupId, contracts.strategyRegistry); } else { - contractsJson().addVariantStrategyVariant(METAMORPHO_GAUNTLET, variantName, variant); + contractsJson().addVariantStrategyVariant(METAMORPHO, variantName, variant); } } } + function _createAndInitializeMetamorpho( + StandardContracts memory contracts, + MetamorphoStrategy implementation, + string memory variantName, + uint256 assetGroupId, + IERC4626 vault, + address[] memory rewards + ) internal virtual returns (address variant) { + variant = _newProxy(address(implementation), contracts.proxyAdmin); + MetamorphoStrategy(variant).initialize(variantName, assetGroupId, vault, 10 ** (vault.decimals() * 2), rewards); + } + function deployYearnV3WithGauge(StandardContracts memory contracts, bool register) public { // create implementation contract YearnV3StrategyWithGauge implementation = diff --git a/script/mainnet/extended/DeploySmartVaultBeneficiaryFactoryHpf.s.sol b/script/mainnet/extended/DeploySmartVaultBeneficiaryFactoryHpf.s.sol new file mode 100644 index 00000000..8740d50c --- /dev/null +++ b/script/mainnet/extended/DeploySmartVaultBeneficiaryFactoryHpf.s.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity 0.8.17; + +import "../MainnetExtendedSetup.s.sol"; +import "../../../src/SmartVaultBeneficiaryFactoryHpf.sol"; +import "../../../src/SmartVaultBeneficiary.sol"; + +contract DeploySmartVaultBeneficiaryFactoryHpf is MainnetExtendedSetup { + address internal beneficiaryAddress; + uint256 internal beneficiaryFee; + + SmartVaultBeneficiaryFactoryHpf internal smartVaultBeneficiaryFactoryHpf; + SmartVaultBeneficiary internal smartVaultBeneficiary; + + address internal spoolAdmin; + + function init() public override { + super.init(); + beneficiaryAddress = vm.envAddress("BENEFICIARY_ADDRESS"); + beneficiaryFee = vm.envUint("BENEFICIARY_FEE"); + spoolAdmin = _constantsJson.getAddress(".spoolAdmin"); + } + + function broadcast() public override { + _deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + } + + function execute() public override { + vm.startBroadcast(_deployerPrivateKey); + smartVaultBeneficiary = new SmartVaultBeneficiary(spoolAccessControl, guardManager); + + smartVaultBeneficiaryFactoryHpf = new SmartVaultBeneficiaryFactoryHpf( + address(smartVaultBeneficiary), + spoolAccessControl, + actionManager, + guardManager, + smartVaultManager, + assetGroupRegistry, + riskManager, + beneficiaryAddress, + beneficiaryFee + ); + + smartVaultBeneficiaryFactoryHpf.transferOwnership(spoolAdmin); + vm.stopBroadcast(); + + contractsJson().add("SmartVaultBeneficiaryFactoryHpf", address(smartVaultBeneficiaryFactoryHpf)); + } + + /** + * after deploying SmartVaultBeneficiaryFactoryHpf, follow these steps to configure the factory: + * - grant role ROLE_SMART_VAULT_INTEGRATOR to the factory + * - grant role ADMIN_ROLE_SMART_VAULT_ALLOW_REDEEM to the factory + * - grant role ROLE_HPF_SMART_VAULT_DEPLOYER to whoever will deploy smart vaults using the factory + */ +} diff --git a/script/mainnet/extended/DeployVaultWithTimelockGuard.s.sol b/script/mainnet/extended/DeployVaultWithTimelockGuard.s.sol new file mode 100644 index 00000000..1fcf7575 --- /dev/null +++ b/script/mainnet/extended/DeployVaultWithTimelockGuard.s.sol @@ -0,0 +1,112 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity 0.8.17; + +import "../MainnetExtendedSetup.s.sol"; + +import "../../../src/guards/TimelockGuard.sol"; +import "../../../src/SmartVaultFactory.sol"; + +import "../../helper/Arrays.sol"; + +contract DeployVaultWithTimelockGuard is MainnetExtendedSetup { + address smartVaultOwner = 0x7D965039141418D6F8C0d534f3d86c4b53e2fd4d; + + uint256 privKey; + + function broadcast() public override { + privKey = vm.envUint("PRIVATE_KEY"); + } + + function execute() public override { + // deploy TimelockGuard contract + vm.broadcast(privKey); + TimelockGuard guard = new TimelockGuard(spoolAccessControl); + + // get guard data + (GuardDefinition[][] memory guards, RequestType[] memory guardRequestTypes) = _getGuardData(guard); + + // get strategies + address[] memory strategies = _getStrategies(); + + address riskProvider = _contractsJson.getAddress(".riskProviders.spoolLabs"); + address allocationProvider = address(exponentialAllocationProvider); + + // get spec + SmartVaultSpecification memory spec = + _getSpecification(strategies, guards, guardRequestTypes, riskProvider, allocationProvider); + + // create vault and transfer ownership + vm.startBroadcast(privKey); + address vault = address(smartVaultFactory.deploySmartVault(spec)); + spoolAccessControl.transferSmartVaultOwnership(vault, smartVaultOwner); + vm.stopBroadcast(); + + console.log("TimeLock deployed: %s", address(guard)); + console.log("SmartVault deployed: %s", vault); + } + + function _getGuardData(TimelockGuard guard) + private + pure + returns (GuardDefinition[][] memory guards, RequestType[] memory requestTypes) + { + // define the vault guard + guards = new GuardDefinition[][](1); + guards[0] = new GuardDefinition[](1); + GuardParamType[] memory guardParamTypes = new GuardParamType[](2); + guardParamTypes[0] = GuardParamType.VaultAddress; + guardParamTypes[1] = GuardParamType.Assets; + + // define the guard + guards[0][0] = GuardDefinition({ // guard checking the timelock of the nftIds passed for the receiver + contractAddress: address(guard), + methodSignature: "checkTimelock(address,uint256[])", + operator: "", + expectedValue: 0, + methodParamTypes: guardParamTypes, + methodParamValues: new bytes[](0) + }); + + requestTypes = new RequestType[](1); + requestTypes[0] = RequestType.BurnNFT; + } + + function _getStrategies() private view returns (address[] memory) { + // get strategy from contracts + address[] memory strategies = new address[](3); + + strategies[0] = _contractsJson.getAddress(".strategies.gearbox-v3.gearbox-v3-usdc"); + strategies[1] = _contractsJson.getAddress(".strategies.ethena.ethena-usdc"); + strategies[2] = _contractsJson.getAddress(".strategies.yearn-v3-gauged.yearn-v3-gauged-usdc"); + + return strategies; + } + + function _getSpecification( + address[] memory strategies, + GuardDefinition[][] memory guards, + RequestType[] memory guardRequestTypes, + address riskProvider, + address allocationProvider + ) private view returns (SmartVaultSpecification memory) { + return SmartVaultSpecification({ + smartVaultName: "Spool (Deposit Lock)", + svtSymbol: "SPOOLDEPLOCK", + baseURI: "https://token-cdn-domain/", + assetGroupId: Strategy(strategies[0]).assetGroupId(), + strategies: strategies, + strategyAllocation: Arrays.toUint16a16(0), + riskTolerance: 10, + riskProvider: riskProvider, + allocationProvider: allocationProvider, + actions: new IAction[](0), + actionRequestTypes: new RequestType[](0), + guards: guards, + guardRequestTypes: guardRequestTypes, + managementFeePct: 0, + depositFeePct: 0, + performanceFeePct: 0, + allowRedeemFor: false + }); + } +} diff --git a/script/mainnet/extended/MetamorphoExtraStrategySetup.s.sol b/script/mainnet/extended/MetamorphoExtraStrategySetup.s.sol new file mode 100644 index 00000000..03bd9cfd --- /dev/null +++ b/script/mainnet/extended/MetamorphoExtraStrategySetup.s.sol @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity 0.8.17; + +import "../MainnetExtendedSetup.s.sol"; + +contract MetamorphoExtraStrategySetup is MainnetExtendedSetup { + function broadcast() public override { + _deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + } + + function execute() public override { + StandardContracts memory contracts = StandardContracts({ + accessControl: spoolAccessControl, + assetGroupRegistry: assetGroupRegistry, + swapper: swapper, + proxyAdmin: address(proxyAdmin), + strategyRegistry: strategyRegistry + }); + + // reserialize strategies + contractsJson().reserializeKeyAddress("strategies"); + + MetamorphoStrategy implementation = + MetamorphoStrategy(contractsJson().getAddress(string.concat(".strategies.", METAMORPHO, ".implementation"))); + + deployMetamorphoExtra(contracts, implementation, false); + } + + function _createAndInitializeMetamorpho( + StandardContracts memory contracts, + MetamorphoStrategy implementation, + string memory variantName, + uint256 assetGroupId, + IERC4626 vault, + address[] memory rewards + ) internal override returns (address variant) { + vm.startBroadcast(_deployerPrivateKey); + variant = + super._createAndInitializeMetamorpho(contracts, implementation, variantName, assetGroupId, vault, rewards); + vm.stopBroadcast(); + } +} diff --git a/script/mainnet/extended/MetamorphoGauntletStrategySetup.s.sol b/script/mainnet/extended/MetamorphoGauntletStrategySetup.s.sol index a3ff04c1..2db98e08 100644 --- a/script/mainnet/extended/MetamorphoGauntletStrategySetup.s.sol +++ b/script/mainnet/extended/MetamorphoGauntletStrategySetup.s.sol @@ -16,7 +16,9 @@ contract MetamorphoGauntletStrategySetup is MainnetExtendedSetup { // reserialize strategies contractsJson().reserializeKeyAddress("strategies"); - deployMetamorphoGauntlet(contracts, false); + MetamorphoStrategy implementation = deployMetamorphoImplementation(contracts); + + deployMetamorpho(contracts, implementation, false, 0); } function test_mock_MetamorphoGauntletStrategySetup() external pure {} diff --git a/script/mainnet/upgrade/DeployStrategiesDepositedEvent.s.sol b/script/mainnet/upgrade/DeployStrategiesDepositedEvent.s.sol new file mode 100644 index 00000000..3d1a5965 --- /dev/null +++ b/script/mainnet/upgrade/DeployStrategiesDepositedEvent.s.sol @@ -0,0 +1,362 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity 0.8.17; + +import "../MainnetExtendedSetup.s.sol"; +import "../StrategiesInitial.s.sol"; + +contract DeployStrategiesDepositedEventP1 is MainnetExtendedSetup { + // optimizer_runs = 99999 + + function broadcast() public override { + _deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + } + + function execute() public override { + // reselialize strategies + _contractsJson.reserializeKeyAddress("strategies"); + + // deploy new implementations for strategies + redeployAaveV2(); + redeployCompoundV2(); + redeployGearboxV3(); + redeployMorphoAaveV2(); + redeployMorphoCompoundV2(); + redeployOEthHolding(); + redeployREthHolding(); + redeploySfrxEthHolding(); + redeployStEthHolding(); + redeployYearnV2(); + } + + function redeployAaveV2() internal { + ILendingPoolAddressesProvider provider = ILendingPoolAddressesProvider( + _constantsJson.getAddress(string.concat(".strategies.", AAVE_V2_KEY, ".lendingPoolAddressesProvider")) + ); + + vm.broadcast(_deployerPrivateKey); + AaveV2Strategy implementation = new AaveV2Strategy( + assetGroupRegistry, + spoolAccessControl, + provider + ); + + _contractsJson.addVariantStrategyImplementation(AAVE_V2_KEY, address(implementation)); + + // upgrade aave-v2: + // - aave-v2-dai + // - aave-v2-usdc + // - aave-v2-usdt + } + + function redeployCompoundV2() internal { + IComptroller comptroller = + IComptroller(_constantsJson.getAddress(string.concat(".strategies.", COMPOUND_V2_KEY, ".comptroller"))); + + vm.broadcast(_deployerPrivateKey); + CompoundV2Strategy implementation = new CompoundV2Strategy( + assetGroupRegistry, spoolAccessControl, swapper, comptroller + ); + + _contractsJson.addVariantStrategyImplementation(COMPOUND_V2_KEY, address(implementation)); + + // upgrade compound-v2: + // - compound-v2-dai + // - compound-v2-usdc + // - compound-v2-usdt + } + + function redeployGearboxV3() internal { + vm.broadcast(_deployerPrivateKey); + GearboxV3Strategy implementation = new GearboxV3Strategy(assetGroupRegistry, spoolAccessControl, swapper); + + _contractsJson.addVariantStrategyImplementation(GEARBOX_V3_KEY, address(implementation)); + + // upgrade gearbox-v3: + // - gearbox-v3-usdc + } + + function redeployMorphoAaveV2() internal { + MorphoAaveV2.IMorpho morpho = MorphoAaveV2.IMorpho( + _constantsJson.getAddress(string.concat(".strategies.", MORPHO_AAVE_V2_KEY, ".morpho")) + ); + IERC20 poolRewardToken = IERC20(_constantsJson.getAddress(string.concat(".tokens.stkAave"))); + MorphoAaveV2.ILens lens = + MorphoAaveV2.ILens(_constantsJson.getAddress(string.concat(".strategies.", MORPHO_AAVE_V2_KEY, ".lens"))); + + vm.broadcast(_deployerPrivateKey); + MorphoAaveV2.MorphoAaveV2Strategy implementation = new MorphoAaveV2.MorphoAaveV2Strategy( + assetGroupRegistry, + spoolAccessControl, + morpho, + poolRewardToken, + swapper, + lens + ); + + _contractsJson.addVariantStrategyImplementation(MORPHO_AAVE_V2_KEY, address(implementation)); + + // upgrade morpho-aave-v2: + // - morpho-aave-v2-dai + // - morpho-aave-v2-usdc + // - morpho-aave-v2-usdt + } + + function redeployMorphoCompoundV2() internal { + MorphoCompoundV2.IMorpho morpho = MorphoCompoundV2.IMorpho( + _constantsJson.getAddress(string.concat(".strategies.", MORPHO_COMPOUND_V2_KEY, ".morpho")) + ); + IERC20 poolRewardToken = IERC20(_constantsJson.getAddress(string.concat(".tokens.comp"))); + MorphoCompoundV2.ILens lens = MorphoCompoundV2.ILens( + _constantsJson.getAddress(string.concat(".strategies.", MORPHO_COMPOUND_V2_KEY, ".lens")) + ); + + vm.broadcast(_deployerPrivateKey); + MorphoCompoundV2.MorphoCompoundV2Strategy implementation = new MorphoCompoundV2.MorphoCompoundV2Strategy( + assetGroupRegistry, + spoolAccessControl, + morpho, + poolRewardToken, + swapper, + lens + ); + + _contractsJson.addVariantStrategyImplementation(MORPHO_COMPOUND_V2_KEY, address(implementation)); + + // upgrade morpho-compound-v2: + // - morpho-compound-v2-dai + // - morpho-compound-v2-usdc + // - morpho-compound-v2-usdt + } + + function redeployOEthHolding() internal { + uint256 assetGroupId = assetGroups(WETH_KEY); + + IOEthToken oEthToken = IOEthToken(_constantsJson.getAddress(string.concat(".tokens.oEth"))); + + IVaultCore oEthVault = + IVaultCore(_constantsJson.getAddress(string.concat(".strategies.", OETH_HOLDING_KEY, ".vault"))); + + ICurveEthPool curvePool = + ICurveEthPool(_constantsJson.getAddress(string.concat(".strategies.", CURVE_OETH_KEY, ".pool"))); + + vm.broadcast(_deployerPrivateKey); + OEthHoldingStrategy implementation = new OEthHoldingStrategy( + assetGroupRegistry, + spoolAccessControl, + assetGroupId, + oEthToken, + oEthVault, + curvePool, + assets(WETH_KEY) + ); + + _contractsJson.addVariantStrategyImplementation(OETH_HOLDING_KEY, address(implementation)); + + // upgrade oeth-holding: + // - proxy + } + + function redeployREthHolding() internal { + uint256 assetGroupId = assetGroups(WETH_KEY); + + IRocketSwapRouter rocketSwapRouter = IRocketSwapRouter( + _constantsJson.getAddress(string.concat(".strategies.", RETH_HOLDING_KEY, ".rocketSwapRouter")) + ); + + vm.broadcast(_deployerPrivateKey); + REthHoldingStrategy implementation = new REthHoldingStrategy( + assetGroupRegistry, spoolAccessControl, assetGroupId, rocketSwapRouter, assets(WETH_KEY) + ); + + _contractsJson.addVariantStrategyImplementation(RETH_HOLDING_KEY, address(implementation)); + + // upgrade reth-holding: + // - proxy + } + + function redeploySfrxEthHolding() internal { + uint256 assetGroupId = assetGroups(WETH_KEY); + + IERC20 frxEthToken = IERC20(_constantsJson.getAddress(string.concat(".tokens.frxEth"))); + ISfrxEthToken sfrxEthToken = ISfrxEthToken(_constantsJson.getAddress(string.concat(".tokens.sfrxEth"))); + IFrxEthMinter frxEthMinter = IFrxEthMinter( + _constantsJson.getAddress(string.concat(".strategies.", SFRXETH_HOLDING_KEY, ".frxEthMinter")) + ); + ICurveEthPool curvePool = + ICurveEthPool(_constantsJson.getAddress(string.concat(".strategies.", CURVE_FRXETH_KEY, ".pool"))); + + vm.broadcast(_deployerPrivateKey); + SfrxEthHoldingStrategy implementation = new SfrxEthHoldingStrategy( + assetGroupRegistry, + spoolAccessControl, + assetGroupId, + frxEthToken, + sfrxEthToken, + frxEthMinter, + curvePool, + assets(WETH_KEY) + ); + + _contractsJson.addVariantStrategyImplementation(SFRXETH_HOLDING_KEY, address(implementation)); + + // upgrade sfrxeth-holding: + // - proxy + } + + function redeployStEthHolding() internal { + uint256 assetGroupId = assetGroups(WETH_KEY); + + ILido lido = ILido(_constantsJson.getAddress(string.concat(".strategies.", STETH_HOLDING_KEY, ".lido"))); + ICurveEthPool curvePool = + ICurveEthPool(_constantsJson.getAddress(string.concat(".strategies.", CURVE_STETH_KEY, ".pool"))); + + vm.broadcast(_deployerPrivateKey); + StEthHoldingStrategy implementation = new StEthHoldingStrategy( + assetGroupRegistry, spoolAccessControl, assetGroupId, lido, curvePool, assets(WETH_KEY) + ); + + _contractsJson.addVariantStrategyImplementation(STETH_HOLDING_KEY, address(implementation)); + + // upgrade steth-holding: + // - proxy + } + + function redeployYearnV2() internal { + vm.broadcast(_deployerPrivateKey); + YearnV2Strategy implementation = new YearnV2Strategy(assetGroupRegistry, spoolAccessControl); + + _contractsJson.addVariantStrategyImplementation(YEARN_V2_KEY, address(implementation)); + + // upgrade yearn-v2: + // - yearn-v2-dai + // - yearn-v2-usdc + // - yearn-v2-usdt + } +} + +// vv commented out because `forge coverage` fails on CI when this file has multiple contracts... vv + +// contract DeployStrategiesDepositedEventP2 is MainnetExtendedSetup { +// // optimizer_runs = 2500 + +// function broadcast() public override { +// _deployerPrivateKey = vm.envUint("PRIVATE_KEY"); +// } + +// function execute() public override { +// // reselialize strategies +// _contractsJson.reserializeKeyAddress("strategies"); + +// // deploy new implementations for strategies +// redeployCurve3pool(); +// redeployMetamorphoGauntlet(); +// } + +// function redeployCurve3pool() internal { +// uint256 assetGroupId = assetGroups(DAI_USDC_USDT_KEY); + +// vm.broadcast(_deployerPrivateKey); +// Curve3poolStrategy implementation = new Curve3poolStrategy( +// assetGroupRegistry, spoolAccessControl, assetGroupId, swapper +// ); + +// _contractsJson.addVariantStrategyImplementation(CURVE_3POOL_KEY, address(implementation)); + +// // upgrade curve-3pool: +// // - proxy +// } + +// function redeployMetamorphoGauntlet() internal { +// vm.broadcast(_deployerPrivateKey); +// MetamorphoStrategy implementation = new MetamorphoStrategy(assetGroupRegistry, spoolAccessControl, swapper); + +// _contractsJson.addVariantStrategyImplementation(METAMORPHO_GAUNTLET, address(implementation)); + +// // upgrade metamorpho-gauntlet: +// // - metamorpho-gauntlet-dai-core +// // - metamorpho-gauntlet-lrt-core +// // - metamorpho-gauntlet-mkr-blended +// // - metamorpho-gauntlet-usdt-prime +// } +// } + +// contract DeployStrategiesDepositedEventP3 is MainnetExtendedSetup { +// // optimizer_runs = 800 + +// function broadcast() public override { +// _deployerPrivateKey = vm.envUint("PRIVATE_KEY"); +// } + +// function execute() public override { +// // reselialize strategies +// _contractsJson.reserializeKeyAddress("strategies"); + +// // deploy new implementations for strategies +// redeployConvex3pool(); +// redeployConvexStFrxeth(); +// } + +// function redeployConvex3pool() internal { +// uint256 assetGroupId = assetGroups(DAI_USDC_USDT_KEY); + +// IBooster booster = +// IBooster(_constantsJson.getAddress(string.concat(".strategies.", CONVEX_BASE_KEY, ".booster"))); + +// vm.broadcast(_deployerPrivateKey); +// Convex3poolStrategy implementation = new Convex3poolStrategy( +// assetGroupRegistry, spoolAccessControl, assetGroupId, swapper, booster +// ); + +// _contractsJson.addVariantStrategyImplementation(CONVEX_3POOL_KEY, address(implementation)); + +// // upgrade convex-3pool: +// // - proxy +// } + +// function redeployConvexStFrxeth() internal { +// uint256 assetGroupId = assetGroups(WETH_KEY); + +// vm.broadcast(_deployerPrivateKey); +// ConvexStFrxEthStrategy implementation = new ConvexStFrxEthStrategy( +// assetGroupRegistry, spoolAccessControl, assetGroupId, swapper +// ); + +// _contractsJson.addVariantStrategyImplementation(CONVEX_STFRXETH_KEY, address(implementation)); + +// // upgrade convex-stfrxeth: +// // - proxy +// } +// } + +// contract DeployStrategiesDepositedEventP4 is MainnetExtendedSetup { +// // optimizer_runs = 250 + +// function broadcast() public override { +// _deployerPrivateKey = vm.envUint("PRIVATE_KEY"); +// } + +// function execute() public override { +// // reselialize strategies +// _contractsJson.reserializeKeyAddress("strategies"); + +// // deploy new implementations for strategies +// redeployConvexAlusd(); +// } + +// function redeployConvexAlusd() internal { +// uint256 assetGroupId = assetGroups(DAI_USDC_USDT_KEY); + +// IBooster booster = +// IBooster(_constantsJson.getAddress(string.concat(".strategies.", CONVEX_BASE_KEY, ".booster"))); + +// vm.broadcast(_deployerPrivateKey); +// ConvexAlusdStrategy implementation = new ConvexAlusdStrategy( +// assetGroupRegistry, spoolAccessControl, assetGroupId, swapper, booster, 1 +// ); + +// _contractsJson.addVariantStrategyImplementation(CONVEX_ALUSD_KEY, address(implementation)); + +// // upgrade convex-alusd: +// // - proxy +// } +// } diff --git a/src/SmartVault.sol b/src/SmartVault.sol index bd6dda99..10f8aa9d 100644 --- a/src/SmartVault.sol +++ b/src/SmartVault.sol @@ -37,10 +37,10 @@ contract SmartVault is ERC20PermitUpgradeable, ERC1155Upgradeable, SpoolAccessCo mapping(uint256 => WithdrawalMetadata) private _withdrawalMetadata; /// @notice Deposit NFT ID - uint256 private _lastDepositId; + uint256 internal _lastDepositId; /// @notice Withdrawal NFT ID - uint256 private _lastWithdrawalId; + uint256 internal _lastWithdrawalId; /* ========== CONSTRUCTOR ========== */ @@ -59,7 +59,7 @@ contract SmartVault is ERC20PermitUpgradeable, ERC1155Upgradeable, SpoolAccessCo string calldata svtSymbol, string calldata baseURI_, uint256 assetGroupId_ - ) external initializer { + ) public initializer { if (bytes(vaultName_).length == 0) revert InvalidConfiguration(); __ERC1155_init(baseURI_); @@ -168,6 +168,7 @@ contract SmartVault is ERC20PermitUpgradeable, ERC1155Upgradeable, SpoolAccessCo function mintVaultShares(address receiver, uint256 vaultShares) external + virtual onlyRole(ROLE_SMART_VAULT_MANAGER, msg.sender) { _mint(receiver, vaultShares); diff --git a/src/SmartVaultBeneficiary.sol b/src/SmartVaultBeneficiary.sol new file mode 100644 index 00000000..a5631b3e --- /dev/null +++ b/src/SmartVaultBeneficiary.sol @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity 0.8.17; + +import "./SmartVault.sol"; +import {MAX_FEE_IN_BP, ExceedMaxFeeBp} from "./SmartVaultBeneficiaryFactoryHpf.sol"; + +contract SmartVaultBeneficiary is SmartVault { + address public beneficiary; + uint256 public feeInBp; + + constructor(ISpoolAccessControl accessControl_, IGuardManager guardManager_) + SmartVault(accessControl_, guardManager_) + { + _disableInitializers(); + } + + function initialize( + string calldata vaultName_, + string calldata svtSymbol, + string calldata baseURI_, + uint256 assetGroupId_, + address beneficiary_, + uint256 feeInBp_ + ) external { + initialize(vaultName_, svtSymbol, baseURI_, assetGroupId_); + if (address(beneficiary_) == address(0)) revert ConfigurationAddressZero(); + if (feeInBp_ > MAX_FEE_IN_BP) revert ExceedMaxFeeBp(); + beneficiary = beneficiary_; + feeInBp = feeInBp_; + } + + function mintVaultShares(address receiver, uint256 vaultShares) + external + override + onlyRole(ROLE_SMART_VAULT_MANAGER, msg.sender) + { + uint256 beneficiaryShares; + if (receiver == _accessControl.smartVaultOwner(address(this))) { + beneficiaryShares = feeInBp * vaultShares / MAX_FEE_IN_BP; + } + uint256 receiverShares = vaultShares - beneficiaryShares; + if (beneficiaryShares > 0) { + _mint(beneficiary, beneficiaryShares); + } + if (receiverShares > 0) { + _mint(receiver, receiverShares); + } + } +} diff --git a/src/SmartVaultBeneficiaryFactoryHpf.sol b/src/SmartVaultBeneficiaryFactoryHpf.sol new file mode 100644 index 00000000..ce428867 --- /dev/null +++ b/src/SmartVaultBeneficiaryFactoryHpf.sol @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity 0.8.17; + +import "./SmartVaultFactoryHpf.sol"; + +error ExceedMaxFeeBp(); +error ManagementFeeNoneZero(); +error DepositFeeNoneZero(); +error PerformanceFeeNotMax(); + +uint256 constant MAX_FEE_IN_BP = 100_00; + +contract SmartVaultBeneficiaryFactoryHpf is SmartVaultFactoryHpf { + /** + * @notice address to receive share of SVTs from SmartVault onwer + */ + address public immutable beneficiary; + /** + * @notice beneficiary fee in base points + */ + uint256 public immutable feeInBp; + + /* ========== CONSTRUCTOR ========== */ + + constructor( + address implementation, + ISpoolAccessControl accessControl_, + IActionManager actionManager_, + IGuardManager guardManager_, + ISmartVaultRegistry smartVaultRegistry_, + IAssetGroupRegistry assetGroupRegistry_, + IRiskManager riskManager_, + address beneficiary_, + uint256 feeInBp_ + ) + SmartVaultFactoryHpf( + implementation, + accessControl_, + actionManager_, + guardManager_, + smartVaultRegistry_, + assetGroupRegistry_, + riskManager_ + ) + { + if (address(beneficiary_) == address(0)) revert ConfigurationAddressZero(); + if (feeInBp_ > MAX_FEE_IN_BP) revert ExceedMaxFeeBp(); + beneficiary = beneficiary_; + feeInBp = feeInBp_; + } + + function _validateSpecification(SmartVaultSpecification calldata specification) internal view override { + if (specification.managementFeePct > 0) { + revert ManagementFeeNoneZero(); + } + if (specification.depositFeePct > 0) { + revert DepositFeeNoneZero(); + } + if (specification.performanceFeePct != SV_PERFORMANCE_FEE_HIGH_MAX) { + revert PerformanceFeeNotMax(); + } + super._validateSpecification(specification); + } + + function _encodeInitializationCalldata(SmartVaultSpecification calldata specification) + internal + view + virtual + override + returns (bytes memory) + { + return abi.encodeWithSignature( + "initialize(string,string,string,uint256,address,uint256)", + specification.smartVaultName, + specification.svtSymbol, + specification.baseURI, + specification.assetGroupId, + beneficiary, + feeInBp + ); + } +} diff --git a/src/SmartVaultFactoryHpf.sol b/src/SmartVaultFactoryHpf.sol index 1f6c6348..2ed2f6fe 100644 --- a/src/SmartVaultFactoryHpf.sol +++ b/src/SmartVaultFactoryHpf.sol @@ -119,12 +119,8 @@ contract SmartVaultFactoryHpf is UpgradeableBeacon, SpoolAccessControllable { { _validateSpecification(specification); - address smartVaultAddress = address( - new BeaconProxy( - address(this), - _encodeInitializationCalldata(specification) - ) - ); + address smartVaultAddress = + address(new BeaconProxy(address(this), _encodeInitializationCalldata(specification))); _integrateSmartVault(smartVaultAddress, specification); @@ -148,12 +144,8 @@ contract SmartVaultFactoryHpf is UpgradeableBeacon, SpoolAccessControllable { { _validateSpecification(specification); - address smartVaultAddress = address( - new BeaconProxy{salt: salt}( - address(this), - _encodeInitializationCalldata(specification) - ) - ); + address smartVaultAddress = + address(new BeaconProxy{salt: salt}(address(this), _encodeInitializationCalldata(specification))); _integrateSmartVault(smartVaultAddress, specification); @@ -202,7 +194,7 @@ contract SmartVaultFactoryHpf is UpgradeableBeacon, SpoolAccessControllable { * @notice Validates smart vault specification. * @param specification Specifications for the new smart vault. */ - function _validateSpecification(SmartVaultSpecification calldata specification) private view { + function _validateSpecification(SmartVaultSpecification calldata specification) internal view virtual { _assetGroupRegistry.validateAssetGroup(specification.assetGroupId); if (specification.strategies.length == 0) { @@ -279,8 +271,9 @@ contract SmartVaultFactoryHpf is UpgradeableBeacon, SpoolAccessControllable { * @return initializationCalldata Enoded initialization calldata. */ function _encodeInitializationCalldata(SmartVaultSpecification calldata specification) - private - pure + internal + view + virtual returns (bytes memory) { return abi.encodeWithSignature( diff --git a/src/guards/TimelockGuard.sol b/src/guards/TimelockGuard.sol new file mode 100644 index 00000000..ba98a165 --- /dev/null +++ b/src/guards/TimelockGuard.sol @@ -0,0 +1,101 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity 0.8.17; + +import "../interfaces/ISmartVault.sol"; +import "../interfaces/Constants.sol"; +import "../access/SpoolAccessControllable.sol"; + +/* ========== ERRORS ========== */ + +/** + * @notice Used when the NFT passed is not a deposit NFT. + * @param smartVault Address of the smart vault. + * @param nftId ID of the NFT. + */ +error NotDepositNFT(address smartVault, uint256 nftId); + +/** + * @notice Used when the timelock is out of range. + * @param timelock Value of the timelock. + */ +error TimelockOutOfRange(uint256 timelock); + +/* ========== CONTRACTS ========== */ + +contract TimelockGuard is SpoolAccessControllable { + /* ========== EVENTS ========== */ + + /** + * @notice Emitted when smart vault owner updates the timelock + * @param smartVault Address of the smart vault. + * @param timelock value of the timelock, in seconds + */ + event UpdatedTimelock(address indexed smartVault, uint256 indexed timelock); + + /* ========== STATE VARIABLES ========== */ + + /** + * @notice Timelocks for a smart vault. + * Each smart vault can have a single timelock, updated by the owner. + */ + mapping(address => uint256) public timelocks; + + /* ========== CONSTANTS ========== */ + + /** + * @notice Maximum timelock value, in seconds. + */ + uint256 constant MAX_TIMELOCK = 365 days; + + constructor(ISpoolAccessControl accessControl_) SpoolAccessControllable(accessControl_) {} + + /* ========== EXTERNAL VIEW FUNCTIONS ========== */ + + /** + * @notice Check if the timelock is valid for a range of dNFTs. + * @param smartVault Address of the smart vault. + * @param nftIds Array of dNFTs to check. + * @return valid True when the timelock is valid, false otherwise. + */ + function checkTimelock(address smartVault, uint256[] calldata nftIds) external view returns (bool) { + bytes[] memory metadatas = ISmartVault(smartVault).getMetadata(nftIds); + uint256 timelock = timelocks[smartVault]; + + for (uint256 i; i < metadatas.length; i++) { + uint256 nftId = nftIds[i]; + if (nftId >= MAXIMAL_DEPOSIT_ID) { + revert NotDepositNFT(smartVault, nftId); + } + + DepositMetadata memory metadata = abi.decode(metadatas[i], (DepositMetadata)); + + if ((block.timestamp - metadata.initiated) <= timelock) { + return false; + } + } + + return true; + } + + /* ========== EXTERNAL MUTATIVE FUNCTIONS ========== */ + + /** + * @notice Update the timelock for a smart vault. + * @dev Requirements: + * - caller must be the owner of the smart vault + * @param smartVault Address of the smart vault. + * @param timelock New timelock value, in seconds. + */ + function updateTimelock(address smartVault, uint256 timelock) + external + onlySmartVaultRole(smartVault, ROLE_SMART_VAULT_ADMIN, msg.sender) + { + if (timelock > MAX_TIMELOCK) { + revert TimelockOutOfRange(timelock); + } + + timelocks[smartVault] = timelock; + + emit UpdatedTimelock(smartVault, timelock); + } +} diff --git a/test/SmartVaultBeneficiary.t.sol b/test/SmartVaultBeneficiary.t.sol new file mode 100644 index 00000000..e2f87a1f --- /dev/null +++ b/test/SmartVaultBeneficiary.t.sol @@ -0,0 +1,226 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "forge-std/Test.sol"; +import "@openzeppelin-upgradeable/access/IAccessControlUpgradeable.sol"; +import "../src/interfaces/IAction.sol"; +import "../src/interfaces/IAssetGroupRegistry.sol"; +import "../src/interfaces/IGuardManager.sol"; +import "../src/interfaces/RequestType.sol"; +import "../src/interfaces/ISmartVault.sol"; +import "../src/interfaces/ISmartVaultManager.sol"; +import "../src/interfaces/ISpoolAccessControl.sol"; +import "../src/interfaces/IStrategy.sol"; +import "../src/SmartVault.sol"; +import "../src/SmartVaultBeneficiary.sol"; +import "../src/SmartVaultBeneficiaryFactoryHpf.sol"; +import "./libraries/Arrays.sol"; +import "../src/managers/RiskManager.sol"; +import "../src/access/SpoolAccessControl.sol"; + +contract SmartVaultBeneficiaryTest is Test { + event SmartVaultDeployed(address indexed smartVault, address indexed deployer); + event BaseURIChanged(string baseURI); + + address strategy = address(0x1); + address anotherStrategy = address(0x11); + address riskProvider = address(0x7); + address allocProviderAddress = address(0x8); + + SpoolAccessControl accessControl; + IActionManager actionManager; + IGuardManager guardManager; + ISmartVaultManager smartVaultManager; + IAssetGroupRegistry assetGroupRegistry; + IRiskManager riskManager; + IStrategyRegistry strategyRegistry; + IAllocationProvider allocProvider; + + function setUp() public { + vm.mockCall(strategy, abi.encodeWithSelector(IStrategy.assetGroupId.selector), abi.encode(1)); + vm.mockCall(anotherStrategy, abi.encodeWithSelector(IStrategy.assetGroupId.selector), abi.encode(1)); + + accessControl = new SpoolAccessControl(); + accessControl.initialize(); + + actionManager = IActionManager(address(0x2)); + vm.mockCall(address(actionManager), abi.encodeWithSelector(IActionManager.setActions.selector), abi.encode(0)); + + guardManager = IGuardManager(address(0x3)); + vm.mockCall(address(guardManager), abi.encodeWithSelector(IGuardManager.setGuards.selector), abi.encode(0)); + + smartVaultManager = ISmartVaultManager(address(0x4)); + vm.mockCall( + address(smartVaultManager), + abi.encodeWithSelector(ISmartVaultRegistry.registerSmartVault.selector), + abi.encode(0) + ); + + assetGroupRegistry = IAssetGroupRegistry(address(0x5)); + vm.mockCall( + address(assetGroupRegistry), + abi.encodeWithSelector(IAssetGroupRegistry.validateAssetGroup.selector), + abi.encode(0) + ); + + strategyRegistry = IStrategyRegistry(address(0x6)); + vm.mockCall( + address(strategyRegistry), + abi.encodeWithSelector(IStrategyRegistry.strategyAPYs.selector), + abi.encode(new int256[](0)) + ); + + allocProvider = IAllocationProvider(allocProviderAddress); + vm.mockCall( + address(allocProvider), + abi.encodeWithSelector(IAllocationProvider.calculateAllocation.selector), + abi.encode(Arrays.toArray(FULL_PERCENT / 2, FULL_PERCENT / 2)) + ); + + riskManager = new RiskManager(accessControl, strategyRegistry, address(0xabc)); + + accessControl.grantRole(ADMIN_ROLE_STRATEGY, address(this)); + accessControl.grantRole(ROLE_STRATEGY, strategy); + accessControl.grantRole(ROLE_STRATEGY, anotherStrategy); + accessControl.grantRole(ROLE_RISK_PROVIDER, riskProvider); + accessControl.grantRole(ROLE_ALLOCATION_PROVIDER, allocProviderAddress); + accessControl.grantRole(ROLE_HPF_SMART_VAULT_DEPLOYER, address(this)); + + address[] memory strategies = Arrays.toArray(strategy, anotherStrategy); + uint8[] memory riskScores = new uint8[](2); + riskScores[0] = 1; + riskScores[1] = 1; + vm.prank(riskProvider); + riskManager.setRiskScores(riskScores, strategies); + } + + function test_mintVaultShares() external { + address beneficiary = address(0x321); + address smartVaultOwner = address(0x9876); + + address implementation = address(new SmartVaultBeneficiary(accessControl, guardManager)); + + //cannot set fee more than 100% + vm.expectRevert(abi.encodeWithSelector(ExceedMaxFeeBp.selector)); + new SmartVaultBeneficiaryFactoryHpf( + implementation, + accessControl, + actionManager, + guardManager, + smartVaultManager, + assetGroupRegistry, + riskManager, + beneficiary, + 101_00 + ); + // beneficiary cannot be zero address + vm.expectRevert(abi.encodeWithSelector(ConfigurationAddressZero.selector)); + new SmartVaultBeneficiaryFactoryHpf( + implementation, + accessControl, + actionManager, + guardManager, + smartVaultManager, + assetGroupRegistry, + riskManager, + address(0), + 1_00 + ); + + SmartVaultBeneficiaryFactoryHpf beneficiaryFactory = new SmartVaultBeneficiaryFactoryHpf( + implementation, + accessControl, + actionManager, + guardManager, + smartVaultManager, + assetGroupRegistry, + riskManager, + beneficiary, + 15_00 + ); + + accessControl.grantRole(ROLE_SMART_VAULT_INTEGRATOR, address(beneficiaryFactory)); + accessControl.grantRole(ROLE_HPF_SMART_VAULT_DEPLOYER, smartVaultOwner); + accessControl.grantRole(ROLE_SMART_VAULT_MANAGER, address(smartVaultManager)); + + SmartVaultSpecification memory specification = _getSpecification(); + + vm.startPrank(smartVaultOwner); + + { + // management fee is not zero revert + vm.expectRevert(abi.encodeWithSelector(ManagementFeeNoneZero.selector)); + specification.managementFeePct = 1; + beneficiaryFactory.deploySmartVault(specification); + specification.managementFeePct = 0; + } + { + // deposit fee is not zero revert + vm.expectRevert(abi.encodeWithSelector(DepositFeeNoneZero.selector)); + specification.depositFeePct = 1; + beneficiaryFactory.deploySmartVault(specification); + specification.depositFeePct = 0; + } + { + // deposit fee is not zero revert + vm.expectRevert(abi.encodeWithSelector(PerformanceFeeNotMax.selector)); + beneficiaryFactory.deploySmartVault(specification); + } + { + specification.smartVaultName = "SmartVault1"; + specification.performanceFeePct = 90_00; + SmartVaultBeneficiary smartVault = + SmartVaultBeneficiary(address(beneficiaryFactory.deploySmartVault(specification))); + // shares minted to INITIAL_LOCKED_SHARES_ADDRESS will not be shared with beneficiary + { + vm.startPrank(address(smartVaultManager)); + smartVault.mintVaultShares(INITIAL_LOCKED_SHARES_ADDRESS, 300_000); + vm.stopPrank(); + assertEq(smartVault.balanceOf(INITIAL_LOCKED_SHARES_ADDRESS), 300_000); + } + + // shares minted to smart vault will not be shared with beneficiary + { + vm.startPrank(address(smartVaultManager)); + smartVault.mintVaultShares(address(smartVault), 200_000); + vm.stopPrank(); + assertEq(smartVault.balanceOf(address(smartVault)), 200_000); + } + + // otherwise if shares are minted to smartVaultOwner beneficiary will get his share + vm.startPrank(address(smartVaultManager)); + uint256 sharesToMint = 123456; + smartVault.mintVaultShares(smartVaultOwner, sharesToMint); + vm.stopPrank(); + uint256 smartVaultOwnerBalance = smartVault.balanceOf(smartVaultOwner); + uint256 beneficiaryBalance = smartVault.balanceOf(beneficiary); + + uint256 feeInBp = smartVault.feeInBp(); + assertEq(smartVaultOwnerBalance + beneficiaryBalance, sharesToMint); + assertApproxEqAbs(sharesToMint * feeInBp / 100_00, beneficiaryBalance, 1); + assertApproxEqAbs(sharesToMint, smartVaultOwnerBalance * 100_00 / (100_00 - feeInBp), 1); + } + } + + function _getSpecification() private view returns (SmartVaultSpecification memory) { + return SmartVaultSpecification({ + smartVaultName: "MySmartVault", + svtSymbol: "MSV", + baseURI: "https://token-cdn-domain/", + assetGroupId: 1, + strategies: Arrays.toArray(strategy, anotherStrategy), + strategyAllocation: uint16a16.wrap(0), + riskTolerance: 4, + riskProvider: riskProvider, + allocationProvider: allocProviderAddress, + actions: new IAction[](0), + actionRequestTypes: new RequestType[](0), + guards: new GuardDefinition[][](0), + guardRequestTypes: new RequestType[](0), + managementFeePct: 0, + depositFeePct: 0, + performanceFeePct: 0, + allowRedeemFor: false + }); + } +} diff --git a/test/forked/ForkTestFixtureDeployment.sol b/test/forked/ForkTestFixtureDeployment.sol index bca65bb0..4a01cb11 100644 --- a/test/forked/ForkTestFixtureDeployment.sol +++ b/test/forked/ForkTestFixtureDeployment.sol @@ -76,10 +76,10 @@ abstract contract ForkTestFixtureDeployment is ForkTestFixture { string config; function _setConfig() internal virtual { - config = vm.readFile(string.concat("deploy/mainnet.production.constants.json")); + config = vm.readFile(string.concat("deploy/mainnet-production.constants.json")); } - function _deploy(uint256 extended) internal { + function _deploy(Extended extended) internal { setUpForkTestFixture(); vm.selectFork(mainnetForkId); _setConfig(); @@ -673,7 +673,7 @@ abstract contract ForkTestFixtureDeployment is ForkTestFixture { _setInitialDhwParametersGeneric(parameters, i, j, 4); } else if (Strings.equal(strategyKey, YEARN_V2_KEY)) { _setInitialDhwParametersGeneric(parameters, i, j, 4); - } else if (Strings.equal(strategyKey, METAMORPHO_GAUNTLET)) { + } else if (Strings.equal(strategyKey, METAMORPHO)) { _setInitialDhwParametersGeneric(parameters, i, j, 6); } else if (Strings.equal(strategyKey, YEARN_V3_GAUGED_KEY)) { _setInitialDhwParametersGeneric(parameters, i, j, 6); @@ -725,7 +725,7 @@ abstract contract ForkTestFixtureDeployment is ForkTestFixture { _updateDhwParametersGeneric(parameters, i, j, strategy, logs, 0); } else if (Strings.equal(strategyKey, YEARN_V2_KEY)) { _updateDhwParametersGeneric(parameters, i, j, strategy, logs, 0); - } else if (Strings.equal(strategyKey, METAMORPHO_GAUNTLET)) { + } else if (Strings.equal(strategyKey, METAMORPHO)) { _updateDhwParametersGeneric(parameters, i, j, strategy, logs, 1); } else if (Strings.equal(strategyKey, YEARN_V3_GAUGED_KEY)) { _updateDhwParametersGeneric(parameters, i, j, strategy, logs, 0); @@ -928,7 +928,7 @@ abstract contract ForkTestFixtureDeployment is ForkTestFixture { strategySlippages[i] = _getRedeemFastSlippagesSimple(strategies[i]); } else if (Strings.equal(strategyKey, YEARN_V2_KEY)) { strategySlippages[i] = _getRedeemFastSlippagesSimple(strategies[i]); - } else if (Strings.equal(strategyKey, METAMORPHO_GAUNTLET)) { + } else if (Strings.equal(strategyKey, METAMORPHO)) { strategySlippages[i] = _getRedeemFastSlippagesSimple(strategies[i]); } else if (Strings.equal(strategyKey, YEARN_V3_GAUGED_KEY)) { strategySlippages[i] = _getRedeemFastSlippagesSimple(strategies[i]); @@ -1039,7 +1039,7 @@ abstract contract ForkTestFixtureDeployment is ForkTestFixture { _setInitialReallocateParamsGeneric(params, i, 3, 3); } else if (Strings.equal(strategyKey, YEARN_V2_KEY)) { _setInitialReallocateParamsGeneric(params, i, 3, 3); - } else if (Strings.equal(strategyKey, METAMORPHO_GAUNTLET)) { + } else if (Strings.equal(strategyKey, METAMORPHO)) { _setInitialReallocateParamsGeneric(params, i, 3, 3); } else if (Strings.equal(strategyKey, YEARN_V3_GAUGED_KEY)) { _setInitialReallocateParamsGeneric(params, i, 3, 3); @@ -1086,7 +1086,7 @@ abstract contract ForkTestFixtureDeployment is ForkTestFixture { _updateReallocateParamsGeneric(params, i, strategy, logs); } else if (Strings.equal(strategyKey, YEARN_V2_KEY)) { _updateReallocateParamsGeneric(params, i, strategy, logs); - } else if (Strings.equal(strategyKey, METAMORPHO_GAUNTLET)) { + } else if (Strings.equal(strategyKey, METAMORPHO)) { _updateReallocateParamsGeneric(params, i, strategy, logs); } else if (Strings.equal(strategyKey, YEARN_V3_GAUGED_KEY)) { _updateReallocateParamsGeneric(params, i, strategy, logs); diff --git a/test/forked/arbitrum/ForkTestFixtureDeployment.sol b/test/forked/arbitrum/ForkTestFixtureDeployment.sol index 00cbd722..da01b5b3 100644 --- a/test/forked/arbitrum/ForkTestFixtureDeployment.sol +++ b/test/forked/arbitrum/ForkTestFixtureDeployment.sol @@ -77,7 +77,7 @@ abstract contract ForkTestFixtureDeployment is ForkTestFixture { string config; function _setConfig() internal virtual { - config = vm.readFile("deploy/arbitrum.constants.json"); + config = vm.readFile("deploy/arbitrum-production.constants.json"); } function _deploy() internal { diff --git a/test/forked/arbitrum/e2e/E2E.t.sol b/test/forked/arbitrum/e2e/E2E.t.sol index 2c7f6b89..f85f64c7 100644 --- a/test/forked/arbitrum/e2e/E2E.t.sol +++ b/test/forked/arbitrum/e2e/E2E.t.sol @@ -14,7 +14,7 @@ contract E2eArbitrumTest is ForkTestFixtureDeployment { MockAllocationProvider public mockAllocationProvider; function _setConfig() internal override { - config = vm.readFile("deploy/arbitrum.constants.json"); + config = vm.readFile("deploy/arbitrum-production.constants.json"); } function setUp() public { diff --git a/test/forked/e2e/E2E.Metamorpho.t.sol b/test/forked/e2e/E2E.Metamorpho.t.sol index 033c62bb..131555d8 100644 --- a/test/forked/e2e/E2E.Metamorpho.t.sol +++ b/test/forked/e2e/E2E.Metamorpho.t.sol @@ -16,7 +16,7 @@ contract E2eMainnetMetamorphoTest is ForkTestFixtureDeployment { } function setUp() public { - _deploy(4); // deploy strategies up to Metamorhpo Gauntlet + _deploy(Extended.METAMORPHO_YEARN_V3); // deploy strategies up to Metamorhpo Gauntlet mockAllocationProvider = new MockAllocationProvider(); vm.startPrank(_spoolAdmin); @@ -67,7 +67,7 @@ contract E2eMainnetMetamorphoTest is ForkTestFixtureDeployment { address[] memory strategies; { - address metamorphoStrategy = _getStrategyAddress(METAMORPHO_GAUNTLET, assetGroupId); + address metamorphoStrategy = _getStrategyAddress(METAMORPHO, assetGroupId); address aaveV2Strategy = _getStrategyAddress(AAVE_V2_KEY, assetGroupId); strategies = Arrays.toArray(metamorphoStrategy, aaveV2Strategy); @@ -133,7 +133,7 @@ contract E2eMainnetMetamorphoTest is ForkTestFixtureDeployment { address[] memory strategies; { - address metamorphoStrategy = _getStrategyAddress(METAMORPHO_GAUNTLET, assetGroupId); + address metamorphoStrategy = _getStrategyAddress(METAMORPHO, assetGroupId); address aaveV2Strategy = _getStrategyAddress(AAVE_V2_KEY, assetGroupId); strategies = Arrays.toArray(metamorphoStrategy, aaveV2Strategy); @@ -199,7 +199,7 @@ contract E2eMainnetMetamorphoTest is ForkTestFixtureDeployment { address[] memory strategies; { - address metamorphoStrategy = _getStrategyAddress(METAMORPHO_GAUNTLET, assetGroupId); + address metamorphoStrategy = _getStrategyAddress(METAMORPHO, assetGroupId); address aaveV2Strategy = _getStrategyAddress(AAVE_V2_KEY, assetGroupId); strategies = Arrays.toArray(metamorphoStrategy, aaveV2Strategy); @@ -265,7 +265,7 @@ contract E2eMainnetMetamorphoTest is ForkTestFixtureDeployment { address[] memory strategies; { - address metamorphoStrategy = _getStrategyAddress(METAMORPHO_GAUNTLET, assetGroupId); + address metamorphoStrategy = _getStrategyAddress(METAMORPHO, assetGroupId); address rEthHoldingStrategy = _getStrategyAddress(RETH_HOLDING_KEY, assetGroupId); strategies = Arrays.toArray(rEthHoldingStrategy, metamorphoStrategy); @@ -328,7 +328,7 @@ contract E2eMainnetMetamorphoTest is ForkTestFixtureDeployment { function test_reallocate_dai() public { uint256 assetGroupId = _getAssetGroupId(DAI_KEY); - address metamorphoStrategy = _getStrategyAddress(METAMORPHO_GAUNTLET, assetGroupId); + address metamorphoStrategy = _getStrategyAddress(METAMORPHO, assetGroupId); address aaveV2Strategy = _getStrategyAddress(AAVE_V2_KEY, assetGroupId); address[] memory strategies = Arrays.toArray(metamorphoStrategy, aaveV2Strategy); @@ -386,7 +386,7 @@ contract E2eMainnetMetamorphoTest is ForkTestFixtureDeployment { function test_reallocate_usdc() public { uint256 assetGroupId = _getAssetGroupId(USDC_KEY); - address metamorphoStrategy = _getStrategyAddress(METAMORPHO_GAUNTLET, assetGroupId); + address metamorphoStrategy = _getStrategyAddress(METAMORPHO, assetGroupId); address aaveV2Strategy = _getStrategyAddress(AAVE_V2_KEY, assetGroupId); address[] memory strategies = Arrays.toArray(metamorphoStrategy, aaveV2Strategy); @@ -444,7 +444,7 @@ contract E2eMainnetMetamorphoTest is ForkTestFixtureDeployment { function test_reallocate_usdt() public { uint256 assetGroupId = _getAssetGroupId(USDT_KEY); - address metamorphoStrategy = _getStrategyAddress(METAMORPHO_GAUNTLET, assetGroupId); + address metamorphoStrategy = _getStrategyAddress(METAMORPHO, assetGroupId); address aaveV2Strategy = _getStrategyAddress(AAVE_V2_KEY, assetGroupId); address[] memory strategies = Arrays.toArray(metamorphoStrategy, aaveV2Strategy); @@ -503,7 +503,7 @@ contract E2eMainnetMetamorphoTest is ForkTestFixtureDeployment { uint256 assetGroupId = _getAssetGroupId(WETH_KEY); address rEthHoldingStrategy = _getStrategyAddress(RETH_HOLDING_KEY, assetGroupId); - address metamorphoStrategy = _getStrategyAddress(METAMORPHO_GAUNTLET, assetGroupId); + address metamorphoStrategy = _getStrategyAddress(METAMORPHO, assetGroupId); address[] memory strategies = Arrays.toArray(rEthHoldingStrategy, metamorphoStrategy); diff --git a/test/forked/e2e/E2E.YearnV3.t.sol b/test/forked/e2e/E2E.YearnV3.t.sol index ba644c6e..d2a0ced1 100644 --- a/test/forked/e2e/E2E.YearnV3.t.sol +++ b/test/forked/e2e/E2E.YearnV3.t.sol @@ -16,7 +16,7 @@ contract E2E_YearnV3 is ForkTestFixtureDeployment { } function setUp() public { - _deploy(4); + _deploy(Extended.METAMORPHO_YEARN_V3); mockAllocationProvider = new MockAllocationProvider(); vm.startPrank(_spoolAdmin); diff --git a/test/forked/e2e/E2E.t.sol b/test/forked/e2e/E2E.t.sol index 2cfcd99f..3dd96bb5 100644 --- a/test/forked/e2e/E2E.t.sol +++ b/test/forked/e2e/E2E.t.sol @@ -14,7 +14,7 @@ contract E2eMainnetTest is ForkTestFixtureDeployment { MockAllocationProvider public mockAllocationProvider; function setUp() public { - _deploy(0); // deploy just initial strategies + _deploy(Extended.INITIAL); // deploy just initial strategies mockAllocationProvider = new MockAllocationProvider(); vm.startPrank(_spoolAdmin); diff --git a/test/guards/TimelockGuard.integration.t.sol b/test/guards/TimelockGuard.integration.t.sol new file mode 100644 index 00000000..8de8e89b --- /dev/null +++ b/test/guards/TimelockGuard.integration.t.sol @@ -0,0 +1,192 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "forge-std/Test.sol"; +import "../../src/interfaces/RequestType.sol"; +import "../../src/guards/TimelockGuard.sol"; +import "../../src/managers/AssetGroupRegistry.sol"; +import "../../src/managers/RiskManager.sol"; +import "../../src/managers/SmartVaultManager.sol"; +import "../../src/managers/StrategyRegistry.sol"; +import "../../src/managers/UsdPriceFeedManager.sol"; +import "../../src/SmartVault.sol"; +import "../../src/SmartVaultFactory.sol"; +import "../../src/Swapper.sol"; +import "../mocks/MockStrategy.sol"; +import "../libraries/Arrays.sol"; +import "../fixtures/TestFixture.sol"; + +contract TimelockGuardIntegrationTest is TestFixture { + address private alice; + address private bob; + address private charlie; + address private dave; + address private eve; + + TimelockGuard private timelockGuard; + MockStrategy strategy; + + function setUp() public { + setUpBase(); + + alice = address(0xa); + bob = address(0xb); + charlie = address(0xc); + dave = address(0xd); + eve = address(0xe); + + uint256 assetGroupId = assetGroupRegistry.registerAssetGroup(Arrays.toArray(address(token))); + + (GuardDefinition[][] memory guards, RequestType[] memory guardRequestTypes) = setUpTimelockGuard(); + + strategy = new MockStrategy(assetGroupRegistry, accessControl, swapper, assetGroupId); + { + uint256[] memory strategyRatios = new uint256[](1); + strategyRatios[0] = 1_000; + strategy.initialize("Strategy", strategyRatios); + strategyRegistry.registerStrategy(address(strategy), 0); + } + + { + vm.mockCall( + address(riskManager), + abi.encodeWithSelector(IRiskManager.calculateAllocation.selector), + abi.encode(Arrays.toUint16a16(1_000)) + ); + + smartVault = smartVaultFactory.deploySmartVault( + SmartVaultSpecification({ + smartVaultName: "SmartVault", + svtSymbol: "SV", + baseURI: "https://token-cdn-domain/", + assetGroupId: assetGroupId, + actions: new IAction[](0), + actionRequestTypes: new RequestType[](0), + guards: guards, + guardRequestTypes: guardRequestTypes, + strategies: Arrays.toArray(address(strategy)), + strategyAllocation: Arrays.toUint16a16(FULL_PERCENT), + riskTolerance: 0, + riskProvider: address(0), + allocationProvider: address(0), + managementFeePct: 0, + depositFeePct: 0, + allowRedeemFor: false, + performanceFeePct: 0 + }) + ); + } + + setUpTimelock(); + } + + function setUpTimelockGuard() private returns (GuardDefinition[][] memory, RequestType[] memory) { + timelockGuard = new TimelockGuard(accessControl); + + // Setup smart vault with one guard: + // - check whether the person burning the deposit NFT has passed the timelock + // The guard is implemented using the `checkTimelock` function of the + // TimelockGuard contract. + GuardDefinition[][] memory guards = new GuardDefinition[][](1); + guards[0] = new GuardDefinition[](1); + + // guard call receives three parameters: + // - address of the smart vault + // - ID of timelock to use for the smart vault + // - address to check against the timelock + GuardParamType[] memory guardParamTypes = new GuardParamType[](2); + + guardParamTypes[0] = GuardParamType.VaultAddress; // address of the smart vault + guardParamTypes[1] = GuardParamType.Assets; // ID of the timelock, set as method param value below + + // define the guards + guards[0][0] = GuardDefinition({ // guard checking the executor + contractAddress: address(timelockGuard), + methodSignature: "checkTimelock(address,uint256[])", + operator: "", + expectedValue: 0, + methodParamTypes: guardParamTypes, + methodParamValues: new bytes[](0) + }); + + RequestType[] memory requestTypes = new RequestType[](1); + requestTypes[0] = RequestType.BurnNFT; + + return (guards, requestTypes); + } + + function setUpTimelock() private { + // allow Alice to update timelocks for the smart vault + accessControl.grantSmartVaultRole(address(smartVault), ROLE_SMART_VAULT_ADMIN, alice); + + vm.prank(alice); + timelockGuard.updateTimelock(address(smartVault), 12 days); + } + + function test_depositWithAllowList() public { + token.mint(charlie, 2 ether); + token.mint(eve, 1 ether); + token.mint(bob, 1 ether); + + uint256[] memory depositAmounts = new uint256[](1); + depositAmounts[0] = 1 ether; + + uint256[][] memory nftIds = new uint256[][](3); + + vm.startPrank(charlie); + token.approve(address(smartVaultManager), 2 ether); + nftIds[0] = new uint256[](1); + nftIds[0][0] = + smartVaultManager.deposit(DepositBag(address(smartVault), depositAmounts, charlie, address(0), false)); + vm.stopPrank(); + vm.warp(block.timestamp + 4 days); + + vm.startPrank(eve); + token.approve(address(smartVaultManager), 1 ether); + nftIds[1] = new uint256[](1); + nftIds[1][0] = + smartVaultManager.deposit(DepositBag(address(smartVault), depositAmounts, eve, address(0), false)); + vm.stopPrank(); + vm.warp(block.timestamp + 4 days); + + vm.startPrank(bob); + token.approve(address(smartVaultManager), 1 ether); + nftIds[2] = new uint256[](1); + nftIds[2][0] = smartVaultManager.deposit(DepositBag(address(smartVault), depositAmounts, bob, address(0), true)); + vm.stopPrank(); + vm.warp(block.timestamp + 5 days); + + // execute dhw for the strategy + DoHardWorkParameterBag memory bag = + generateDhwParameterBag(Arrays.toArray(address(strategy)), Arrays.toArray(address(token))); + accessControl.grantRole(ROLE_DO_HARD_WORKER, alice); + vm.prank(alice); + strategyRegistry.doHardWork(bag); + smartVaultManager.syncSmartVault(address(smartVault), false); + + uint256[] memory nftAmounts = Arrays.toArray(NFT_MINTED_SHARES); + + // at this point only charlie should be able to claim + vm.prank(charlie); + smartVaultManager.claimSmartVaultTokens(address(smartVault), nftIds[0], nftAmounts); + + // claim as Eve, should fail + vm.prank(eve); + vm.expectRevert(abi.encodeWithSelector(GuardFailed.selector, 0)); + smartVaultManager.claimSmartVaultTokens(address(smartVault), nftIds[1], nftAmounts); + + // claim as Bob, should fail + vm.prank(bob); + vm.expectRevert(abi.encodeWithSelector(GuardFailed.selector, 0)); + smartVaultManager.claimSmartVaultTokens(address(smartVault), nftIds[2], nftAmounts); + + vm.warp(block.timestamp + 14 days); + + // at this point everyone should be able to burn. + vm.prank(eve); + smartVaultManager.claimSmartVaultTokens(address(smartVault), nftIds[1], nftAmounts); + + vm.prank(bob); + smartVaultManager.claimSmartVaultTokens(address(smartVault), nftIds[2], nftAmounts); + } +} diff --git a/test/guards/TimelockGuard.t.sol b/test/guards/TimelockGuard.t.sol new file mode 100644 index 00000000..0cc0956c --- /dev/null +++ b/test/guards/TimelockGuard.t.sol @@ -0,0 +1,80 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "forge-std/Test.sol"; +import "../../src/guards/TimelockGuard.sol"; +import "../../src/access/SpoolAccessControl.sol"; + +contract SmartVaultFake {} + +contract TimelockGuardTest is Test { + event UpdatedTimelock(address indexed smartVault, uint256 indexed timelock); + + TimelockGuard private timelockGuard; + address private smartVault1; + address private smartVault2; + + address alice; + address bob; + address charlie; + + function setUp() public { + SpoolAccessControl accessControl = new SpoolAccessControl(); + accessControl.initialize(); + timelockGuard = new TimelockGuard(accessControl); + + alice = address(0xa); + bob = address(0xb); + charlie = address(0xc); + + SmartVaultFake smartVaultFake1 = new SmartVaultFake(); + SmartVaultFake smartVaultFake2 = new SmartVaultFake(); + + smartVault1 = address(smartVaultFake1); + smartVault2 = address(smartVaultFake2); + + accessControl.grantSmartVaultRole(smartVault1, ROLE_SMART_VAULT_ADMIN, alice); + accessControl.grantSmartVaultRole(smartVault2, ROLE_SMART_VAULT_ADMIN, alice); + } + + function test_updateTimelock_shouldUpdateTimelock() public { + vm.startPrank(alice); + timelockGuard.updateTimelock(address(smartVault1), 1 weeks); + timelockGuard.updateTimelock(address(smartVault2), 2 weeks); + vm.stopPrank(); + + assertEq(timelockGuard.timelocks(smartVault1), 1 weeks); + assertEq(timelockGuard.timelocks(smartVault2), 2 weeks); + } + + function test_updateTimelock_shouldRevertWithTimelockisOutOfRange() public { + vm.startPrank(alice); + vm.expectRevert(abi.encodeWithSelector(TimelockOutOfRange.selector, 366 days)); + timelockGuard.updateTimelock(smartVault1, 366 days); + vm.stopPrank(); + } + + function test_addToTimelock_shouldRevertWhenCallerIsNotAllowedToUpdateTimelock() public { + vm.prank(bob); + vm.expectRevert(abi.encodeWithSelector(MissingRole.selector, ROLE_SMART_VAULT_ADMIN, bob)); + timelockGuard.updateTimelock(smartVault1, 1 weeks); + } + + function test_updateTimelock_shouldEmitUpdatedTimelockEvent() public { + vm.expectEmit(true, true, true, false, address(timelockGuard)); + emit UpdatedTimelock(smartVault1, 2 weeks); + + vm.prank(alice); + timelockGuard.updateTimelock(smartVault1, 2 weeks); + } + + function test_updateTimelock_shouldResetTimelock() public { + vm.prank(alice); + timelockGuard.updateTimelock(address(smartVault1), 2 weeks); + assertEq(timelockGuard.timelocks(smartVault1), 2 weeks); + + vm.prank(alice); + timelockGuard.updateTimelock(address(smartVault1), 0); + assertEq(timelockGuard.timelocks(smartVault1), 0); + } +}