0 txs
0 calls
constructor
constructor(address addressesProvider, address uniswapRouter, address wethAddress)
functions
ADDRESSES_PROVIDER
viewfunction ADDRESSES_PROVIDER() view returns (address)
FLASHLOAN_PREMIUM_TOTAL
viewfunction FLASHLOAN_PREMIUM_TOTAL() view returns (uint256)
getAmountsIn
viewfunction getAmountsIn(uint256 amountOut, address reserveIn, address reserveOut) view returns (uint256, uint256, uint256, uint256, address[])
getAmountsOut
viewfunction getAmountsOut(uint256 amountIn, address reserveIn, address reserveOut) view returns (uint256, uint256, uint256, uint256, address[])
LENDING_POOL
viewfunction LENDING_POOL() view returns (address)
MAX_SLIPPAGE_PERCENT
viewfunction MAX_SLIPPAGE_PERCENT() view returns (uint256)
ORACLE
viewfunction ORACLE() view returns (address)
owner
viewfunction owner() view returns (address)
UNISWAP_ROUTER
viewfunction UNISWAP_ROUTER() view returns (address)
USD_ADDRESS
viewfunction USD_ADDRESS() view returns (address)
WETH_ADDRESS
viewfunction WETH_ADDRESS() view returns (address)
executeOperation
nonpayablefunction executeOperation(address[] assets, uint256[] amounts, uint256[] premiums, address initiator, bytes params) returns (bool)
renounceOwnership
nonpayablefunction renounceOwnership()
rescueTokens
nonpayablefunction rescueTokens(address token)
swapAndRepay
nonpayablefunction swapAndRepay(address collateralAsset, address debtAsset, uint256 collateralAmount, uint256 debtRepayAmount, uint256 debtRateMode, tuple permitSignature, bool useEthPath)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Swapped
event Swapped(address fromAsset, address toAsset, uint256 fromAmount, uint256 receivedAmount)
errors
No errors.
creation bytecode
0x6101206040523480156200001257600080fd5b506040516200368d3803806200368d8339810160408190526200003591620001fd565b82828282806001600160a01b03166080816001600160a01b031660601b81525050806001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200009057600080fd5b505afa158015620000a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000cb9190620001d7565b60601b6001600160601b03191660a052506000620000e8620001d3565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350826001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156200016c57600080fd5b505afa15801562000181573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a79190620001d7565b6001600160601b0319606091821b811660e05292811b8316610100521b1660c052506200026992505050565b3390565b600060208284031215620001e9578081fd5b8151620001f68162000250565b9392505050565b60008060006060848603121562000212578182fd5b83516200021f8162000250565b6020850151909350620002328162000250565b6040850151909250620002458162000250565b809150509250925092565b6001600160a01b03811681146200026657600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c61334962000344600039806106015280611299528061138d528061193b5280611bd85280611c7a5280611e66528061228452806123755250806103a2528061252c52508061034f528061117352806111b0528061121a52806118285280611d50528061215e528061219b528061220552508061045f528061057c528061082c52806108ce52806109625280610b975280610c395280610d4f5280610f7a528061100952806116bf5280611a8952508061037352506133496000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c8063920f5c8411610097578063cdf58cd611610066578063cdf58cd6146101c8578063d8264920146101db578063e6813563146101e3578063f2fde38b146101f6576100ff565b8063920f5c84146101745780639d1211bf14610194578063b4dcfc771461019c578063baf7fa99146101a4576100ff565b806332e4b286116100d357806332e4b2861461015457806338013f021461015c578063715018a6146101645780638da5cb5b1461016c576100ff565b8062ae3bf814610104578063040141e5146101195780630542975c14610137578063074b2e431461013f575b600080fd5b610117610112366004612942565b610209565b005b61012161034d565b60405161012e9190612e42565b60405180910390f35b610121610371565b610147610395565b60405161012e91906131d7565b61014761039a565b6101216103a0565b6101176103c4565b610121610443565b610187610182366004612a6c565b610452565b60405161012e9190612f4b565b610121610562565b61012161057a565b6101b76101b2366004612d86565b61059e565b60405161012e959493929190613235565b6101b76101d6366004612d86565b6105e4565b6101216105ff565b6101176101f13660046129e7565b610623565b610117610204366004612942565b6109fe565b610211610ab4565b6000546001600160a01b039081169116146102475760405162461bcd60e51b815260040161023e906130f6565b60405180910390fd5b806001600160a01b031663a9059cbb61025e610443565b6040516370a0823160e01b81526001600160a01b038516906370a082319061028a903090600401612e42565b60206040518083038186803b1580156102a257600080fd5b505afa1580156102b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102da9190612d6e565b6040518363ffffffff1660e01b81526004016102f7929190612ee4565b602060405180830381600087803b15801561031157600080fd5b505af1158015610325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103499190612bfe565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600981565b610bb881565b7f000000000000000000000000000000000000000000000000000000000000000081565b6103cc610ab4565b6000546001600160a01b039081169116146103f95760405162461bcd60e51b815260040161023e906130f6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461049c5760405162461bcd60e51b815260040161023e90612f89565b6104a4612770565b6104e384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ab892505050565b905061055181600001518c8c60008181106104fa57fe5b905060200201602081019061050f9190612942565b8b8b600081811061051c57fe5b90506020020135846020015185604001518a8d8d600081811061053b57fe5b9050602002013588606001518960800151610b5f565b5060019a9950505050505050505050565b7310f7fc1f91ba351f9c629c5947ad69bd03c05b9681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008060606105ae6127ae565b6105b988888b6110af565b8051602082015160408301516060840151608090940151929d919c509a509198509650945050505050565b60008060008060606105f46127ae565b6105b988888b61159c565b7f000000000000000000000000000000000000000000000000000000000000000081565b61062b6127dd565b610634886116a0565b905061063e6127dd565b610647886116a0565b90506000600186600281111561065957fe5b600281111561066457fe5b146106745781610120015161067b565b8161010001515b90506000816001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016106ab9190612e42565b60206040518083038186803b1580156106c357600080fd5b505afa1580156106d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fb9190612d6e565b905060008189111561070d578161070f565b885b90508a6001600160a01b03168c6001600160a01b0316146107ec57898982101561074a576107478a610741838561174b565b9061178c565b90505b60606107588e8e858b6117ce565b9050818160008151811061076857fe5b6020026020010151111561078e5760405162461bcd60e51b815260040161023e9061312b565b6107c38e8860e0015133846000815181106107a557fe5b60200260200101518d8036038101906107be9190612c1a565b6119d0565b6107e48e8e836000815181106107d557fe5b6020026020010151868c611b1c565b505050610808565b6108088c8660e0015133848b8036038101906107be9190612c1a565b60405163095ea7b360e01b81526001600160a01b038c169063095ea7b390610857907f000000000000000000000000000000000000000000000000000000000000000090600090600401612ee4565b602060405180830381600087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a99190612bfe565b5060405163095ea7b360e01b81526001600160a01b038c169063095ea7b3906108f8907f0000000000000000000000000000000000000000000000000000000000000000908590600401612ee4565b602060405180830381600087803b15801561091257600080fd5b505af1158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190612bfe565b5060405163573ade8160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063573ade819061099d908e9085908d903390600401612f20565b602060405180830381600087803b1580156109b757600080fd5b505af11580156109cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ef9190612d6e565b50505050505050505050505050565b610a06610ab4565b6000546001600160a01b03908116911614610a335760405162461bcd60e51b815260040161023e906130f6565b6001600160a01b038116610a595760405162461bcd60e51b815260040161023e90612fc0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b610ac0612770565b60008060008060008060008060008a806020019051810190610ae2919061295e565b9850985098509850985098509850985098506040518060a001604052808a6001600160a01b031681526020018981526020018881526020016040518060a001604052808981526020018881526020018760ff1681526020018681526020018581525081526020018215158152509950505050505050505050919050565b610b676127dd565b610b708a6116a0565b60405163095ea7b360e01b81529091506001600160a01b038a169063095ea7b390610bc2907f000000000000000000000000000000000000000000000000000000000000000090600090600401612ee4565b602060405180830381600087803b158015610bdc57600080fd5b505af1158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c149190612bfe565b5060405163095ea7b360e01b81526001600160a01b038a169063095ea7b390610c63907f0000000000000000000000000000000000000000000000000000000000000000908c90600401612ee4565b602060405180830381600087803b158015610c7d57600080fd5b505af1158015610c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb59190612bfe565b506040516370a0823160e01b81526000906001600160a01b038b16906370a0823190610ce5903090600401612e42565b60206040518083038186803b158015610cfd57600080fd5b505afa158015610d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d359190612d6e565b60405163573ade8160e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063573ade8190610d8a908d908d908c908c90600401612f20565b602060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc9190612d6e565b506040516370a0823160e01b8152610e64906001600160a01b038c16906370a0823190610e0d903090600401612e42565b60206040518083038186803b158015610e2557600080fd5b505afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190612d6e565b8290611f8a565b9050896001600160a01b03168b6001600160a01b031614610f3a578789821015610e9957610e968a610741838561174b565b90505b6000610ea58388611fcc565b90506060610eb58e8e84896117ce565b90508281600081518110610ec557fe5b60200260200101511115610eeb5760405162461bcd60e51b815260040161023e9061312b565b610f108e8660e001518b84600081518110610f0257fe5b60200260200101518b6119d0565b610f318e8e83600081518110610f2257fe5b6020026020010151858a611b1c565b50505050610f56565b60e0820151610f56908c9088610f50858a611fcc565b886119d0565b60405163095ea7b360e01b81526001600160a01b038b169063095ea7b390610fa5907f000000000000000000000000000000000000000000000000000000000000000090600090600401612ee4565b602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff79190612bfe565b506001600160a01b038a1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006110328c89611fcc565b6040518363ffffffff1660e01b815260040161104f929190612ee4565b602060405180830381600087803b15801561106957600080fd5b505af115801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a19190612bfe565b505050505050505050505050565b6110b76127ae565b60006110d46110cd61271061074186600961174b565b8490611f8a565b604080516002808252606080830184529394509091602083019080368337019050509050858160008151811061110657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050848160018151811061113457fe5b6001600160a01b0392909216602092830291909101820152604080516003808252608082019092526060928392839291820183803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b0316141580156111e557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614155b156113515788816000815181106111f857fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061124657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050878160028151811061127457fe5b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063d06ca61f906112d290889085906004016131e0565b60006040518083038186803b1580156112ea57600080fd5b505afa92505050801561131f57506040513d6000823e601f3d908101601f1916820160405261131c9190810190612b69565b60015b6113495760408051600380825260808201909252906020820160608036833701905050915061134c565b91505b611373565b6040805160038082526080820190925290602082016060803683370190505091505b60405163d06ca61f60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d06ca61f906113c490899089906004016131e0565b60006040518083038186803b1580156113dc57600080fd5b505afa92505050801561141157506040513d6000823e601f3d908101601f1916820160405261140e9190810190612b69565b60015b6114515760408051600280825260608201835290916020830190803683370190505093508260028151811061144257fe5b602002602001015190506114b7565b8094508460018151811061146157fe5b60200260200101518460028151811061147657fe5b60200260200101511161149d578460018151811061149057fe5b60200260200101516114b3565b836002815181106114aa57fe5b60200260200101515b9150505b60006114c28b611ff1565b905060006114cf8b611ff1565b905060006115046114e485600a86900a61174b565b610741600a85900a6114fe8d670de0b6b3a764000061174b565b9061174b565b90506040518060a001604052808581526020018281526020016115288f8e8761206d565b81526020016115388e878661206d565b8152602001851561156b578860018151811061155057fe5b602002602001015186146115645786611566565b895b611589565b60408051600280825260608201835290916020830190803683375050505b90529d9c50505050505050505050505050565b6115a46127ae565b6060806115b28686866120bc565b91509150600061160c6115e96127106107416009876000815181106115d357fe5b602002602001015161174b90919063ffffffff16565b846000815181106115f657fe5b6020026020010151611fcc90919063ffffffff16565b9050600061161988611ff1565b9050600061162688611ff1565b9050600061165561163b85600a85900a61174b565b610741600a86900a6114fe8c670de0b6b3a764000061174b565b90506040518060a001604052808581526020018281526020016116798c878761206d565b81526020016116898b8b8661206d565b815260200195909552509298975050505050505050565b6116a86127dd565b6040516335ea6a7560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906116f4908590600401612e42565b6101806040518083038186803b15801561170d57600080fd5b505afa158015611721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117459190612c73565b92915050565b60008261175a57506000611745565b8282028284828161176757fe5b04146117855760405162461bcd60e51b815260040161023e906130b5565b9392505050565b600061178583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612458565b60608082156118a757604080516003808252608082019092529060208201606080368337019050509050858160008151811061180657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061185457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050848160028151811061188257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050611924565b604080516002808252606082018352909160208301908036833701905050905085816000815181106118d557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050848160018151811061190357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b6040516307c0329d60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631f00ca749061197290879085906004016131e0565b60006040518083038186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119c69190810190612b69565b9695505050505050565b6119d98161248f565b15611a5d57836001600160a01b031663d505accf8430846000015185602001518660400151876060015188608001516040518863ffffffff1660e01b8152600401611a2a9796959493929190612ea3565b600060405180830381600087803b158015611a4457600080fd5b505af1158015611a58573d6000803e3d6000fd5b505050505b611a726001600160a01b0385168430856124b4565b604051631a4ca37b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906369328dec90611ac290889086903090600401612efd565b602060405180830381600087803b158015611adc57600080fd5b505af1158015611af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b149190612d6e565b505050505050565b600080611b2887611ff1565b90506000611b3587611ff1565b90506000611b4289612512565b90506000611b4f89612512565b90506000611b93611b64612710610bb8611fcc565b611b8d611b7586600a89900a61174b565b610741611b8687600a8c900a61174b565b8d9061174b565b906125b1565b9050808910611bb45760405162461bcd60e51b815260040161023e90613072565b60405163095ea7b360e01b81526001600160a01b038c169063095ea7b390611c03907f000000000000000000000000000000000000000000000000000000000000000090600090600401612ee4565b602060405180830381600087803b158015611c1d57600080fd5b505af1158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c559190612bfe565b5060405163095ea7b360e01b81526001600160a01b038c169063095ea7b390611ca4907f0000000000000000000000000000000000000000000000000000000000000000908d90600401612ee4565b602060405180830381600087803b158015611cbe57600080fd5b505af1158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf69190612bfe565b5060608715611dcf576040805160038082526080820190925290602082016060803683370190505090508b81600081518110611d2e57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611d7c57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508a81600281518110611daa57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050611e4c565b60408051600280825260608201835290916020830190803683370190505090508b81600081518110611dfd57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508a81600181518110611e2b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b604051634401edf760e11b81526060906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638803dbee90611ea3908d908f908790309042906004016131f9565b600060405180830381600087803b158015611ebd57600080fd5b505af1158015611ed1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ef99190810190612b69565b90507fa078c4190abe07940190effc1846be0ccf03ad6007bc9e93f9697d0b460befbb8d8d83600081518110611f2b57fe5b602002602001015184600186510381518110611f4357fe5b6020026020010151604051611f5b9493929190612e7a565b60405180910390a180600081518110611f7057fe5b602002602001015197505050505050505095945050505050565b600061178583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612623565b6000828201838110156117855760405162461bcd60e51b815260040161023e90613006565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561202c57600080fd5b505afa158015612040573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120649190612dc7565b60ff1692915050565b60008061208d7310f7fc1f91ba351f9c629c5947ad69bd03c05b96612512565b9050600061209a86612512565b90506119c6670de0b6b3a7640000610741846114fe600a89900a838b8861174b565b60408051600280825260608281019093528291829181602001602082028036833701905050905085816000815181106120f157fe5b60200260200101906001600160a01b031690816001600160a01b031681525050848160018151811061211f57fe5b6001600160a01b0392909216602092830291909101820152604080516003808252608082019092526060928392839291820183803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b0316141580156121d057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614155b1561233c5788816000815181106121e357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061223157fe5b60200260200101906001600160a01b031690816001600160a01b031681525050878160028151811061225f57fe5b6001600160a01b0392831660209182029290920101526040516307c0329d60e21b81527f000000000000000000000000000000000000000000000000000000000000000090911690631f00ca74906122bd908a9085906004016131e0565b60006040518083038186803b1580156122d557600080fd5b505afa92505050801561230a57506040513d6000823e601f3d908101601f191682016040526123079190810190612b69565b60015b61233457604080516003808252608082019092529060208201606080368337019050509150612337565b91505b61235e565b6040805160038082526080820190925290602082016060803683370190505091505b6040516307c0329d60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631f00ca74906123ac908a9088906004016131e0565b60006040518083038186803b1580156123c457600080fd5b505afa9250505080156123f957506040513d6000823e601f3d908101601f191682016040526123f69190810190612b69565b60015b61240a579094509250612450915050565b8093508360018151811061241a57fe5b60200260200101518360028151811061242f57fe5b602002602001015111612443578385612446565b82825b9650965050505050505b935093915050565b600081836124795760405162461bcd60e51b815260040161023e9190612f56565b50600083858161248557fe5b0495945050505050565b6000816040015160ff1682602001511480156124ad57506020820151155b1592915050565b61250c846323b872dd60e01b8585856040516024016124d593929190612e56565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261264f565b50505050565b60405163b3596f0760e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b3596f0790612561908590600401612e42565b60206040518083038186803b15801561257957600080fd5b505afa15801561258d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117459190612d6e565b60008215806125be575081155b156125cb57506000611745565b8161138819816125d757fe5b0483111560405180604001604052806002815260200161068760f31b815250906126145760405162461bcd60e51b815260040161023e9190612f56565b50506127109102611388010490565b600081848411156126475760405162461bcd60e51b815260040161023e9190612f56565b505050900390565b612661826001600160a01b0316612734565b61267d5760405162461bcd60e51b815260040161023e906131a0565b60006060836001600160a01b0316836040516126999190612e26565b6000604051808303816000865af19150503d80600081146126d6576040519150601f19603f3d011682016040523d82523d6000602084013e6126db565b606091505b5091509150816126fd5760405162461bcd60e51b815260040161023e9061303d565b80511561250c57808060200190518101906127189190612bfe565b61250c5760405162461bcd60e51b815260040161023e90613156565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061276857508115155b949350505050565b6040518060a0016040528060006001600160a01b0316815260200160008152602001600081526020016127a1612848565b8152600060209091015290565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001606081525090565b6040518061018001604052806127f1612876565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820181905261014082018190526101609091015290565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060200160405280600081525090565b8051611745816132de565b60008083601f8401126128a5578182fd5b50813567ffffffffffffffff8111156128bc578182fd5b60208301915083602080830285010111156128d657600080fd5b9250929050565b6000602082840312156128ee578081fd5b6128f8602061326b565b9151825250919050565b80516fffffffffffffffffffffffffffffffff8116811461174557600080fd5b805164ffffffffff8116811461174557600080fd5b805161174581613304565b600060208284031215612953578081fd5b8135611785816132de565b60008060008060008060008060006101208a8c03121561297c578485fd5b8951612987816132de565b8099505060208a0151975060408a0151965060608a0151955060808a0151945060a08a01516129b581613304565b8094505060c08a0151925060e08a015191506101008a01516129d6816132f6565b809150509295985092959850929598565b6000806000806000806000878903610160811215612a03578182fd5b8835612a0e816132de565b97506020890135612a1e816132de565b965060408901359550606089013594506080890135935060a0609f1982011215612a46578182fd5b5060a088019150610140880135612a5c816132f6565b8091505092959891949750929550565b600080600080600080600080600060a08a8c031215612a89578283fd5b893567ffffffffffffffff80821115612aa0578485fd5b612aac8d838e01612894565b909b50995060208c0135915080821115612ac4578485fd5b612ad08d838e01612894565b909950975060408c0135915080821115612ae8578485fd5b612af48d838e01612894565b909750955060608c01359150612b09826132de565b90935060808b01359080821115612b1e578384fd5b818c0191508c601f830112612b31578384fd5b813581811115612b3f578485fd5b8d6020828501011115612b50578485fd5b6020830194508093505050509295985092959850929598565b60006020808385031215612b7b578182fd5b825167ffffffffffffffff811115612b91578283fd5b8301601f81018513612ba1578283fd5b8051612bb4612baf82613292565b61326b565b8181528381019083850185840285018601891015612bd0578687fd5b8694505b83851015612bf2578051835260019490940193918501918501612bd4565b50979650505050505050565b600060208284031215612c0f578081fd5b8151611785816132f6565b600060a08284031215612c2b578081fd5b612c3560a061326b565b82358152602083013560208201526040830135612c5181613304565b6040820152606083810135908201526080928301359281019290925250919050565b6000610180808385031215612c86578182fd5b612c8f8161326b565b9050612c9b84846128dd565b8152612caa8460208501612902565b6020820152612cbc8460408501612902565b6040820152612cce8460608501612902565b6060820152612ce08460808501612902565b6080820152612cf28460a08501612902565b60a0820152612d048460c08501612922565b60c0820152612d168460e08501612889565b60e0820152610100612d2a85828601612889565b90820152610120612d3d85858301612889565b90820152610140612d5085858301612889565b90820152610160612d6385858301612937565b908201529392505050565b600060208284031215612d7f578081fd5b5051919050565b600080600060608486031215612d9a578081fd5b833592506020840135612dac816132de565b91506040840135612dbc816132de565b809150509250925092565b600060208284031215612dd8578081fd5b815161178581613304565b6000815180845260208085019450808401835b83811015612e1b5781516001600160a01b031687529582019590820190600101612df6565b509495945050505050565b60008251612e388184602087016132b2565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6001600160a01b03948516815260208101939093526040830191909152909116606082015260800190565b901515815260200190565b6000602082528251806020840152612f758160408501602087016132b2565b601f01601f19169190910160400192915050565b6020808252601b908201527f43414c4c45525f4d5553545f42455f4c454e44494e475f504f4f4c0000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b60208082526023908201527f6d6178416d6f756e74546f5377617020657863656564206d617820736c69707060408201526261676560e81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601190820152700e6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b6000838252604060208301526127686040830184612de3565b600086825285602083015260a0604083015261321860a0830186612de3565b6001600160a01b0394909416606083015250608001529392505050565b600086825285602083015284604083015283606083015260a0608083015261326060a0830184612de3565b979650505050505050565b60405181810167ffffffffffffffff8111828210171561328a57600080fd5b604052919050565b600067ffffffffffffffff8211156132a8578081fd5b5060209081020190565b60005b838110156132cd5781810151838201526020016132b5565b8381111561250c5750506000910152565b6001600160a01b03811681146132f357600080fd5b50565b80151581146132f357600080fd5b60ff811681146132f357600080fdfea2646970667358221220d77a6caa7ad45fa6a9e34ef69b0b7cccb46deee35151e9b6d04c61ab67512a5664736f6c634300060c0033000000000000000000000000b53c1a33016b2dc2ff3653530bff1848a515c8c50000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2