0 txs
0 calls
constructor
constructor()
functions
ADDRESSES_PROVIDER
viewfunction ADDRESSES_PROVIDER() view returns (address)
calculateCost
viewfunction calculateCost(uint96 vault, address asset) view returns (uint256 amount)
CONTROLLER
viewfunction CONTROLLER() view returns (address)
FACTORY_V2
viewfunction FACTORY_V2() view returns (address)
FACTORY_V3
viewfunction FACTORY_V3() view returns (address)
LENDING_POOL
viewfunction LENDING_POOL() view returns (address)
oracle
viewfunction oracle() view returns (address)
ROUTERV3
viewfunction ROUTERV3() view returns (address)
USDC
viewfunction USDC() view returns (address)
USDI
viewfunction USDI() view returns (address)
VAULT
viewfunction VAULT() view returns (address)
VVC
viewfunction VVC() view returns (address)
WETH
viewfunction WETH() view returns (address)
aaveFlashLiquidate
nonpayablefunction aaveFlashLiquidate(tuple params)
balancerFlashLiquidate
nonpayablefunction balancerFlashLiquidate(tuple params)
executeOperation
nonpayablefunction executeOperation(address[], uint256[] amounts, uint256[] premiums, address, bytes params) returns (bool)
receiveFlashLoan
nonpayablefunction receiveFlashLoan(address[], uint256[] amounts, uint256[] feeAmounts, bytes userData)
setOracle
nonpayablefunction setOracle()
uniswapV2Call
nonpayablefunction uniswapV2Call(address sender, uint256, uint256, bytes data)
uniswapV3FlashCallback
nonpayablefunction uniswapV3FlashCallback(uint256, uint256 fee1, bytes data)
uniV2FlashLiquidate
nonpayablefunction uniV2FlashLiquidate(address tokenBorrow, tuple params)
uniV3FlashLiquidate
nonpayablefunction uniV3FlashLiquidate(tuple params)
events
FlashLiquidate
event FlashLiquidate(string method, address tokenBorrow, uint96 vault, address assetLiquidated, uint256 amountBorrow, uint256 amountRepaid)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b5073b53c1a33016b2dc2ff3653530bff1848a515c8c5608081905260408051630261bf8b60e01b815290518291630261bf8b916004808301926020929190829003018186803b1580156200006457600080fd5b505afa15801562000079573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009f919062000167565b6001600160a01b031660a05250620000b6620000bc565b62000199565b734aae9823fb4c70490f1d802fc697f3fff8d5cbe36001600160a01b031663648d0d336040518163ffffffff1660e01b815260040160206040518083038186803b1580156200010a57600080fd5b505afa1580156200011f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000145919062000167565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156200017a57600080fd5b81516001600160a01b03811681146200019257600080fd5b9392505050565b60805160a051613dd5620001cd6000396000818161031c015281816119df0152611fa30152600061014c0152613dd56000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80636a694ee2116100b85780639a07a7e91161007c5780639a07a7e9146102e7578063ad5c4648146102fc578063b4dcfc7714610317578063e9cbafb01461033e578063ee0fc12114610351578063f04f27071461036c57600080fd5b80636a694ee2146102765780637dc0d1d01461028957806389a302711461029c578063920f5c84146102b157806397413487146102d457600080fd5b80634d2eaf701161010a5780634d2eaf70146101ef578063523b2a3c1461020a5780635b89c489146102255780635e3caf691461022d578063618bdcda1461024857806367e2fe121461026357600080fd5b80630542975c1461014757806310d1e85c1461018b57806327557c5d146101a0578063411557d1146101b357806345c57b8d146101ce575b600080fd5b61016e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61019e6101993660046131eb565b61037f565b005b61019e6101ae366004613372565b610a94565b61016e73ba12222222228d8ba445958a75a0704d566bf2c881565b6101e16101dc3660046133b1565b610eb8565b604051908152602001610182565b61016e735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b61016e73ae49ddca05fe891c6a5492ed52d739ec1328cbe281565b61019e6110ba565b61016e73e592427a0aece92de3edee1f18e0157c0586156481565b61016e731f98431c8ad98523631ae4a59f267346ea31f98481565b61019e6102713660046133e8565b611161565b61019e610284366004613372565b6118ed565b60005461016e906001600160a01b031681565b61016e600080516020613d8083398151915281565b6102c46102bf366004613463565b611d68565b6040519015158152602001610182565b61019e6102e2366004613372565b612032565b61016e600080516020613d4083398151915281565b61016e73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b61016e7f000000000000000000000000000000000000000000000000000000000000000081565b61019e61034c36600461353e565b6122dc565b61016e734aae9823fb4c70490f1d802fc697f3fff8d5cbe381565b61019e61037a366004613690565b612593565b6000336001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ba57600080fd5b505afa1580156103ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f2919061379b565b90506000336001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561042f57600080fd5b505afa158015610443573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610467919061379b565b60405163e6a4390560e01b81526001600160a01b03808516600483015282166024820152909150600090735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9063e6a439059060440160206040518083038186803b1580156104c857600080fd5b505afa1580156104dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610500919061379b565b9050336001600160a01b038216146105475760405162461bcd60e51b815260206004820152600560248201526410b830b4b960d91b60448201526064015b60405180910390fd5b6001600160a01b03881630146105895760405162461bcd60e51b815260206004820152600760248201526610b9b2b73232b960c91b604482015260640161053e565b60008080808061059b898b018b6137b8565b9450945094509450945060006103e58560036105b79190613834565b6105c19190613853565b6105cc906001613875565b905060006105da8287613875565b90506001600160a01b038716600080516020613d4083398151915214156107575761060585856127fb565b6040516370a0823160e01b81523060048201526106899085906001600160a01b038216906370a08231906024015b60206040518083038186803b15801561064b57600080fd5b505afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610683919061388d565b85612970565b610691612a8f565b6040516370a0823160e01b81523060048201528190600080516020613d40833981519152906370a08231906024015b60206040518083038186803b1580156106d857600080fd5b505afa1580156106ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610710919061388d565b116107525760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e7420726570617960701b604482015260640161053e565b61098f565b6001600160a01b038716600080516020613d8083398151915214156109525761077e612a8f565b61078885856127fb565b6040516370a0823160e01b81523060048201526107ba9085906001600160a01b038216906370a0823190602401610633565b6040516370a0823160e01b8152306004820152600080516020613d408339815191529063095ea7b3908290600080516020613d80833981519152906370a082319060240160206040518083038186803b15801561081657600080fd5b505afa15801561082a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084e919061388d565b6040518363ffffffff1660e01b815260040161086b9291906138a6565b602060405180830381600087803b15801561088557600080fd5b505af1158015610899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bd91906138bf565b50600080516020613d408339815191526001600160a01b031663853828b66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152839250600080516020613d8083398151915291506370a08231906024016106c0565b60405162461bcd60e51b8152602060048201526012602482015271556e737570706f7274656420626f72726f7760701b604482015260640161053e565b6040805160c0808252600d908201526c1d5b9a5cddd85c158c90d85b1b609a1b60e08201526001600160a01b038c811660208301526001600160601b03881682840152861660608201526080810188905260a081018390529051600080516020613d60833981519152918190036101000190a160405163a9059cbb60e01b81526001600160a01b0388169063a9059cbb90610a30908b9085906004016138a6565b602060405180830381600087803b158015610a4a57600080fd5b505af1158015610a5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8291906138bf565b50505050505050505050505050505050565b60005a6040805160018082528183019092529192506000919060208083019080368337019050509050600080516020613d8083398151915281600081518110610adf57610adf6138dc565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020016020820280368337019050509050836000015181600081518110610b3457610b346138dc565b60200260200101818152505073ba12222222228d8ba445958a75a0704d566bf2c86001600160a01b0316635c38449e30848460405180606001604052808a602001516001600160501b03166001600160581b031681526020018a604001516001600160a01b031681526020018a608001511515815250604051602001610bba91906138f2565b6040516020818303038152906040526040518563ffffffff1660e01b8152600401610be894939291906139af565b600060405180830381600087803b158015610c0257600080fd5b505af1158015610c16573d6000803e3d6000fd5b50505050836060015115610dbb576040516370a0823160e01b8152306004820152600090600080516020613d80833981519152906370a082319060240160206040518083038186803b158015610c6b57600080fd5b505afa158015610c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca3919061388d565b610cb29064e8d4a51000613834565b6040516370a0823160e01b8152306004820152909150600080516020613d808339815191529063a9059cbb90339083906370a082319060240160206040518083038186803b158015610d0357600080fd5b505afa158015610d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3b919061388d565b6040518363ffffffff1660e01b8152600401610d589291906138a6565b602060405180830381600087803b158015610d7257600080fd5b505af1158015610d86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daa91906138bf565b50610db58482612c00565b50610eb2565b6040516370a0823160e01b8152306004820152600080516020613d808339815191529063a9059cbb90339083906370a082319060240160206040518083038186803b158015610e0957600080fd5b505afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e41919061388d565b6040518363ffffffff1660e01b8152600401610e5e9291906138a6565b602060405180830381600087803b158015610e7857600080fd5b505af1158015610e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb091906138bf565b505b50505050565b60405162f0ddd560e31b81526001600160601b03831660048201526001600160a01b03821660248201526000908190734aae9823fb4c70490f1d802fc697f3fff8d5cbe390630786eea89060440160206040518083038186803b158015610f1e57600080fd5b505afa158015610f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f56919061388d565b6040516302ac41e160e41b81526001600160a01b038516600482015290915060009061108990734aae9823fb4c70490f1d802fc697f3fff8d5cbe390632ac41e109060240160206040518083038186803b158015610fb357600080fd5b505afa158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb919061388d565b610ffd90670de0b6b3a7640000613a33565b600054604051634295aec160e11b81526001600160a01b0388811660048301529091169063852b5d829060240160206040518083038186803b15801561104257600080fd5b505afa158015611056573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107a919061388d565b6110849190613834565b612d13565b905064e8d4a510006110a78361107a84670de0b6b3a7640000613875565b6110b19190613853565b95945050505050565b734aae9823fb4c70490f1d802fc697f3fff8d5cbe36001600160a01b031663648d0d336040518163ffffffff1660e01b815260040160206040518083038186803b15801561110757600080fd5b505afa15801561111b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113f919061379b565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60005a604083810151905163e6a4390560e01b81526001600160a01b0380871660048301529091166024820152909150600090735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9063e6a439059060440160206040518083038186803b1580156111cb57600080fd5b505afa1580156111df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611203919061379b565b90506001600160a01b03811661124a5760405162461bcd60e51b815260206004820152600c60248201526b34b73b30b634b2103830b4b960a11b604482015260640161053e565b6000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561128557600080fd5b505afa158015611299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bd919061379b565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156112fa57600080fd5b505afa15801561130e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611332919061379b565b90506000826001600160a01b0316876001600160a01b031614611356576000611359565b85515b90506000826001600160a01b0316886001600160a01b03161461137d576000611380565b86515b9050600088886000015189602001518a604001518b608001516040516020016113e49594939291906001600160a01b03958616815260208101949094526001600160501b039290921660408401529092166060820152901515608082015260a00190565b60408051601f198184030181529082905263022c0d9f60e01b825291506001600160a01b0387169063022c0d9f90611426908690869030908790600401613a4a565b600060405180830381600087803b15801561144057600080fd5b505af1158015611454573d6000803e3d6000fd5b505050506001600160a01b038916600080516020613d40833981519152141561168e57876060015115611599576040516370a0823160e01b8152306004820152600090600080516020613d40833981519152906370a082319060240160206040518083038186803b1580156114c857600080fd5b505afa1580156114dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611500919061388d565b60405163a9059cbb60e01b8152909150600080516020613d408339815191529063a9059cbb9061153690339085906004016138a6565b602060405180830381600087803b15801561155057600080fd5b505af1158015611564573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158891906138bf565b506115938882612c00565b506118e2565b6040516370a0823160e01b8152306004820152600080516020613d408339815191529063a9059cbb90339083906370a082319060240160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161f919061388d565b6040518363ffffffff1660e01b815260040161163c9291906138a6565b602060405180830381600087803b15801561165657600080fd5b505af115801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159391906138bf565b6001600160a01b038916600080516020613d8083398151915214156118e2578760600151156117eb576040516370a0823160e01b8152306004820152600090600080516020613d80833981519152906370a082319060240160206040518083038186803b1580156116fe57600080fd5b505afa158015611712573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611736919061388d565b6117459064e8d4a51000613834565b6040516370a0823160e01b8152306004820152909150600080516020613d808339815191529063a9059cbb90339083906370a082319060240160206040518083038186803b15801561179657600080fd5b505afa1580156117aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ce919061388d565b6040518363ffffffff1660e01b81526004016115369291906138a6565b6040516370a0823160e01b8152306004820152600080516020613d808339815191529063a9059cbb90339083906370a082319060240160206040518083038186803b15801561183957600080fd5b505afa15801561184d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611871919061388d565b6040518363ffffffff1660e01b815260040161188e9291906138a6565b602060405180830381600087803b1580156118a857600080fd5b505af11580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e091906138bf565b505b505050505050505050565b60005a6040805160018082528183019092529192506000919060208083019080368337019050509050600080516020613d8083398151915281600081518110611938576119386138dc565b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083600001518160008151811061198d5761198d6138dc565b60209081029190910101526040805160018082528183019092526000918160200160208202803683370190505090506000816000815181106119d1576119d16138dc565b6020026020010181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ab9c4b5d308585853060405180606001604052808d602001516001600160501b03166001600160581b031681526020018d604001516001600160a01b031681526020018d608001511515815250604051602001611a6591906138f2565b60405160208183030381529060405260006040518863ffffffff1660e01b8152600401611a989796959493929190613a81565b600060405180830381600087803b158015611ab257600080fd5b505af1158015611ac6573d6000803e3d6000fd5b50505050846060015115611c6b576040516370a0823160e01b8152306004820152600090600080516020613d80833981519152906370a082319060240160206040518083038186803b158015611b1b57600080fd5b505afa158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b53919061388d565b611b629064e8d4a51000613834565b6040516370a0823160e01b8152306004820152909150600080516020613d808339815191529063a9059cbb90339083906370a082319060240160206040518083038186803b158015611bb357600080fd5b505afa158015611bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611beb919061388d565b6040518363ffffffff1660e01b8152600401611c089291906138a6565b602060405180830381600087803b158015611c2257600080fd5b505af1158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a91906138bf565b50611c658582612c00565b50610eb0565b6040516370a0823160e01b8152306004820152600080516020613d808339815191529063a9059cbb90339083906370a082319060240160206040518083038186803b158015611cb957600080fd5b505afa158015611ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf1919061388d565b6040518363ffffffff1660e01b8152600401611d0e9291906138a6565b602060405180830381600087803b158015611d2857600080fd5b505af1158015611d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6091906138bf565b505050505050565b600080611d7783850185613b52565b9050611d81612a8f565b611d9c81600001516001600160581b031682602001516127fb565b60208101516040516370a0823160e01b8152306004820152611e2891906001600160a01b038216906370a08231906024015b60206040518083038186803b158015611de657600080fd5b505afa158015611dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1e919061388d565b8360400151612970565b600080516020613d408339815191526001600160a01b031663853828b66040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e7157600080fd5b505af1158015611e85573d6000803e3d6000fd5b50505050600087876000818110611e9e57611e9e6138dc565b905060200201358a8a6000818110611eb857611eb86138dc565b90506020020135611ec99190613875565b9050600080516020613d60833981519152600080516020613d80833981519152836000015184602001518d8d6000818110611f0657611f066138dc565b6040805160c08082526010908201526f32bc32b1baba32a7b832b930ba34b7b760811b60e08201526001600160a01b039788166020828101919091526001600160581b03909716918101919091529590931660608601525091020135608082015260a081018390526101000160405180910390a160405163095ea7b360e01b8152600080516020613d808339815191529063095ea7b390611fcd907f00000000000000000000000000000000000000000000000000000000000000009085906004016138a6565b602060405180830381600087803b158015611fe757600080fd5b505af1158015611ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201f91906138bf565b5060019c9b505050505050505050505050565b60005a82516040805160808082018352865182526020808801516001600160501b031681840152838801516001600160a01b03168385015290870151151560608301529151939450735777d92f208679db4b9778590fa3cab3ac9e216893849363490e6cbc9330936000936120e19201815181526020808301516001600160581b0316908201526040808301516001600160a01b03169082015260609182015115159181019190915260800190565b6040516020818303038152906040526040518563ffffffff1660e01b815260040161210f9493929190613ba6565b600060405180830381600087803b15801561212957600080fd5b505af115801561213d573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015260009250600080516020613d8083398151915291506370a082319060240160206040518083038186803b15801561218857600080fd5b505afa15801561219c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c0919061388d565b6121cf9064e8d4a51000613834565b6040516370a0823160e01b8152306004820152909150600080516020613d808339815191529063a9059cbb90339083906370a082319060240160206040518083038186803b15801561222057600080fd5b505afa158015612234573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612258919061388d565b6040518363ffffffff1660e01b81526004016122759291906138a6565b602060405180830381600087803b15801561228f57600080fd5b505af11580156122a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c791906138bf565b50836060015115610eb257610eb28382612c00565b60006122ea82840184613bd3565b60408051606081018252736b175474e89094c44da98b954eedeac495271d0f8152600080516020613d80833981519152602082015260649181019190915290915061234a90731f98431c8ad98523631ae4a59f267346ea31f98490612d2d565b50612353612a8f565b61236e81602001516001600160581b031682604001516127fb565b60408181015190516370a0823160e01b81523060048201526123f991906001600160a01b038216906370a082319060240160206040518083038186803b1580156123b757600080fd5b505afa1580156123cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ef919061388d565b8360600151612970565b600080516020613d408339815191526001600160a01b031663853828b66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561244257600080fd5b505af1158015612456573d6000803e3d6000fd5b505082516000925061246a91508690613875565b6020808401516040808601518651825160c080825260169082015275756e69737761705633466c61736843616c6c6261636b60501b60e0820152600080516020613d80833981519152958101959095526001600160581b03909316918401919091526001600160a01b03166060830152608082015260a08101829052909150600080516020613d60833981519152906101000160405180910390a160405163a9059cbb60e01b8152600080516020613d808339815191529063a9059cbb9061253890339085906004016138a6565b602060405180830381600087803b15801561255257600080fd5b505af1158015612566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258a91906138bf565b50505050505050565b3373ba12222222228d8ba445958a75a0704d566bf2c8146125ec5760405162461bcd60e51b81526020600482015260136024820152721b5cd9cb9cd95b99195c88084f481d985d5b1d606a1b604482015260640161053e565b6000818060200190518101906126029190613c4f565b905061260c612a8f565b61262781600001516001600160581b031682602001516127fb565b60208101516040516370a0823160e01b815230600482015261265d91906001600160a01b038216906370a0823190602401611dce565b600080516020613d408339815191526001600160a01b031663853828b66040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156126a657600080fd5b505af11580156126ba573d6000803e3d6000fd5b505050506000836000815181106126d3576126d36138dc565b6020026020010151856000815181106126ee576126ee6138dc565b60200260200101516127009190613875565b9050600080516020613d60833981519152600080516020613d80833981519152836000015184602001518860008151811061273d5761273d6138dc565b6020908102919091018101516040805160c08082526010908201526f3932b1b2b4bb32a33630b9b42637b0b760811b60e08201526001600160a01b03968716938101939093526001600160581b039094169382019390935292166060830152608082015260a081018390526101000160405180910390a160405163a9059cbb60e01b8152600080516020613d808339815191529063a9059cbb906125389073ba12222222228d8ba445958a75a0704d566bf2c89085906004016138a6565b60405163997d7b3d60e01b81526001600160601b0383166004820152734aae9823fb4c70490f1d802fc697f3fff8d5cbe39063997d7b3d9060240160206040518083038186803b15801561284e57600080fd5b505afa158015612862573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288691906138bf565b156128c65760405162461bcd60e51b815260206004820152601060248201526f15985d5b1d081a5cc81cdbdb1d995b9d60821b604482015260640161053e565b60405163141c422b60e11b81526001600160601b03831660048201526001600160a01b03821660248201526000196044820152734aae9823fb4c70490f1d802fc697f3fff8d5cbe3906328388456906064015b602060405180830381600087803b15801561293357600080fd5b505af1158015612947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296b919061388d565b505050565b8015612a85576040516367e43aef60e01b81526001600160a01b038416600482015261296b90849073ae49ddca05fe891c6a5492ed52d739ec1328cbe2906367e43aef9060240160206040518083038186803b1580156129cf57600080fd5b505afa1580156129e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a07919061379b565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b158015612a4857600080fd5b505afa158015612a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a80919061388d565b612d50565b61296b8383612f6a565b6040516370a0823160e01b8152306004820152600090600080516020613d80833981519152906370a082319060240160206040518083038186803b158015612ad657600080fd5b505afa158015612aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0e919061388d565b60405163095ea7b360e01b8152909150600080516020613d808339815191529063095ea7b390612b5290600080516020613d408339815191529085906004016138a6565b602060405180830381600087803b158015612b6c57600080fd5b505af1158015612b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba491906138bf565b5060405163b6b55f2560e01b815260048101829052600080516020613d408339815191529063b6b55f2590602401600060405180830381600087803b158015612bec57600080fd5b505af1158015610eb0573d6000803e3d6000fd5b6000670de0b6b3a76400003a5a612c179086613a33565b600054604051634295aec160e11b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201526001600160a01b039091169063852b5d829060240160206040518083038186803b158015612c6e57600080fd5b505afa158015612c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca6919061388d565b612cb09190613834565b612cba9190613834565b612cc49190613853565b90506000612cd28284613c97565b1361296b5760405162461bcd60e51b815260206004820152601160248201527008ec2e640c6dee6e840e8dede40d0d2ced607b1b604482015260640161053e565b6000612d27670de0b6b3a764000083613853565b92915050565b6000612d3983836130a1565b9050336001600160a01b03821614612d2757600080fd5b6040516367e43aef60e01b81526001600160a01b038316600482015260009073ae49ddca05fe891c6a5492ed52d739ec1328cbe2906367e43aef9060240160206040518083038186803b158015612da657600080fd5b505afa158015612dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dde919061379b565b60405163095ea7b360e01b81529091506001600160a01b0382169063095ea7b390612e239073e592427a0aece92de3edee1f18e0157c058615649086906004016138a6565b602060405180830381600087803b158015612e3d57600080fd5b505af1158015612e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7591906138bf565b5060408051610100810182526001600160a01b0383168152600080516020613d808339815191526020820152610bb89181019190915230606082015273e592427a0aece92de3edee1f18e0157c058615649063414bf3899060808101612edc42600a613875565b81526020018581526020016000815260200160006001600160a01b03168152506040518263ffffffff1660e01b8152600401612f189190613cd6565b602060405180830381600087803b158015612f3257600080fd5b505af1158015612f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb2919061388d565b60405163095ea7b360e01b81526001600160a01b0383169063095ea7b390612fac9073e592427a0aece92de3edee1f18e0157c058615649085906004016138a6565b602060405180830381600087803b158015612fc657600080fd5b505af1158015612fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffe91906138bf565b5060408051610100810182526001600160a01b0384168152600080516020613d8083398151915260208201526101f49181019190915230606082015273e592427a0aece92de3edee1f18e0157c058615649063414bf389906080810161306542600a613875565b81526020018481526020016000815260200160006001600160a01b03168152506040518263ffffffff1660e01b81526004016129199190613cd6565b600081602001516001600160a01b031682600001516001600160a01b0316106130c957600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b6001600160a01b038116811461319f57600080fd5b50565b60008083601f8401126131b457600080fd5b50813567ffffffffffffffff8111156131cc57600080fd5b6020830191508360208285010111156131e457600080fd5b9250929050565b60008060008060006080868803121561320357600080fd5b853561320e8161318a565b94506020860135935060408601359250606086013567ffffffffffffffff81111561323857600080fd5b613244888289016131a2565b969995985093965092949392505050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561328e5761328e613255565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156132bd576132bd613255565b604052919050565b801515811461319f57600080fd5b600060a082840312156132e557600080fd5b60405160a0810181811067ffffffffffffffff8211171561330857613308613255565b6040528235815290508060208301356001600160501b038116811461332c57600080fd5b6020820152604083013561333f8161318a565b60408201526060830135613352816132c5565b60608201526080830135613365816132c5565b6080919091015292915050565b600060a0828403121561338457600080fd5b61338e83836132d3565b9392505050565b80356001600160601b03811681146133ac57600080fd5b919050565b600080604083850312156133c457600080fd5b6133cd83613395565b915060208301356133dd8161318a565b809150509250929050565b60008060c083850312156133fb57600080fd5b82356134068161318a565b915061341584602085016132d3565b90509250929050565b60008083601f84011261343057600080fd5b50813567ffffffffffffffff81111561344857600080fd5b6020830191508360208260051b85010111156131e457600080fd5b600080600080600080600080600060a08a8c03121561348157600080fd5b893567ffffffffffffffff8082111561349957600080fd5b6134a58d838e0161341e565b909b50995060208c01359150808211156134be57600080fd5b6134ca8d838e0161341e565b909950975060408c01359150808211156134e357600080fd5b6134ef8d838e0161341e565b909750955060608c013591506135048261318a565b90935060808b0135908082111561351a57600080fd5b506135278c828d016131a2565b915080935050809150509295985092959850929598565b6000806000806060858703121561355457600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561357957600080fd5b613585878288016131a2565b95989497509550505050565b600067ffffffffffffffff8211156135ab576135ab613255565b5060051b60200190565b600082601f8301126135c657600080fd5b813560206135db6135d683613591565b613294565b82815260059290921b840181019181810190868411156135fa57600080fd5b8286015b8481101561361557803583529183019183016135fe565b509695505050505050565b600082601f83011261363157600080fd5b813567ffffffffffffffff81111561364b5761364b613255565b61365e601f8201601f1916602001613294565b81815284602083860101111561367357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156136a657600080fd5b843567ffffffffffffffff808211156136be57600080fd5b818701915087601f8301126136d257600080fd5b813560206136e26135d683613591565b82815260059290921b8401810191818101908b84111561370157600080fd5b948201945b838610156137285785356137198161318a565b82529482019490820190613706565b9850508801359250508082111561373e57600080fd5b61374a888389016135b5565b9450604087013591508082111561376057600080fd5b61376c888389016135b5565b9350606087013591508082111561378257600080fd5b5061378f87828801613620565b91505092959194509250565b6000602082840312156137ad57600080fd5b815161338e8161318a565b600080600080600060a086880312156137d057600080fd5b85356137db8161318a565b9450602086013593506137f060408701613395565b925060608601356138008161318a565b91506080860135613810816132c5565b809150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561384e5761384e61381e565b500290565b60008261387057634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156138885761388861381e565b500190565b60006020828403121561389f57600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b6000602082840312156138d157600080fd5b815161338e816132c5565b634e487b7160e01b600052603260045260246000fd5b81516001600160581b031681526020808301516001600160a01b03169082015260409182015115159181019190915260600190565b600081518084526020808501945080840160005b838110156139575781518752958201959082019060010161393b565b509495945050505050565b6000815180845260005b818110156139885760208185018101518683018201520161396c565b8181111561399a576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0385811682526080602080840182905286519184018290526000928782019290919060a0860190855b818110156139fd5785518516835294830194918301916001016139df565b50508581036040870152613a118189613927565b93505050508281036060840152613a288185613962565b979650505050505050565b600082821015613a4557613a4561381e565b500390565b84815283602082015260018060a01b0383166040820152608060608201526000613a776080830184613962565b9695505050505050565b6001600160a01b03888116825260e0602080840182905289519184018290526000928a820192909190610100860190855b81811015613ad0578551851683529483019491830191600101613ab2565b50508581036040870152613ae4818c613927565b93505050508281036060840152613afb8188613927565b6001600160a01b0387166080850152905082810360a0840152613b1e8186613962565b915050613b3160c083018461ffff169052565b98975050505050505050565b6001600160581b038116811461319f57600080fd5b600060608284031215613b6457600080fd5b613b6c61326b565b8235613b7781613b3d565b81526020830135613b878161318a565b60208201526040830135613b9a816132c5565b60408201529392505050565b60018060a01b0385168152836020820152826040820152608060608201526000613a776080830184613962565b600060808284031215613be557600080fd5b6040516080810181811067ffffffffffffffff82111715613c0857613c08613255565b604052823581526020830135613c1d81613b3d565b60208201526040830135613c308161318a565b60408201526060830135613c43816132c5565b60608201529392505050565b600060608284031215613c6157600080fd5b613c6961326b565b8251613c7481613b3d565b81526020830151613c848161318a565b60208201526040830151613b9a816132c5565b60008083128015600160ff1b850184121615613cb557613cb561381e565b6001600160ff1b0384018313811615613cd057613cd061381e565b50500390565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0838101519083015260c0808401519083015260e0928301511691810191909152610100019056fe0000000000000000000000002a54ba2964c8cd459dc568853f79813a60761b58cad232cbe577ab9bbf93621995217d1c045c9cc64048daabfd5e8efef4db12c4000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48a2646970667358221220fc5b3118c45fc0c57a4a06338eacb6f020807b5c67347290ae6d02b76c5aa99364736f6c63430008090033