0 txs
70 calls
constructor
constructor()
functions
BIPS_DIVISOR
viewfunction BIPS_DIVISOR() view returns (uint256)
activateReserve
nonpayablefunction activateReserve(address asset)
batchInitReserve
nonpayablefunction batchInitReserve(tuple[] input)
configureReserveAsCollateral
nonpayablefunction configureReserveAsCollateral(address asset, uint256 ltv, uint256 liquidationThreshold, uint256 liquidationBonus)
deactivateReserve
nonpayablefunction deactivateReserve(address asset)
disableBorrowingOnReserve
nonpayablefunction disableBorrowingOnReserve(address asset)
disableReserveStableRate
nonpayablefunction disableReserveStableRate(address asset)
enableBorrowingOnReserve
nonpayablefunction enableBorrowingOnReserve(address asset, bool stableBorrowRateEnabled)
enableReserveStableRate
nonpayablefunction enableReserveStableRate(address asset)
freezeReserve
nonpayablefunction freezeReserve(address asset)
initialize
nonpayablefunction initialize(address provider)
poolShutdown
nonpayablefunction poolShutdown(uint256 badDebt)
setBorrowCap
nonpayablefunction setBorrowCap(address asset, uint256 newBorrowCap)
setPoolPause
nonpayablefunction setPoolPause(bool val)
setReserveFactor
nonpayablefunction setReserveFactor(address asset, uint256 reserveFactor)
setReserveInterestRateStrategyAddress
nonpayablefunction setReserveInterestRateStrategyAddress(address asset, address rateStrategyAddress)
setSupplyCap
nonpayablefunction setSupplyCap(address asset, uint256 newSupplyCap)
unfreezeReserve
nonpayablefunction unfreezeReserve(address asset)
updateAToken
nonpayablefunction updateAToken(tuple input)
updateStableDebtToken
nonpayablefunction updateStableDebtToken(tuple input)
updateVariableDebtToken
nonpayablefunction updateVariableDebtToken(tuple input)
events
ATokenUpgraded
event ATokenUpgraded(address indexed asset, address indexed proxy, address indexed implementation)
BorrowCapChanged
event BorrowCapChanged(address indexed asset, uint256 oldBorrowCap, uint256 newBorrowCap)
BorrowingDisabledOnReserve
event BorrowingDisabledOnReserve(address indexed asset)
BorrowingEnabledOnReserve
event BorrowingEnabledOnReserve(address indexed asset, bool stableRateEnabled)
CollateralConfigurationChanged
event CollateralConfigurationChanged(address indexed asset, uint256 ltv, uint256 liquidationThreshold, uint256 liquidationBonus)
ReserveActivated
event ReserveActivated(address indexed asset)
ReserveDeactivated
event ReserveDeactivated(address indexed asset)
ReserveDecimalsChanged
event ReserveDecimalsChanged(address indexed asset, uint256 decimals)
ReserveFactorChanged
event ReserveFactorChanged(address indexed asset, uint256 factor)
ReserveFrozen
event ReserveFrozen(address indexed asset)
ReserveInitialized
event ReserveInitialized(address indexed asset, address indexed aToken, address stableDebtToken, address variableDebtToken, address interestRateStrategyAddress)
ReserveInterestRateStrategyChanged
event ReserveInterestRateStrategyChanged(address indexed asset, address strategy)
ReserveUnfrozen
event ReserveUnfrozen(address indexed asset)
StableDebtTokenUpgraded
event StableDebtTokenUpgraded(address indexed asset, address indexed proxy, address indexed implementation)
StableRateDisabledOnReserve
event StableRateDisabledOnReserve(address indexed asset)
StableRateEnabledOnReserve
event StableRateEnabledOnReserve(address indexed asset)
SupplyCapChanged
event SupplyCapChanged(address indexed asset, uint256 oldSupplyCap, uint256 newSupplyCap)
VariableDebtTokenUpgraded
event VariableDebtTokenUpgraded(address indexed asset, address indexed proxy, address indexed implementation)
errors
DecimalsOutOfRange
error DecimalsOutOfRange(uint256 decimals)
creation bytecode
0x6080604052600080553480156200001557600080fd5b506200002062000026565b620000b5565b60015460ff16156200008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154610100900460ff16620000b35760016000556001805461ff0019166101001790555b565b6145ac80620000c56000396000f3fe60806040523480156200001157600080fd5b50600436106200012f5760003560e01c8063a8dc0f4511620000b6578063a8dc0f451462000221578063ab6461861462000238578063ad4e6432146200024f578063b75d6f341462000266578063bb01c37c146200027d578063bf3441831462000294578063c4d66de814620002ab578063d14a098314620002c2578063eede87c114620002d9578063ef1f937314620002f0578063f53a2515146200030757600080fd5b80631d2118f914620001345780633e72a454146200014d5780634b4e67531462000164578063571f03e5146200017b5780637626cde314620001925780637641f3d914620001a95780637713efa714620001c05780637aca76eb14620001d75780637c4e560b14620001ee57806390b7568a1462000205575b600080fd5b6200014b620001453660046200357f565b6200031e565b005b6200014b6200015e366004620035bd565b62000488565b6200014b62000175366004620035e4565b6200066b565b6200014b6200018c366004620035e4565b62000853565b6200014b620001a336600462003613565b62000a4a565b6200014b620001ba36600462003666565b62000d90565b6200014b620001d136600462003684565b62000ea5565b6200014b620001e8366004620035bd565b620010a7565b6200014b620001ff3660046200369e565b6200127f565b6200020f61271081565b60405190815260200160405180910390f35b6200014b62000232366004620035bd565b62001599565b6200014b62000249366004620036dc565b62001771565b6200014b6200026036600462003613565b62001878565b6200014b62000277366004620035bd565b62001b2a565b6200014b6200028e36600462003755565b62001d02565b6200014b620002a5366004620035bd565b62001fc5565b6200014b620002bc366004620035bd565b6200219d565b6200014b620002d3366004620035e4565b620022ff565b6200014b620002ea36600462003792565b620024ed565b6200014b62000301366004620035bd565b620026d7565b6200014b62000318366004620035bd565b620028af565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801562000368573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038e9190620037d9565b6001600160a01b031614620003d8576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60405180910390fd5b603554604051631d2118f960e01b81526001600160a01b038481166004830152838116602483015290911690631d2118f990604401600060405180830381600087803b1580156200042857600080fd5b505af11580156200043d573d6000803e3d6000fd5b50505050816001600160a01b03167f5644b64ebb0ce18c4032248ca52f58355469092ff072866c3dcd8640e817d6a5826040516200047c91906200385e565b60405180910390a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015620004d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f89190620037d9565b6001600160a01b03161462000539576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b620005448162002a87565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f790620005779085906004016200385e565b602060405180830381865afa15801562000595573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005bb9190620038fb565b9050620005ca81600062002bce565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d2927691620005ff918691906004016200391a565b600060405180830381600087803b1580156200061a57600080fd5b505af11580156200062f573d6000803e3d6000fd5b50506040516001600160a01b03851692507f6f60cf8bd0f218cabe1ea3150bd07b0b758c35c4cfdf7138017a283e65564d5e9150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015620006b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006db9190620037d9565b6001600160a01b0316146200071c576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f7906200074f9086906004016200385e565b602060405180830381865afa1580156200076d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007939190620038fb565b9050620007a1818362002bfa565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d2927691620007d6918791906004016200391a565b600060405180830381600087803b158015620007f157600080fd5b505af115801562000806573d6000803e3d6000fd5b50505050826001600160a01b03167f2694ccb0b585b6a54b8d8b4a47aa874b05c257b43d34e98aee50838be00d3405836040516200084691815260200190565b60405180910390a2505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156200089d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008c39190620037d9565b6001600160a01b03161462000904576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f790620009379086906004016200385e565b602060405180830381865afa15801562000955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200097b9190620038fb565b805190915060741c640fffffffff1662000996828462002c4f565b6035548251604051635c69493b60e11b81526001600160a01b039092169163b8d2927691620009cb918891906004016200391a565b600060405180830381600087803b158015620009e657600080fd5b505af1158015620009fb573d6000803e3d6000fd5b505060408051848152602081018790526001600160a01b03881693507f0263602682188540a2d633561c0b4453b7d8566285e99f9f6018b8ef2facef499250015b60405180910390a250505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801562000a94573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aba9190620037d9565b6001600160a01b03161462000afb576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b6035546001600160a01b03166000816335ea6a7562000b1e6020860186620035bd565b6040518263ffffffff1660e01b815260040162000b3c91906200385e565b61018060405180830381865afa15801562000b5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b8191906200397e565b9050600062000c346001600160a01b03841663c44b11f762000ba76020880188620035bd565b6040518263ffffffff1660e01b815260040162000bc591906200385e565b602060405180830381865afa15801562000be3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c099190620038fb565b5161ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b509350505060ff821115905062000c625760405163179a89b960e31b815260048101829052602401620003cf565b60008362000c746020870187620035bd565b62000c866040880160208901620035bd565b8462000c9660408a018a62003a86565b62000ca560608c018c62003a86565b62000cb460a08e018e62003a86565b60405160240162000ccf9a9998979695949392919062003aff565b60408051601f198184030181529190526020810180516001600160e01b0316636111764560e11b17905261010084015190915062000d209062000d1960a0880160808901620035bd565b8362002cab565b62000d3260a0860160808701620035bd565b6101008401516001600160a01b03918216911662000d546020880188620035bd565b6001600160a01b03167f7a943a5b6c214bf7726c069a878b1e2a8e7371981d516048b84e03743e67bc2860405160405180910390a45050505050565b60345460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa15801562000dda573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e009190620037d9565b6001600160a01b03161462000e415760408051808201825260028152611b9b60f11b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163bedb86fb60e01b815282151560048201526001600160a01b039091169063bedb86fb90602401600060405180830381600087803b15801562000e8957600080fd5b505af115801562000e9e573d6000803e3d6000fd5b5050505050565b60345460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa15801562000eef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f159190620037d9565b6001600160a01b03161462000f565760408051808201825260028152611b9b60f11b6020820152905162461bcd60e51b8152620003cf919060040162003849565b603554604051639b93c03960e01b8152600481018390526001600160a01b0390911690639b93c03990602401600060405180830381600087803b15801562000f9d57600080fd5b505af115801562000fb2573d6000803e3d6000fd5b505050506000603460009054906101000a90046001600160a01b03166001600160a01b03166314092f586040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200100c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010329190620037d9565b603454604051600162b7d15760e01b031981526001600160a01b0391821660048201526000602482015291925082919082169063ff482ea990604401600060405180830381600087803b1580156200108957600080fd5b505af11580156200109e573d6000803e3d6000fd5b50505050505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015620010f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011179190620037d9565b6001600160a01b03161462001158576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f7906200118b9085906004016200385e565b602060405180830381865afa158015620011a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011cf9190620038fb565b9050620011de81600162002d17565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769162001213918691906004016200391a565b600060405180830381600087803b1580156200122e57600080fd5b505af115801562001243573d6000803e3d6000fd5b50506040516001600160a01b03851692507f85dc710add8a0914461a7dc5a63f6fc529a7700f8c6089a3faf5e93256ccf12a9150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015620012c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012ef9190620037d9565b6001600160a01b03161462001330576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f790620013639088906004016200385e565b602060405180830381865afa15801562001381573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013a79190620038fb565b905082841115620013e4576040805180820182526002815261373560f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b82156200147557612710821162001427576040805180820182526002815261373560f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b61271062001436848462002d43565b11156200146f576040805180820182526002815261373560f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b620014b9565b8115620014ae576040805180820182526002815261373560f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b620014b98562002a87565b620014c5818562002e07565b620014d1818462002e53565b620014dd818362002ea7565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769162001512918991906004016200391a565b600060405180830381600087803b1580156200152d57600080fd5b505af115801562001542573d6000803e3d6000fd5b505060408051878152602081018790529081018590526001600160a01b03881692507f637febbda9275aea2e85c0ff690444c8d87eb2e8339bbede9715abcc89cb0995915060600160405180910390a25050505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015620015e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016099190620037d9565b6001600160a01b0316146200164a576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f7906200167d9085906004016200385e565b602060405180830381865afa1580156200169b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016c19190620038fb565b9050620016d081600062002efd565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769162001705918691906004016200391a565b600060405180830381600087803b1580156200172057600080fd5b505af115801562001735573d6000803e3d6000fd5b50506040516001600160a01b03851692507fe9a7e5fd4fc8ea18e602350324bf48e8f05d12434af0ce0be05743e6a5fdcb9e9150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015620017bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017e19190620037d9565b6001600160a01b03161462001822576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b6035546001600160a01b03168160005b8181101562000e9e576200186f8386868481811062001855576200185562003b7c565b905060200281019062001869919062003b92565b62002f29565b60010162001832565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015620018c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018e89190620037d9565b6001600160a01b03161462001929576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b6035546001600160a01b03166000816335ea6a756200194c6020860186620035bd565b6040518263ffffffff1660e01b81526004016200196a91906200385e565b61018060405180830381865afa15801562001989573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019af91906200397e565b90506000620019d56001600160a01b03841663c44b11f762000ba76020880188620035bd565b509350505060ff821115905062001a035760405163179a89b960e31b815260048101829052602401620003cf565b60008362001a156020870187620035bd565b62001a276040880160208901620035bd565b8462001a3760408a018a62003a86565b62001a4660608c018c62003a86565b62001a5560a08e018e62003a86565b60405160240162001a709a9998979695949392919062003aff565b60408051601f198184030181529190526020810180516001600160e01b0316636111764560e11b17905261012084015190915062001aba9062000d1960a0880160808901620035bd565b62001acc60a0860160808701620035bd565b6101208401516001600160a01b03918216911662001aee6020880188620035bd565b6001600160a01b03167f9439658a562a5c46b1173589df89cf001483d685bad28aedaff4a88656292d8160405160405180910390a45050505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801562001b74573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b9a9190620037d9565b6001600160a01b03161462001bdb576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f79062001c0e9085906004016200385e565b602060405180830381865afa15801562001c2c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c529190620038fb565b905062001c6181600162002bce565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769162001c96918691906004016200391a565b600060405180830381600087803b15801562001cb157600080fd5b505af115801562001cc6573d6000803e3d6000fd5b50506040516001600160a01b03851692507f35b80cd8ea3440e9a8454f116fa658b858da1b64c86c48451f4559cefcdfb56c9150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801562001d4c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d729190620037d9565b6001600160a01b03161462001db3576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b6035546001600160a01b03166000816335ea6a7562001dd66020860186620035bd565b6040518263ffffffff1660e01b815260040162001df491906200385e565b61018060405180830381865afa15801562001e13573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e3991906200397e565b9050600062001e5f6001600160a01b03841663c44b11f762000ba76020880188620035bd565b509350505060ff821115905062001e8d5760405163179a89b960e31b815260048101829052602401620003cf565b60008362001ea26040870160208801620035bd565b62001eb16020880188620035bd565b62001ec36060890160408a01620035bd565b8562001ed360608b018b62003a86565b62001ee260808d018d62003a86565b62001ef160c08f018f62003a86565b60405160240162001f0d9b9a9998979695949392919062003bb4565b60408051601f198184030181529190526020810180516001600160e01b031663183fb41360e01b17905260e084015190915062001f569062000d1960c0880160a08901620035bd565b62001f6860c0860160a08701620035bd565b60e08401516001600160a01b03918216911662001f896020880188620035bd565b6001600160a01b03167fa76f65411ec66a7fb6bc467432eb14767900449ae4469fa295e4441fe5e1cb7360405160405180910390a45050505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156200200f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020359190620037d9565b6001600160a01b03161462002076576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f790620020a99085906004016200385e565b602060405180830381865afa158015620020c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020ed9190620038fb565b9050620020fc816001620033d2565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769162002131918691906004016200391a565b600060405180830381600087803b1580156200214c57600080fd5b505af115801562002161573d6000803e3d6000fd5b50506040516001600160a01b03851692507f8dee2b2f3e98319ae6347eda521788f73f4086c9be9a594942b370b137fb8cb19150600090a25050565b6001805460ff1615808015620021c75750600054821180620021c75750600154610100900460ff16155b6200222c5760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b6064820152608401620003cf565b801562002248576001805461ffff191661010117905560008290555b603480546001600160a01b0319166001600160a01b03851690811790915560408051630261bf8b60e01b81529051630261bf8b916004808201926020929091908290030181865afa158015620022a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022c89190620037d9565b603580546001600160a01b0319166001600160a01b03929092169190911790558015620022fa576001805460ff191690555b505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801562002349573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200236f9190620037d9565b6001600160a01b031614620023b0576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f790620023e39086906004016200385e565b602060405180830381865afa15801562002401573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024279190620038fb565b805190915060501c640fffffffff16620024428284620033fe565b6035548251604051635c69493b60e11b81526001600160a01b039092169163b8d292769162002477918891906004016200391a565b600060405180830381600087803b1580156200249257600080fd5b505af1158015620024a7573d6000803e3d6000fd5b505060408051848152602081018790526001600160a01b03881693507fc51aca575985d521c5072ad11549bad77013bb786d57f30f94b40ed8f8dc9bc492500162000a3c565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801562002537573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200255d9190620037d9565b6001600160a01b0316146200259e576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f790620025d19086906004016200385e565b602060405180830381865afa158015620025ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026159190620038fb565b90506200262481600162002efd565b620026308183620033d2565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769162002665918791906004016200391a565b600060405180830381600087803b1580156200268057600080fd5b505af115801562002695573d6000803e3d6000fd5b50505050826001600160a01b03167fab2f7f9e5ca2772fafa94f355c1842a80ae6b9e41f83083098d81f67d7a0b5088360405162000846911515815260200190565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801562002721573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027479190620037d9565b6001600160a01b03161462002788576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f790620027bb9085906004016200385e565b602060405180830381865afa158015620027d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027ff9190620038fb565b90506200280e81600062002d17565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769162002843918691906004016200391a565b600060405180830381600087803b1580156200285e57600080fd5b505af115801562002873573d6000803e3d6000fd5b50506040516001600160a01b03851692507f838ecdc4709a31a26db48b0c853212cedde3f725f07030079d793fb0719647609150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015620028f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200291f9190620037d9565b6001600160a01b03161462002960576040805180820182526002815261333360f01b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60355460405163c44b11f760e01b81526000916001600160a01b03169063c44b11f790620029939085906004016200385e565b602060405180830381865afa158015620029b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029d79190620038fb565b9050620029e6816000620033d2565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769162002a1b918691906004016200391a565b600060405180830381600087803b15801562002a3657600080fd5b505af115801562002a4b573d6000803e3d6000fd5b50506040516001600160a01b03851692507f8bbf35441ac2c607ddecadd3d8ee58636d32f217fad201fb2655581502dd84e39150600090a25050565b6035546040516335ea6a7560e01b81526000916001600160a01b0316906335ea6a759062002aba9085906004016200385e565b61018060405180830381865afa15801562002ad9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002aff91906200397e565b90506000826001600160a01b03166370a082318360e001516040518263ffffffff1660e01b815260040162002b3591906200385e565b602060405180830381865afa15801562002b53573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b79919062003c3d565b90508015158062002b96575060608201516001600160801b031615155b15620022fa5760408051808201825260028152610ccd60f21b6020820152905162461bcd60e51b8152620003cf919060040162003849565b60388162002bde57600062002be1565b60015b8351600160381b191660ff9190911690911b1790915250565b604080518082019091526002815261373160f01b602082015261ffff82111562002c395760405162461bcd60e51b8152600401620003cf919062003849565b50815161ffff60401b191660409190911b179052565b60408051808201909152600381526219181960e91b6020820152640fffffffff82111562002c925760405162461bcd60e51b8152600401620003cf919062003849565b508151640fffffffff60741b191660749190911b179052565b60405163278f794360e11b815283906001600160a01b03821690634f1ef2869062002cdd908690869060040162003c57565b600060405180830381600087803b15801562002cf857600080fd5b505af115801562002d0d573d6000803e3d6000fd5b5050505050505050565b60398162002d2757600062002d2a565b60015b8351600160391b191660ff9190911690911b1790915250565b600082158062002d51575081155b1562002d605750600062002e01565b8162002d70600261271062003c9b565b62002d7e9060001962003cbe565b62002d8a919062003c9b565b83111560405180604001604052806002815260200161068760f31b8152509062002dc95760405162461bcd60e51b8152600401620003cf919062003849565b5061271062002dda60028262003c9b565b62002de6848662003cd8565b62002df2919062003cfa565b62002dfe919062003c9b565b90505b92915050565b604080518082019091526002815261363760f01b602082015261ffff82111562002e465760405162461bcd60e51b8152600401620003cf919062003849565b50815161ffff1916179052565b60408051808201909152600281526106c760f31b602082015261ffff82111562002e925760405162461bcd60e51b8152600401620003cf919062003849565b50815163ffff0000191660109190911b179052565b604080518082019091526002815261363960f01b602082015261ffff82111562002ee65760405162461bcd60e51b8152600401620003cf919062003849565b50815165ffff00000000191660209190911b179052565b603a8162002f0d57600062002f10565b60015b83516001603a1b191660ff9190911690911b1790915250565b60006200300462002f3e6020840184620035bd565b8462002f5160e0860160c08701620035bd565b62002f6360c0870160a08801620035bd565b62002f76610100880160e08901620035bd565b62002f886080890160608a0162003d15565b62002f986101408a018a62003a86565b62002fa86101608c018c62003a86565b62002fb86102008e018e62003a86565b60405160240162002fd49b9a9998979695949392919062003bb4565b60408051601f198184030181529190526020810180516001600160e01b031663183fb41360e01b1790526200345a565b90506000620030d16200301e6040850160208601620035bd565b856200303160c0870160a08801620035bd565b62003044610100880160e08901620035bd565b620030566080890160608a0162003d15565b620030666101c08a018a62003a86565b620030766101e08c018c62003a86565b620030866102008e018e62003a86565b604051602401620030a19a9998979695949392919062003aff565b60408051601f198184030181529190526020810180516001600160e01b0316636111764560e11b1790526200345a565b9050600062003153620030eb6060860160408701620035bd565b86620030fe60c0880160a08901620035bd565b62003111610100890160e08a01620035bd565b6200312360808a0160608b0162003d15565b620031336101808b018b62003a86565b620031436101a08d018d62003a86565b620030866102008f018f62003a86565b90506001600160a01b038516637a708e926200317660c0870160a08801620035bd565b8585856200318b60a08b0160808c01620035bd565b60405160e087901b6001600160e01b03191681526001600160a01b0395861660048201529385166024850152918416604484015283166064830152909116608482015260a401600060405180830381600087803b158015620031ec57600080fd5b505af115801562003201573d6000803e3d6000fd5b506000925050506001600160a01b03861663c44b11f76200322960c0880160a08901620035bd565b6040518263ffffffff1660e01b81526004016200324791906200385e565b602060405180830381865afa15801562003265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200328b9190620038fb565b9050620032ae620032a3608087016060880162003d15565b829060ff1662003505565b620032bb81600162002bce565b620032c881600062002d17565b6035546001600160a01b031663b8d29276620032eb60c0880160a08901620035bd565b83516040516001600160e01b031960e085901b168152620033119291906004016200391a565b600060405180830381600087803b1580156200332c57600080fd5b505af115801562003341573d6000803e3d6000fd5b5050506001600160a01b03851690506200336260c0870160a08801620035bd565b6001600160a01b03167f3a0ca721fc364424566385a1aa271ed508cc2c0949c2272575fb3013a163a45f8585620033a060a08b0160808c01620035bd565b604080516001600160a01b039485168152928416602084015292168183015290519081900360600190a3505050505050565b603b81620033e2576000620033e5565b60015b83516001603b1b191660ff9190911690911b1790915250565b60408051808201909152600381526232303160e81b6020820152640fffffffff821115620034415760405162461bcd60e51b8152600401620003cf919062003849565b508151640fffffffff60501b191660509190911b179052565b600080306040516200346c9062003558565b6200347891906200385e565b604051809103906000f08015801562003495573d6000803e3d6000fd5b5060405163347d5e2560e21b81529091506001600160a01b0382169063d1f5789490620034c9908790879060040162003c57565b600060405180830381600087803b158015620034e457600080fd5b505af1158015620034f9573d6000803e3d6000fd5b50929695505050505050565b604080518082019091526002815261037360f41b602082015260ff821115620035435760405162461bcd60e51b8152600401620003cf919062003849565b50815160ff60301b191660309190911b179052565b6108418062003d3683390190565b6001600160a01b03811681146200357c57600080fd5b50565b600080604083850312156200359357600080fd5b8235620035a08162003566565b91506020830135620035b28162003566565b809150509250929050565b600060208284031215620035d057600080fd5b8135620035dd8162003566565b9392505050565b60008060408385031215620035f857600080fd5b8235620036058162003566565b946020939093013593505050565b6000602082840312156200362657600080fd5b81356001600160401b038111156200363d57600080fd5b820160c08185031215620035dd57600080fd5b803580151581146200366157600080fd5b919050565b6000602082840312156200367957600080fd5b62002dfe8262003650565b6000602082840312156200369757600080fd5b5035919050565b60008060008060808587031215620036b557600080fd5b8435620036c28162003566565b966020860135965060408601359560600135945092505050565b60008060208385031215620036f057600080fd5b82356001600160401b03808211156200370857600080fd5b818501915085601f8301126200371d57600080fd5b8135818111156200372d57600080fd5b8660208260051b85010111156200374357600080fd5b60209290920196919550909350505050565b6000602082840312156200376857600080fd5b81356001600160401b038111156200377f57600080fd5b820160e08185031215620035dd57600080fd5b60008060408385031215620037a657600080fd5b8235620037b38162003566565b9150620037c36020840162003650565b90509250929050565b8051620036618162003566565b600060208284031215620037ec57600080fd5b8151620035dd8162003566565b6000815180845260005b81811015620038215760208185018101518683018201520162003803565b8181111562003834576000602083870101525b50601f01601f19169290920160200192915050565b60208152600062002dfe6020830184620037f9565b6001600160a01b0391909116815260200190565b60405161018081016001600160401b0381118282101715620038a457634e487b7160e01b600052604160045260246000fd5b60405290565b600060208284031215620038bd57600080fd5b604051602081018181106001600160401b0382111715620038ee57634e487b7160e01b600052604160045260246000fd5b6040529151825250919050565b6000602082840312156200390e57600080fd5b62002dfe8383620038aa565b6001600160a01b03929092168252602082015260400190565b80516001600160801b03811681146200366157600080fd5b805164ffffffffff811681146200366157600080fd5b60ff811681146200357c57600080fd5b8051620036618162003961565b600061018082840312156200399257600080fd5b6200399c62003872565b620039a88484620038aa565b8152620039b86020840162003933565b6020820152620039cb6040840162003933565b6040820152620039de6060840162003933565b6060820152620039f16080840162003933565b608082015262003a0460a0840162003933565b60a082015262003a1760c084016200394b565b60c082015262003a2a60e08401620037cc565b60e082015261010062003a3f818501620037cc565b9082015261012062003a53848201620037cc565b9082015261014062003a67848201620037cc565b9082015261016062003a7b84820162003971565b908201529392505050565b6000808335601e1984360301811262003a9e57600080fd5b8301803591506001600160401b0382111562003ab957600080fd5b60200191503681900382131562003acf57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038b811682528a811660208301528916604082015260ff8816606082015260e06080820181905260009062003b3f908301888a62003ad6565b82810360a084015262003b5481878962003ad6565b905082810360c084015262003b6b81858762003ad6565b9d9c50505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000823561021e1983360301811262003baa57600080fd5b9190910192915050565b6001600160a01b038c811682528b811660208301528a811660408301528916606082015260ff8816608082015261010060a0820181905260009062003bfd838201898b62003ad6565b905082810360c084015262003c1481878962003ad6565b905082810360e084015262003c2b81858762003ad6565b9e9d5050505050505050505050505050565b60006020828403121562003c5057600080fd5b5051919050565b6001600160a01b038316815260406020820181905260009062003c7d90830184620037f9565b949350505050565b634e487b7160e01b600052601160045260246000fd5b60008262003cb957634e487b7160e01b600052601260045260246000fd5b500490565b60008282101562003cd35762003cd362003c85565b500390565b600081600019048311821515161562003cf55762003cf562003c85565b500290565b6000821982111562003d105762003d1062003c85565b500190565b60006020828403121562003d2857600080fd5b8135620035dd816200396156fe60a060405234801561001057600080fd5b5060405161084138038061084183398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516107936100ae600039600081816101050152818161014a015281816102030152818161032e01528181610357015261049501526107936000f3fe60806040526004361061004a5760003560e01c80633659cfe6146100545780634f1ef286146100745780635c60da1b14610087578063d1f57894146100b8578063f851a440146100cb575b6100526100e0565b005b34801561006057600080fd5b5061005261006f36600461053a565b6100fa565b61005261008236600461055c565b61013f565b34801561009357600080fd5b5061009c6101f6565b6040516001600160a01b03909116815260200160405180910390f35b6100526100c63660046105f5565b610241565b3480156100d757600080fd5b5061009c610321565b6100e8610379565b6100f86100f3610381565b610394565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561013757610134816103b8565b50565b6101346100e0565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156101e957610179836103b8565b6000836001600160a01b031683836040516101959291906106b7565b600060405180830381855af49150503d80600081146101d0576040519150601f19603f3d011682016040523d82523d6000602084013e6101d5565b606091505b50509050806101e357600080fd5b50505050565b6101f16100e0565b505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561023657610231610381565b905090565b61023e6100e0565b90565b600061024b610381565b6001600160a01b03161461025e57600080fd5b61028960017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6106c7565b60008051602061073e833981519152146102a5576102a56106ec565b6102ae826103f8565b80511561031d576000826001600160a01b0316826040516102cf9190610702565b600060405180830381855af49150503d806000811461030a576040519150601f19603f3d011682016040523d82523d6000602084013e61030f565b606091505b50509050806101f157600080fd5b5050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561023657507f000000000000000000000000000000000000000000000000000000000000000090565b6100f861048a565b60008051602061073e8339815191525490565b3660008037600080366000845af43d6000803e8080156103b3573d6000f35b3d6000fd5b6103c1816103f8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381163b6104785760405162461bcd60e51b815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527a6e20746f2061206e6f6e2d636f6e7472616374206164647265737360281b60648201526084015b60405180910390fd5b60008051602061073e83398151915255565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156100f85760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527137b6903a343290383937bc3c9030b236b4b760711b606482015260840161046f565b80356001600160a01b038116811461053557600080fd5b919050565b60006020828403121561054c57600080fd5b6105558261051e565b9392505050565b60008060006040848603121561057157600080fd5b61057a8461051e565b9250602084013567ffffffffffffffff8082111561059757600080fd5b818601915086601f8301126105ab57600080fd5b8135818111156105ba57600080fd5b8760208285010111156105cc57600080fd5b6020830194508093505050509250925092565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561060857600080fd5b6106118361051e565b9150602083013567ffffffffffffffff8082111561062e57600080fd5b818501915085601f83011261064257600080fd5b813581811115610654576106546105df565b604051601f8201601f19908116603f0116810190838211818310171561067c5761067c6105df565b8160405282815288602084870101111561069557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b6000828210156106e757634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b6000825160005b818110156107235760208186018101518583015201610709565b81811115610732576000828501525b50919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212200341a01a2aef10d7912a8f20126516207d95571cfae01c4177c236447a908c8064736f6c634300080c0033a2646970667358221220c39a35ad661d6484da8a7b815a15fc21886e2d9e97b9bc6c5af4251705c27b2264736f6c634300080c0033