0 txs
115 calls
constructor
No constructor.
functions
addressManager
viewfunction addressManager() view returns (address)
chainedSpeedMarketsAMM
viewfunction chainedSpeedMarketsAMM() view returns (address)
lastPauseTime
viewfunction lastPauseTime() view returns (uint256)
nominatedOwner
viewfunction nominatedOwner() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
speedMarketsAMM
viewfunction speedMarketsAMM() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
initialize
nonpayablefunction initialize(address _owner, address _speedMarketsAMM, address _addressManager)
initNonReentrant
nonpayablefunction initNonReentrant()
nominateNewOwner
nonpayablefunction nominateNewOwner(address _owner)
resolveChainedMarket
payablefunction resolveChainedMarket(address market, bytes[][] priceUpdateData) payable
resolveChainedMarketManually
nonpayablefunction resolveChainedMarketManually(address _market, int64[] _finalPrices)
resolveChainedMarketManuallyBatch
nonpayablefunction resolveChainedMarketManuallyBatch(address[] markets, int64[][] finalPrices)
resolveChainedMarketsBatch
payablefunction resolveChainedMarketsBatch(address[] markets, bytes[][][] priceUpdateData) payable
resolveChainedMarketsBatchOffRamp
payablefunction resolveChainedMarketsBatchOffRamp(address[] markets, bytes[][][] priceUpdateData, address collateral, bool toEth) payable
resolveChainedMarketWithOfframp
payablefunction resolveChainedMarketWithOfframp(address market, bytes[][] priceUpdateData, address collateral, bool toEth) payable
resolveMarket
payablefunction resolveMarket(address market, bytes[] priceUpdateData) payable
resolveMarketManually
nonpayablefunction resolveMarketManually(address _market, int64 _finalPrice)
resolveMarketManuallyBatch
nonpayablefunction resolveMarketManuallyBatch(address[] markets, int64[] finalPrices)
resolveMarketsBatch
payablefunction resolveMarketsBatch(address[] markets, bytes[] priceUpdateData) payable
resolveMarketsBatchOffRamp
payablefunction resolveMarketsBatchOffRamp(address[] markets, bytes[] priceUpdateData, address collateral, bool toEth) payable
resolveMarketWithOfframp
payablefunction resolveMarketWithOfframp(address market, bytes[] priceUpdateData, address collateral, bool toEth) payable
setChainedSpeedMarketsAMM
nonpayablefunction setChainedSpeedMarketsAMM(address _chainedSpeedMarketsAMM)
setOwner
nonpayablefunction setOwner(address _owner)
setPaused
nonpayablefunction setPaused(bool _paused)
setupMultiCollateralApproval
nonpayablefunction setupMultiCollateralApproval(uint256 amount)
transferOwnershipAtInit
nonpayablefunction transferOwnershipAtInit(address proxyAddress)
events
ChainedSpeedMarketsAMMSet
event ChainedSpeedMarketsAMMSet(address indexed _chainedSpeedMarketsAMM)
OwnerChanged
event OwnerChanged(address oldOwner, address newOwner)
OwnerNominated
event OwnerNominated(address newOwner)
PauseChanged
event PauseChanged(bool isPaused)
SetMulticollateralApproval
event SetMulticollateralApproval(uint256 amount)
errors
CanNotResolve
error CanNotResolve()
CollateralNotSupported
error CollateralNotSupported()
EtherTransferFailed
error EtherTransferFailed()
InvalidOffRampCollateral
error InvalidOffRampCollateral()
InvalidPrice
error InvalidPrice()
InvalidWhitelistAddress
error InvalidWhitelistAddress()
MismatchedLengths
error MismatchedLengths()
MulticollateralOnrampDisabled
error MulticollateralOnrampDisabled()
OnlyMarketOwner
error OnlyMarketOwner()
creation bytecode
0x608060405234801561001057600080fd5b50614d82806100206000396000f3fe60806040526004361061017a5760003560e01c80638da5cb5b116100cc578063c3b83f5f1161007a578063c3b83f5f146103fe578063c6d9b3ff1461041e578063d3f6aa4014610431578063d9a10e9414610451578063da6b532f14610471578063dc17ea5b14610484578063ebc79772146104a457600080fd5b80638da5cb5b1461032e57806391b4ded91461035457806391befc191461037857806396c43be81461038b578063a3a2adf0146103ab578063a8da1a17146103be578063c0c53b8b146103de57600080fd5b80633ab76e9f116101295780633ab76e9f1461024e5780634832ea01146102895780634fcc4d271461029c57806353a47bb7146102bc5780635c975abb146102dc5780636043bf931461030657806379ba50971461031957600080fd5b8062df071f1461018657806313af40351461019b5780631627540c146101bb57806316c38b3c146101db57806317b94eac146101fb5780632c43dc831461020e5780633713e8701461022e57600080fd5b3661018157005b600080fd5b61019961019436600461453f565b6104b9565b005b3480156101a757600080fd5b506101996101b6366004614351565b61071a565b3480156101c757600080fd5b506101996101d6366004614351565b610838565b3480156101e757600080fd5b506101996101f63660046146a0565b61088b565b6101996102093660046143d3565b610901565b34801561021a57600080fd5b506101996102293660046144d7565b610979565b34801561023a57600080fd5b506101996102493660046143d3565b610b35565b34801561025a57600080fd5b506005546102739061010090046001600160a01b031681565b6040516102809190614836565b60405180910390f35b61019961029736600461453f565b610be1565b3480156102a857600080fd5b506101996102b73660046144d7565b610e97565b3480156102c857600080fd5b50600154610273906001600160a01b031681565b3480156102e857600080fd5b506003546102f69060ff1681565b6040519015158152602001610280565b610199610314366004614425565b611048565b34801561032557600080fd5b5061019961115f565b34801561033a57600080fd5b50600054610273906201000090046001600160a01b031681565b34801561036057600080fd5b5061036a60025481565b604051908152602001610280565b6101996103863660046144d7565b61124a565b34801561039757600080fd5b506101996103a6366004614351565b6113fb565b6101996103b93660046144d7565b61144d565b3480156103ca57600080fd5b506101996103d936600461449f565b61165e565b3480156103ea57600080fd5b506101996103f9366004614389565b611708565b34801561040a57600080fd5b50610199610419366004614351565b611b69565b61019961042c3660046143d3565b611c6c565b34801561043d57600080fd5b5061019961044c366004614747565b611cb8565b34801561045d57600080fd5b50600654610273906001600160a01b031681565b61019961047f366004614425565b611f9d565b34801561049057600080fd5b50600754610273906001600160a01b031681565b3480156104b057600080fd5b50610199612093565b6001600460008282546104cc9190614b7a565b909155505060045460035460ff16156105005760405162461bcd60e51b81526004016104f7906149e0565b60405180910390fd5b600760009054906101000a90046001600160a01b03166001600160a01b03166399c18e7e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058691906146bc565b6105a35760405163355da01160e11b815260040160405180910390fd5b60005b868110156106ef576007546001600160a01b03166314527f3a8989848181106105df57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105f49190614351565b6040518263ffffffff1660e01b81526004016106109190614836565b60206040518083038186803b15801561062857600080fd5b505afa15801561063c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066091906146bc565b156106df576106df88888381811061068857634e487b7160e01b600052603260045260246000fd5b905060200201602081019061069d9190614351565b8787848181106106bd57634e487b7160e01b600052603260045260246000fd5b90506020028101906106cf9190614a74565b6106d891614bf3565b86866120f1565b6106e881614cb3565b90506105a6565b5060045481146107115760405162461bcd60e51b81526004016104f790614a3d565b50505050505050565b6001600160a01b03811661076c5760405162461bcd60e51b815260206004820152601960248201527804f776e657220616464726573732063616e6e6f74206265203603c1b60448201526064016104f7565b600154600160a01b900460ff16156107d85760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b60648201526084016104f7565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b038316620100000262010000600160b01b0319909116178155604051600080516020614d2d8339815191529161082d91849061484a565b60405180910390a150565b610840612743565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061082d908390614836565b610893612743565b60035460ff16151581151514156108a75750565b6003805460ff191682151590811790915560ff16156108c557426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59060200161082d565b50565b6001600460008282546109149190614b7a565b909155505060045460035460ff161561093f5760405162461bcd60e51b81526004016104f7906149e0565b6109528461094d8486614c7a565b6127bd565b60045481146109735760405162461bcd60e51b81526004016104f790614a3d565b50505050565b60065460405162d9267b60e31b81526001600160a01b03909116906306c933d8906109a8903390600401614836565b60206040518083038186803b1580156109c057600080fd5b505afa1580156109d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f891906146bc565b610a1557604051634d553d1960e01b815260040160405180910390fd5b8260005b81811015610b2d576000868683818110610a4357634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610a589190614351565b600654604051630a293f9d60e11b81529192506001600160a01b0316906314527f3a90610a89908490600401614836565b60206040518083038186803b158015610aa157600080fd5b505afa158015610ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad991906146bc565b15610b1c57610b1c81868685818110610b0257634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b17919061470f565b612d81565b50610b2681614cb3565b9050610a19565b505050505050565b60065460405162d9267b60e31b81526001600160a01b03909116906306c933d890610b64903390600401614836565b60206040518083038186803b158015610b7c57600080fd5b505afa158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb491906146bc565b610bd157604051634d553d1960e01b815260040160405180910390fd5b610bdc838383612fe8565b505050565b600160046000828254610bf49190614b7a565b909155505060045460035460ff1615610c1f5760405162461bcd60e51b81526004016104f7906149e0565b600660009054906101000a90046001600160a01b03166001600160a01b03166399c18e7e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c6d57600080fd5b505afa158015610c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca591906146bc565b610cc25760405163355da01160e11b815260040160405180910390fd5b60005b868110156106ef576006546001600160a01b03166314527f3a898984818110610cfe57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610d139190614351565b6040518263ffffffff1660e01b8152600401610d2f9190614836565b60206040518083038186803b158015610d4757600080fd5b505afa158015610d5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7f91906146bc565b15610e8757604080516001808252818301909252600091816020015b6060815260200190600190039081610d9b579050509050868683818110610dd257634e487b7160e01b600052603260045260246000fd5b9050602002810190610de49190614abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250855186945090925015159050610e3a57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250610e85898984818110610e6857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610e7d9190614351565b828787613420565b505b610e9081614cb3565b9050610cc5565b60065460405162d9267b60e31b81526001600160a01b03909116906306c933d890610ec6903390600401614836565b60206040518083038186803b158015610ede57600080fd5b505afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1691906146bc565b610f3357604051634d553d1960e01b815260040160405180910390fd5b8260005b81811015610b2d576000868683818110610f6157634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610f769190614351565b600754604051630a293f9d60e11b81529192506001600160a01b0316906314527f3a90610fa7908490600401614836565b60206040518083038186803b158015610fbf57600080fd5b505afa158015610fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff791906146bc565b15611037576110378186868581811061102057634e487b7160e01b600052603260045260246000fd5b90506020028101906110329190614a74565b612fe8565b5061104181614cb3565b9050610f37565b60016004600082825461105b9190614b7a565b909155505060045460035460ff16156110865760405162461bcd60e51b81526004016104f7906149e0565b600760009054906101000a90046001600160a01b03166001600160a01b03166399c18e7e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110d457600080fd5b505afa1580156110e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110c91906146bc565b6111295760405163355da01160e11b815260040160405180910390fd5b61113e866111378688614bf3565b85856120f1565b6004548114610b2d5760405162461bcd60e51b81526004016104f790614a3d565b6001546001600160a01b031633146111d75760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016104f7565b600054600154604051600080516020614d2d8339815191529261120e926001600160a01b036201000090920482169291169061484a565b60405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b60016004600082825461125d9190614b7a565b909155505060045460035460ff16156112885760405162461bcd60e51b81526004016104f7906149e0565b60005b848110156113d2576007546001600160a01b03166314527f3a8787848181106112c457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906112d99190614351565b6040518263ffffffff1660e01b81526004016112f59190614836565b60206040518083038186803b15801561130d57600080fd5b505afa158015611321573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134591906146bc565b156113c2576113c286868381811061136d57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906113829190614351565b8585848181106113a257634e487b7160e01b600052603260045260246000fd5b90506020028101906113b49190614a74565b6113bd91614bf3565b61382f565b6113cb81614cb3565b905061128b565b5060045481146113f45760405162461bcd60e51b81526004016104f790614a3d565b5050505050565b611403612743565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f5d9de7aede86bb8f066e68761179e1a100795879b5ae7a37ef2f31c007f063b990600090a250565b6001600460008282546114609190614b7a565b909155505060045460035460ff161561148b5760405162461bcd60e51b81526004016104f7906149e0565b60005b848110156113d2576006546001600160a01b03166314527f3a8787848181106114c757634e487b7160e01b600052603260045260246000fd5b90506020020160208101906114dc9190614351565b6040518263ffffffff1660e01b81526004016114f89190614836565b60206040518083038186803b15801561151057600080fd5b505afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154891906146bc565b1561164e57604080516001808252818301909252600091816020015b606081526020019060019003908161156457905050905084848381811061159b57634e487b7160e01b600052603260045260246000fd5b90506020028101906115ad9190614abb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525085518694509092501515905061160357634e487b7160e01b600052603260045260246000fd5b602002602001018190525061164c87878481811061163157634e487b7160e01b600052603260045260246000fd5b90506020020160208101906116469190614351565b826127bd565b505b61165781614cb3565b905061148e565b60065460405162d9267b60e31b81526001600160a01b03909116906306c933d89061168d903390600401614836565b60206040518083038186803b1580156116a557600080fd5b505afa1580156116b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dd91906146bc565b6116fa57604051634d553d1960e01b815260040160405180910390fd5b6117048282612d81565b5050565b600054610100900460ff166117235760005460ff1615611727565b303b155b61178a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104f7565b600054610100900460ff161580156117ac576000805461ffff19166101011790555b6117b58461071a565b600680546001600160a01b0319166001600160a01b038581169190911790915560058054610100600160a81b0319166101008584168102919091179182905560405163bf40fac160e01b8152602060048201526016602482015275436861696e656453706565644d61726b657473414d4d60501b604482015291049091169063bf40fac19060640160206040518083038186803b15801561185557600080fd5b505afa158015611869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188d919061436d565b600780546001600160a01b0319166001600160a01b0392831617905560055460408051639a618c0f60e01b8152905160009361010090930490921691639a618c0f91600480820192602092909190829003018186803b1580156118ef57600080fd5b505afa158015611903573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611927919061436d565b90506001600160a01b03811615611b4957600660009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b15801561198657600080fd5b505afa15801561199a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119be919061436d565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b81526004016119ed92919061492f565b602060405180830381600087803b158015611a0757600080fd5b505af1158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f91906146bc565b50600760009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b158015611a8e57600080fd5b505afa158015611aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac6919061436d565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b8152600401611af592919061492f565b602060405180830381600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4791906146bc565b505b611b51612093565b508015610973576000805461ff001916905550505050565b611b71612743565b6001600160a01b038116611bb95760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016104f7565b600154600160a81b900460ff1615611c095760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b60448201526064016104f7565b600080546001600160a01b038084166201000090810262010000600160b01b031990931692909217928390556001805460ff60a81b1916600160a81b179055604051600080516020614d2d8339815191529361082d93900490911690849061484a565b600160046000828254611c7f9190614b7a565b909155505060045460035460ff1615611caa5760405162461bcd60e51b81526004016104f7906149e0565b610952846113bd8486614bf3565b611cc0612743565b6000600560019054906101000a90046001600160a01b03166001600160a01b0316639a618c0f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d1057600080fd5b505afa158015611d24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d48919061436d565b90506001600160a01b03811615611f6657600660009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b158015611da757600080fd5b505afa158015611dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ddf919061436d565b6001600160a01b031663095ea7b382846040518363ffffffff1660e01b8152600401611e0c92919061492f565b602060405180830381600087803b158015611e2657600080fd5b505af1158015611e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5e91906146bc565b50600760009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b158015611ead57600080fd5b505afa158015611ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee5919061436d565b6001600160a01b031663095ea7b382846040518363ffffffff1660e01b8152600401611f1292919061492f565b602060405180830381600087803b158015611f2c57600080fd5b505af1158015611f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6491906146bc565b505b6040518281527fd00a8c07b9962c31dae343ff6cb70fd3af214b2f7013afa7258ec5a939fb71109060200160405180910390a15050565b600160046000828254611fb09190614b7a565b909155505060045460035460ff1615611fdb5760405162461bcd60e51b81526004016104f7906149e0565b600660009054906101000a90046001600160a01b03166001600160a01b03166399c18e7e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561202957600080fd5b505afa15801561203d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206191906146bc565b61207e5760405163355da01160e11b815260040160405180910390fd5b61113e8661208c8688614c7a565b8585613420565b60055460ff16156120dc5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016104f7565b6005805460ff19166001908117909155600455565b6000846001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b15801561212c57600080fd5b505afa158015612140573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612164919061436d565b9050336001600160a01b0382161461218f5760405163bd03358160e01b815260040160405180910390fd5b6000856001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b1580156121ca57600080fd5b505afa1580156121de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612202919061436d565b9050600760009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b15801561225257600080fd5b505afa158015612266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228a919061436d565b6001600160a01b0316816001600160a01b0316146122bb576040516311c77c3560e21b815260040160405180910390fd5b60075460408051639324cac760e01b815290516000926001600160a01b031691639324cac7916004808301926020929190829003018186803b15801561230057600080fd5b505afa158015612314573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612338919061436d565b6001600160a01b03166370a08231846040518263ffffffff1660e01b81526004016123639190614836565b60206040518083038186803b15801561237b57600080fd5b505afa15801561238f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b391906146d8565b90506123bf878761382f565b600081600760009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b15801561241057600080fd5b505afa158015612424573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612448919061436d565b6001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016124739190614836565b60206040518083038186803b15801561248b57600080fd5b505afa15801561249f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c391906146d8565b6124cd9190614bdc565b600754604051636dcf6def60e01b81529192506001600160a01b031690636dcf6def90612500908790859060040161492f565b600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050506000811115612739576000600560019054906101000a90046001600160a01b03166001600160a01b0316639a618c0f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561258b57600080fd5b505afa15801561259f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c3919061436d565b9050851561269c5760405163b45e98d960e01b8152600481018390526000906001600160a01b0383169063b45e98d990602401602060405180830381600087803b15801561261057600080fd5b505af1158015612624573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264891906146d8565b60405190915086906000906001600160a01b0383169084156108fc0290859084818181858888f1935050505090508061269457604051630ce8f45160e31b815260040160405180910390fd5b505050612737565b604051630992646d60e31b81526000906001600160a01b03831690634c932368906126cd908b90879060040161492f565b602060405180830381600087803b1580156126e757600080fd5b505af11580156126fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271f91906146d8565b90506127356001600160a01b0389168783613efa565b505b505b5050505050505050565b6000546201000090046001600160a01b031633146127bb5760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016104f7565b565b600654604051630a293f9d60e11b81526001600160a01b03909116906314527f3a906127ed908590600401614836565b60206040518083038186803b15801561280557600080fd5b505afa158015612819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283d91906146bc565b61285a576040516309f4985b60e21b815260040160405180910390fd5b6000600560019054906101000a90046001600160a01b03166001600160a01b031663f98d06f06040518163ffffffff1660e01b815260040160206040518083038186803b1580156128aa57600080fd5b505afa1580156128be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e2919061436d565b6040805160018082528183019092529192506000919060208083019080368337019050509050600660009054906101000a90046001600160a01b03166001600160a01b031663bd47a9b8856001600160a01b03166338d52e0f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561296557600080fd5b505afa158015612979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299d91906146d8565b6040518263ffffffff1660e01b81526004016129bb91815260200190565b60206040518083038186803b1580156129d357600080fd5b505afa1580156129e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0b91906146d8565b81600081518110612a2c57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250506000600660009054906101000a90046001600160a01b03166001600160a01b031663cf898ca96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8857600080fd5b505afa158015612a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac0919061475f565b90506000836001600160a01b0316634716e9c5856001600160a01b031663d47eed45886040518263ffffffff1660e01b8152600401612aff9190614948565b60206040518083038186803b158015612b1757600080fd5b505afa158015612b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4f91906146d8565b87868a6001600160a01b03166351d8044f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612b8a57600080fd5b505afa158015612b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc2919061475f565b878c6001600160a01b03166351d8044f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612bfc57600080fd5b505afa158015612c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c34919061475f565b612c3e9190614b92565b6040518663ffffffff1660e01b8152600401612c5d949392919061495b565b6000604051808303818588803b158015612c7657600080fd5b505af1158015612c8a573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612cb391908101906145d0565b9050600081600081518110612cd857634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000816000015160070b13612d0d5760405162bfc92160e01b815260040160405180910390fd5b600654815160405163b0308e0760e01b81526001600160a01b038a8116600483015260079290920b602482015291169063b0308e0790604401600060405180830381600087803b158015612d6057600080fd5b505af1158015612d74573d6000803e3d6000fd5b5050505050505050505050565b6000826001600160a01b031663645539ed6040518163ffffffff1660e01b815260040160206040518083038186803b158015612dbc57600080fd5b505afa158015612dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612df491906146f0565b90506000836001600160a01b031663c52987cf6040518163ffffffff1660e01b815260040160206040518083038186803b158015612e3157600080fd5b505afa158015612e45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e69919061472b565b905060008160070b8460070b128015612ea157506001836001811115612e9f57634e487b7160e01b600052602160045260246000fd5b145b80612edb57508160070b8460070b138015612edb57506000836001811115612ed957634e487b7160e01b600052602160045260246000fd5b145b600654604051630a293f9d60e11b81529192506001600160a01b0316906314527f3a90612f0c908890600401614836565b60206040518083038186803b158015612f2457600080fd5b505afa158015612f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5c91906146bc565b1580612f655750805b15612f83576040516309f4985b60e21b815260040160405180910390fd5b60065460405163b0308e0760e01b81526001600160a01b038781166004830152600787900b60248301529091169063b0308e0790604401600060405180830381600087803b158015612fd457600080fd5b505af1158015612737573d6000803e3d6000fd5b60008390506000816001600160a01b031663855d68cb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561302857600080fd5b505afa15801561303c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613060919061472b565b90506000826001600160a01b031663e004b5bf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561309d57600080fd5b505afa1580156130b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d59190614779565b60ff166001600160401b038111156130fd57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613126578160200160208202803683370190505b50905060005b8481101561340657604051635f51b5c760e01b8152600481018290526001600160a01b03851690635f51b5c79060240160206040518083038186803b15801561317457600080fd5b505afa158015613188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ac91906146f0565b8282815181106131cc57634e487b7160e01b600052603260045260246000fd5b602002602001019060018111156131f357634e487b7160e01b600052602160045260246000fd5b9081600181111561321457634e487b7160e01b600052602160045260246000fd5b8152505060008360070b87878481811061323e57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190613253919061470f565b60070b121580156132aa5750600183838151811061328157634e487b7160e01b600052603260045260246000fd5b602002602001015160018111156132a857634e487b7160e01b600052602160045260246000fd5b145b8061334057508360070b8787848181106132d457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906132e9919061470f565b60070b131580156133405750600083838151811061331757634e487b7160e01b600052603260045260246000fd5b6020026020010151600181111561333e57634e487b7160e01b600052602160045260246000fd5b145b905080156133bb57600754604051632236aa6560e01b81526001600160a01b0390911690632236aa659061337f908b908b908b90600190600401614864565b600060405180830381600087803b15801561339957600080fd5b505af11580156133ad573d6000803e3d6000fd5b505050505050505050505050565b8686838181106133db57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906133f0919061470f565b93505080806133fe90614cb3565b91505061312c565b506040516309f4985b60e21b815260040160405180910390fd5b6000846001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b15801561345b57600080fd5b505afa15801561346f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613493919061436d565b9050336001600160a01b038216146134be5760405163bd03358160e01b815260040160405180910390fd5b6000856001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b1580156134f957600080fd5b505afa15801561350d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613531919061436d565b9050600660009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b15801561358157600080fd5b505afa158015613595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135b9919061436d565b6001600160a01b0316816001600160a01b0316146135ea576040516311c77c3560e21b815260040160405180910390fd5b60065460408051639324cac760e01b815290516000926001600160a01b031691639324cac7916004808301926020929190829003018186803b15801561362f57600080fd5b505afa158015613643573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613667919061436d565b6001600160a01b03166370a08231846040518263ffffffff1660e01b81526004016136929190614836565b60206040518083038186803b1580156136aa57600080fd5b505afa1580156136be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e291906146d8565b90506136ee87876127bd565b600081600660009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b15801561373f57600080fd5b505afa158015613753573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613777919061436d565b6001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016137a29190614836565b60206040518083038186803b1580156137ba57600080fd5b505afa1580156137ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137f291906146d8565b6137fc9190614bdc565b600654604051636dcf6def60e01b81529192506001600160a01b031690636dcf6def90612500908790859060040161492f565b600754604051630a293f9d60e11b81526001600160a01b03909116906314527f3a9061385f908590600401614836565b60206040518083038186803b15801561387757600080fd5b505afa15801561388b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138af91906146bc565b6138cc576040516309f4985b60e21b815260040160405180910390fd5b6000600560019054906101000a90046001600160a01b03166001600160a01b031663f98d06f06040518163ffffffff1660e01b815260040160206040518083038186803b15801561391c57600080fd5b505afa158015613930573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613954919061436d565b6040805160018082528183019092529192506000919060208083019080368337019050509050600660009054906101000a90046001600160a01b03166001600160a01b031663bd47a9b8856001600160a01b03166338d52e0f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156139d757600080fd5b505afa1580156139eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a0f91906146d8565b6040518263ffffffff1660e01b8152600401613a2d91815260200190565b60206040518083038186803b158015613a4557600080fd5b505afa158015613a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7d91906146d8565b81600081518110613a9e57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050600083516001600160401b03811115613ad357634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613afc578160200160208202803683370190505b5090506000805b8551811015613e9657866001600160a01b0316638b13b64b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613b4557600080fd5b505afa158015613b59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b7d919061475f565b613b90906001600160401b031682614bbd565b876001600160a01b03166320c1bb466040518163ffffffff1660e01b815260040160206040518083038186803b158015613bc957600080fd5b505afa158015613bdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c01919061475f565b613c0b9190614b92565b91506000856001600160a01b0316634716e9c5876001600160a01b031663d47eed458a8681518110613c4d57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b8152600401613c719190614948565b60206040518083038186803b158015613c8957600080fd5b505afa158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906146d8565b898581518110613ce157634e487b7160e01b600052603260045260246000fd5b60200260200101518887600660009054906101000a90046001600160a01b03166001600160a01b031663cf898ca96040518163ffffffff1660e01b815260040160206040518083038186803b158015613d3957600080fd5b505afa158015613d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d71919061475f565b613d7b908a614b92565b6040518663ffffffff1660e01b8152600401613d9a949392919061495b565b6000604051808303818588803b158015613db357600080fd5b505af1158015613dc7573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052613df091908101906145d0565b9050600081600081518110613e1557634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000816000015160070b13613e4a5760405162bfc92160e01b815260040160405180910390fd5b8060000151858481518110613e6f57634e487b7160e01b600052603260045260246000fd5b602002602001019060070b908160070b81525050505080613e8f90614cb3565b9050613b03565b50600754604051632236aa6560e01b81526001600160a01b0390911690632236aa6590613ecc90899086906000906004016148cb565b600060405180830381600087803b158015613ee657600080fd5b505af1158015612735573d6000803e3d6000fd5b610bdc8363a9059cbb60e01b8484604051602401613f1992919061492f565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526000613fa0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661401d9092919063ffffffff16565b805190915015610bdc5780806020019051810190613fbe91906146bc565b610bdc5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016104f7565b606061402c8484600085614036565b90505b9392505050565b6060824710156140975760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016104f7565b843b6140e55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104f7565b600080866001600160a01b03168587604051614101919061481a565b60006040518083038185875af1925050503d806000811461413e576040519150601f19603f3d011682016040523d82523d6000602084013e614143565b606091505b509150915061415382828661415e565b979650505050505050565b6060831561416d57508161402f565b82511561417d5782518084602001fd5b8160405162461bcd60e51b81526004016104f791906149cd565b60006141aa6141a584614b57565b614b27565b9050808382526020808301915083868660051b860111156141ca57600080fd5b60005b8681101561425e5781356001600160401b03808211156141ec57600080fd5b8188019150601f8a8184011261420157600080fd5b82358281111561421357614213614ce4565b614224818301601f19168801614b27565b92508083528b8782860101111561423a57600080fd5b808785018885013760009083018701525085525092820192908201906001016141cd565b505050509392505050565b60008083601f84011261427a578182fd5b5081356001600160401b03811115614290578182fd5b6020830191508360208260051b85010111156142ab57600080fd5b9250929050565b6000608082840312156142c3578081fd5b604051608081018181106001600160401b03821117156142e5576142e5614ce4565b806040525080915082516142f881614d1d565b815261430660208401614335565b602082015260408301518060030b811461431f57600080fd5b6040820152606092830151920191909152919050565b80516001600160401b038116811461434c57600080fd5b919050565b600060208284031215614362578081fd5b813561402f81614cfa565b60006020828403121561437e578081fd5b815161402f81614cfa565b60008060006060848603121561439d578182fd5b83356143a881614cfa565b925060208401356143b881614cfa565b915060408401356143c881614cfa565b809150509250925092565b6000806000604084860312156143e7578081fd5b83356143f281614cfa565b925060208401356001600160401b0381111561440c578182fd5b61441886828701614269565b9497909650939450505050565b60008060008060006080868803121561443c578283fd5b853561444781614cfa565b945060208601356001600160401b03811115614461578384fd5b61446d88828901614269565b909550935050604086013561448181614cfa565b9150606086013561449181614d0f565b809150509295509295909350565b600080604083850312156144b1578182fd5b82356144bc81614cfa565b915060208301356144cc81614d1d565b809150509250929050565b600080600080604085870312156144ec578182fd5b84356001600160401b0380821115614502578384fd5b61450e88838901614269565b90965094506020870135915080821115614526578384fd5b5061453387828801614269565b95989497509550505050565b60008060008060008060808789031215614557578384fd5b86356001600160401b038082111561456d578586fd5b6145798a838b01614269565b90985096506020890135915080821115614591578586fd5b5061459e89828a01614269565b90955093505060408701356145b281614cfa565b915060608701356145c281614d0f565b809150509295509295509295565b600060208083850312156145e2578182fd5b82516001600160401b038111156145f7578283fd5b8301601f81018513614607578283fd5b80516146156141a582614b57565b81815283810190838501610120808502860187018a1015614634578788fd5b8795505b848610156146925780828b03121561464e578788fd5b614656614aff565b825181526146668b8985016142b2565b888201526146778b60a085016142b2565b60408201528452600195909501949286019290810190614638565b509098975050505050505050565b6000602082840312156146b1578081fd5b813561402f81614d0f565b6000602082840312156146cd578081fd5b815161402f81614d0f565b6000602082840312156146e9578081fd5b5051919050565b600060208284031215614701578081fd5b81516002811061402f578182fd5b600060208284031215614720578081fd5b813561402f81614d1d565b60006020828403121561473c578081fd5b815161402f81614d1d565b600060208284031215614758578081fd5b5035919050565b600060208284031215614770578081fd5b61402f82614335565b60006020828403121561478a578081fd5b815160ff8116811461402f578182fd5b600081518084526020808501808196508360051b81019150828601855b858110156147e15782840389526147cf8483516147ee565b988501989350908401906001016147b7565b5091979650505050505050565b60008151808452614806816020860160208601614c87565b601f01601f19169290920160200192915050565b6000825161482c818460208701614c87565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b038516815260606020808301829052908201849052600090859060808401835b878110156148b357833561489e81614d1d565b60070b8252928201929082019060010161488b565b50809350505050821515604083015295945050505050565b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b8181101561491757845160070b835293830193918301916001016148f8565b50508093505050508215156040830152949350505050565b6001600160a01b03929092168252602082015260400190565b60208152600061402f602083018461479a565b60808152600061496e608083018761479a565b828103602084810191909152865180835287820192820190845b818110156149a457845183529383019391830191600101614988565b50506001600160401b039687166040860152949095166060909301929092525090949350505050565b60208152600061402f60208301846147ee565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000808335601e19843603018112614a8a578283fd5b8301803591506001600160401b03821115614aa3578283fd5b6020019150600581901b36038213156142ab57600080fd5b6000808335601e19843603018112614ad1578283fd5b8301803591506001600160401b03821115614aea578283fd5b6020019150368190038213156142ab57600080fd5b604051606081016001600160401b0381118282101715614b2157614b21614ce4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b4f57614b4f614ce4565b604052919050565b60006001600160401b03821115614b7057614b70614ce4565b5060051b60200190565b60008219821115614b8d57614b8d614cce565b500190565b60006001600160401b03808316818516808303821115614bb457614bb4614cce565b01949350505050565b6000816000190483118215151615614bd757614bd7614cce565b500290565b600082821015614bee57614bee614cce565b500390565b6000614c016141a584614b57565b808482526020808301925084368760051b87011115614c1e578485fd5b845b87811015614c6e5781356001600160401b03811115614c3d578687fd5b870136601f820112614c4d578687fd5b614c5b368235868401614197565b8652509382019390820190600101614c20565b50919695505050505050565b600061402f368484614197565b60005b83811015614ca2578181015183820152602001614c8a565b838111156109735750506000910152565b6000600019821415614cc757614cc7614cce565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108fe57600080fd5b80151581146108fe57600080fd5b8060070b81146108fe57600080fdfeb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159ca26469706673582212207b1ca1813c90cb4064b9719abed19cb78daedc0c7040b01df69aae5513fc376664736f6c63430008040033