0 txs
1.7k calls
constructor
No constructor.
functions
addressManager
viewfunction addressManager() view returns (address)
getPendingChainedSpeedMarketsSize
viewfunction getPendingChainedSpeedMarketsSize() view returns (uint256)
getPendingSpeedMarketsSize
viewfunction getPendingSpeedMarketsSize() view returns (uint256)
lastPauseTime
viewfunction lastPauseTime() view returns (uint256)
maxCreationDelay
viewfunction maxCreationDelay() view returns (uint64)
nominatedOwner
viewfunction nominatedOwner() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingChainedSpeedMarkets
viewfunction pendingChainedSpeedMarkets(uint256) view returns (address user, bytes32 asset, uint64 timeFrame, uint256 strikePrice, uint256 strikePriceSlippage, address collateral, uint256 buyinAmount, address referrer, uint256 createdAt)
pendingSpeedMarkets
viewfunction pendingSpeedMarkets(uint256) view returns (address user, bytes32 asset, uint64 strikeTime, uint64 delta, uint256 strikePrice, uint256 strikePriceSlippage, uint8 direction, address collateral, uint256 buyinAmount, address referrer, uint256 skewImpact, uint256 createdAt)
requestIdToMarket
viewfunction requestIdToMarket(bytes32) view returns (address)
whitelistedAddresses
viewfunction whitelistedAddresses(address) view returns (bool)
acceptOwnership
nonpayablefunction acceptOwnership()
addPendingChainedSpeedMarket
nonpayablefunction addPendingChainedSpeedMarket(tuple _params) returns (bytes32 requestId)
addPendingSpeedMarket
nonpayablefunction addPendingSpeedMarket(tuple _params) returns (bytes32 requestId)
addToWhitelist
nonpayablefunction addToWhitelist(address _whitelistAddress, bool _flag)
createFromPendingChainedSpeedMarkets
payablefunction createFromPendingChainedSpeedMarkets(uint8 _oracleSource, bytes[] _priceUpdateData) payable
createFromPendingSpeedMarkets
payablefunction createFromPendingSpeedMarkets(tuple _params) payable
deletePendingSpeedMarkets
nonpayablefunction deletePendingSpeedMarkets(bool _all, address[] _users)
initialize
nonpayablefunction initialize(address _owner, address _addressManager)
initNonReentrant
nonpayablefunction initNonReentrant()
nominateNewOwner
nonpayablefunction nominateNewOwner(address _owner)
setAddressManager
nonpayablefunction setAddressManager(address _addressManager)
setMaxCreationDelay
nonpayablefunction setMaxCreationDelay(uint64 _maxCreationDelay)
setOwner
nonpayablefunction setOwner(address _owner)
setPaused
nonpayablefunction setPaused(bool _paused)
transferAmount
nonpayablefunction transferAmount(address _destination, address _collateral, uint256 _amount)
transferOwnershipAtInit
nonpayablefunction transferOwnershipAtInit(address proxyAddress)
events
AddChainedSpeedMarket
event AddChainedSpeedMarket((address user, bytes32 asset, uint64 timeFrame, uint256 strikePrice, uint256 strikePriceSlippage, uint8[] directions, address collateral, uint256 buyinAmount, address referrer, uint256 createdAt) _pendingChainedSpeedMarket, bytes32 _requestId)
AddedIntoWhitelist
event AddedIntoWhitelist(address _whitelistAddress, bool _flag)
AddSpeedMarket
event AddSpeedMarket((address user, bytes32 asset, uint64 strikeTime, uint64 delta, uint256 strikePrice, uint256 strikePriceSlippage, uint8 direction, address collateral, uint256 buyinAmount, address referrer, uint256 skewImpact, uint256 createdAt) _pendingSpeedMarket, bytes32 _requestId)
AmountTransfered
event AmountTransfered(address _destination, address _collateral, uint256 _amount)
CreateSpeedMarkets
event CreateSpeedMarkets(uint256 _pendingSize, uint8 _createdSize)
LogChainedError
event LogChainedError(string _errorMessage, (address user, bytes32 asset, uint64 timeFrame, uint256 strikePrice, uint256 strikePriceSlippage, uint8[] directions, address collateral, uint256 buyinAmount, address referrer, uint256 createdAt) _pendingChainedSpeedMarket, bytes32 _requestId)
LogChainedErrorData
event LogChainedErrorData(bytes _data, (address user, bytes32 asset, uint64 timeFrame, uint256 strikePrice, uint256 strikePriceSlippage, uint8[] directions, address collateral, uint256 buyinAmount, address referrer, uint256 createdAt) _pendingChainedSpeedMarket, bytes32 _requestId)
LogError
event LogError(string _errorMessage, (address user, bytes32 asset, uint64 strikeTime, uint64 delta, uint256 strikePrice, uint256 strikePriceSlippage, uint8 direction, address collateral, uint256 buyinAmount, address referrer, uint256 skewImpact, uint256 createdAt) _pendingSpeedMarket, bytes32 _requestId)
LogErrorData
event LogErrorData(bytes _data, (address user, bytes32 asset, uint64 strikeTime, uint64 delta, uint256 strikePrice, uint256 strikePriceSlippage, uint8 direction, address collateral, uint256 buyinAmount, address referrer, uint256 skewImpact, uint256 createdAt) _pendingSpeedMarket, bytes32 _requestId)
OwnerChanged
event OwnerChanged(address oldOwner, address newOwner)
OwnerNominated
event OwnerNominated(address newOwner)
PauseChanged
event PauseChanged(bool isPaused)
SetAddressManager
event SetAddressManager(address _addressManager)
SetMaxCreationDelay
event SetMaxCreationDelay(uint64 _maxCreationDelay)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b506148d0806100206000396000f3fe60806040526004361061017b5760003560e01c80635c975abb116100cc578063b7791f281161007a578063b7791f28146104e7578063bc93233f146104fa578063c3b83f5f1461051a578063ca7c73231461053a578063d35eb7f31461055a578063ebc797721461056d578063f6264e751461058257600080fd5b80635c975abb1461039d5780636032a027146103b7578063766f924a146103d757806379ba5097146104145780638411f183146104295780638da5cb5b146104ab57806391b4ded9146104d157600080fd5b80631936f21c116101295780631936f21c1461028d5780631ab022ca146102ad5780631c07d3c3146102f05780632a789dc4146103285780633ab76e9f1461033d578063485cc9551461035d57806353a47bb71461037d57600080fd5b806301f47471146101875780630652b57a146101a957806306c933d8146101c957806313af40351461020e5780631627540c1461022e57806316c38b3c1461024e578063192973611461026e57600080fd5b3661018257005b600080fd5b34801561019357600080fd5b506101a76101a236600461346e565b6105a2565b005b3480156101b557600080fd5b506101a76101c43660046134af565b61060e565b3480156101d557600080fd5b506101f96101e43660046134af565b60096020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561021a57600080fd5b506101a76102293660046134af565b61066c565b34801561023a57600080fd5b506101a76102493660046134af565b610784565b34801561025a57600080fd5b506101a76102693660046134da565b6107d7565b34801561027a57600080fd5b506006545b604051908152602001610205565b34801561029957600080fd5b5061027f6102a83660046134f7565b610849565b3480156102b957600080fd5b506102e36102c8366004613532565b600a602052600090815260409020546001600160a01b031681565b6040516102059190613558565b3480156102fc57600080fd5b5061031061030b366004613532565b6108bb565b6040516102059c9b9a999897969594939291906135ad565b34801561033457600080fd5b5060075461027f565b34801561034957600080fd5b506008546102e3906001600160a01b031681565b34801561036957600080fd5b506101a7610378366004613633565b610949565b34801561038957600080fd5b506001546102e3906001600160a01b031681565b3480156103a957600080fd5b506003546101f99060ff1681565b3480156103c357600080fd5b5061027f6103d236600461366c565b610a28565b3480156103e357600080fd5b506005546103fc9061010090046001600160401b031681565b6040516001600160401b039091168152602001610205565b34801561042057600080fd5b506101a7610a71565b34801561043557600080fd5b50610449610444366004613532565b610b5c565b604080516001600160a01b039a8b16815260208101999099526001600160401b039097169688019690965260608701949094526080860192909252851660a085015260c08401529290921660e082015261010081019190915261012001610205565b3480156104b757600080fd5b506000546102e3906201000090046001600160a01b031681565b3480156104dd57600080fd5b5061027f60025481565b6101a76104f536600461367f565b610bd2565b34801561050657600080fd5b506101a76105153660046136b9565b6113bf565b34801561052657600080fd5b506101a76105353660046134af565b61143d565b34801561054657600080fd5b506101a7610555366004613732565b611540565b6101a7610568366004613793565b611841565b34801561057957600080fd5b506101a7611fdd565b34801561058e57600080fd5b506101a761059d3660046137c8565b61203b565b6105aa61209a565b6105be6001600160a01b0383168483612114565b604080516001600160a01b038085168252851660208201529081018290527f3dfef6507ded35b9ec518bb3532736bd85a598bdcb440fdd2289ce92a771e7979060600160405180910390a1505050565b61061661209a565b600880546001600160a01b0319166001600160a01b0383161790556040517f954328d28753080b3c499697bde218fd8b53e924669801835383aa346e6940ee90610661908390613558565b60405180910390a150565b6001600160a01b0381166106c35760405162461bcd60e51b815260206004820152601960248201527804f776e657220616464726573732063616e6e6f74206265203603c1b60448201526064015b60405180910390fd5b600154600160a01b900460ff161561072f5760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b60648201526084016106ba565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b038316620100000262010000600160b01b031990911617815560405160008051602061483b833981519152916106619184906137e5565b61078c61209a565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610661908390613558565b6107df61209a565b60035460ff16151581151514610846576003805460ff191682151590811790915560ff161561080d57426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610661565b50565b600060016004600082825461085e9190613815565b909155505060045460035460ff16156108895760405162461bcd60e51b81526004016106ba9061382e565b61089283612166565b915060045481146108b55760405162461bcd60e51b81526004016106ba9061388b565b50919050565b600681815481106108cb57600080fd5b60009182526020909120600a909102018054600182015460028301546003840154600485015460058601546006870154600788015460088901546009909901546001600160a01b039889169a5096986001600160401b0380881699600160401b90980416979596949560ff851695610100909504851694909216918c565b600054610100900460ff166109645760005460ff1615610968565b303b155b6109cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106ba565b600054610100900460ff161580156109ed576000805461ffff19166101011790555b6109f68361066c565b600880546001600160a01b0319166001600160a01b0384161790558015610a23576000805461ff00191690555b505050565b6000600160046000828254610a3d9190613815565b909155505060045460035460ff1615610a685760405162461bcd60e51b81526004016106ba9061382e565b6108928361245f565b6001546001600160a01b03163314610ae95760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016106ba565b60005460015460405160008051602061483b83398151915292610b20926001600160a01b03620100009092048216929116906137e5565b60405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b60078181548110610b6c57600080fd5b60009182526020909120600a90910201805460018201546002830154600384015460048501546006860154600787015460088801546009909801546001600160a01b03978816995095976001600160401b03909516969395929491841693909291169089565b600160046000828254610be59190613815565b909155505060045460035460ff1615610c105760405162461bcd60e51b81526004016106ba9061382e565b3360009081526009602052604090205460ff16610c3f5760405162461bcd60e51b81526004016106ba906138c2565b6006541561139a576000610c5660208401846138f3565b905011610c755760405162461bcd60e51b81526004016106ba9061393c565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c09291908290030181865afa158015610cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce39190613a0d565b90506000610cf46020850185613ab5565b6001811115610d0557610d0561356c565b03610d25576080810151610d2590610d2060208601866138f3565b612797565b60008160a0015190506000816001600160a01b031663a201b3076040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d929190613ad2565b90506000805b60065460ff8216101561134857600060068260ff1681548110610dbd57610dbd613aef565b60009182526020918290206040805161018081018252600a90930290910180546001600160a01b031683526001808201549484019490945260028101546001600160401b0380821693850193909352600160401b9004909116606083015260038101546080830152600481015460a083015260058101549192909160c084019160ff90911690811115610e5257610e5261356c565b6001811115610e6357610e6361356c565b815260058201546001600160a01b0361010090910481166020808401919091526006840154604080850191909152600785015490921660608401526008840154608084015260099093015460a09092019190915251919250600091610eca91849101613bc1565b604051602081830303815290604052805190602001209050610ef0826101600151612867565b15610f44576000818152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061487b83398151915290610f359084908490613bfb565b60405180910390a15050611336565b610f69826040015183606001518b6040016020810190610f6491906137c8565b61288f565b15610fae576000818152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061487b83398151915290610f359084908490613c2c565b600080610feb8985602001518d6000016020810190610fcd9190613ab5565b8e8060200190610fdd91906138f3565b610fe691613c94565b612900565b91509150610ffa828289612aa9565b15611050576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061487b8339815191529061103f9086908690613d83565b60405180910390a150505050611336565b6110638285608001518660a00151612ad8565b156110a8576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061487b8339815191529061103f9086908690613dbf565b600060405180610180016040528086600001516001600160a01b031681526020018660200151815260200186604001516001600160401b0316815260200186606001516001600160401b031681526020018460070b8152602001836001600160401b031681526020018d60000160208101906111249190613ab5565b60018111156111355761113561356c565b81526020018660c0015160018111156111505761115061356c565b81526020018660e001516001600160a01b0316815260200186610100015181526020018661012001516001600160a01b031681526020018661014001518152509050886001600160a01b0316636ce6c3ca826040518263ffffffff1660e01b81526004016111be9190613dd2565b6020604051808303816000875af19250505080156111f9575060408051601f3d908101601f191682019092526111f691810190613ec0565b60015b6112fa57611205613edd565b806308c379a0036112745750611219613ef9565b806112245750611276565b6000858152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061487b8339815191529061126690839089908990613fd2565b60405180910390a150611330565b505b3d8080156112a0576040519150601f19603f3d011682016040523d82523d6000602084013e6112a5565b606091505b506000858152600a60205260409081902080546001600160a01b03191661dead179055517f4aea26aea125896a2852f331d17a39226261bb9ddd3f54f9d6ef483332b1d31c9061126690839089908990613fd2565b6000858152600a6020526040902080546001600160a01b0319166001600160a01b0383161790558761132b81614005565b985050505b50505050505b8061134081614005565b915050610d98565b506006805490611359906000613229565b6040805182815260ff841660208201527f48be52c64e0a5ff7b386f592283a0ee5b473efc8a04c47cca0e942d90574d376910160405180910390a150505050505b60045481146113bb5760405162461bcd60e51b81526004016106ba9061388b565b5050565b6113c761209a565b6001600160a01b0382166113da57600080fd5b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527f58d7a3ccc34541e162fcfc87b84be7b78c34d1e1e7f15de6e4dd67d0fe70aecd910160405180910390a15050565b61144561209a565b6001600160a01b03811661148d5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106ba565b600154600160a81b900460ff16156114dd5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b60448201526064016106ba565b600080546001600160a01b038084166201000090810262010000600160b01b031990931692909217928390556001805460ff60a81b1916600160a81b17905560405160008051602061483b833981519152936106619390049091169084906137e5565b3360009081526009602052604090205460ff1661156f5760405162461bcd60e51b81526004016106ba906138c2565b821561158157610a2360066000613229565b60005b60065481101561183b576000805b83811015611617578484828181106115ac576115ac613aef565b90506020020160208101906115c191906134af565b6001600160a01b0316600684815481106115dd576115dd613aef565b60009182526020909120600a90910201546001600160a01b0316036116055760019150611617565b8061160f81614024565b915050611592565b508015611827576006805461162e9060019061403d565b8154811061163e5761163e613aef565b90600052602060002090600a02016006838154811061165f5761165f613aef565b600091825260209091208254600a9092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560028084018054918401805467ffffffffffffffff1981166001600160401b0394851690811783559254600160401b908190049094169093026001600160801b03199093169091179190911790556003808401549083015560048084015490830155600580840154908301805460ff90921692909160ff19169083818111156117235761172361356c565b021790555060058281015490820180546001600160a01b03610100938490048116909302610100600160a81b03199091161790556006808401548184015560078085015490840180546001600160a01b03191691909316179091556008808401549083015560099283015492909101919091558054806117a5576117a5614050565b600082815260208120600a6000199093019283020180546001600160a01b03199081168255600182018390556002820180546001600160801b031916905560038201839055600482018390556005820180546001600160a81b031916905560068201839055600782018054909116905560088101829055600901559055611835565b8161183181614024565b9250505b50611584565b50505050565b6001600460008282546118549190613815565b909155505060045460035460ff161561187f5760405162461bcd60e51b81526004016106ba9061382e565b3360009081526009602052604090205460ff166118ae5760405162461bcd60e51b81526004016106ba906138c2565b60075415611fbc57816118d35760405162461bcd60e51b81526004016106ba9061393c565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c09291908290030181865afa15801561191d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119419190613a0d565b905060008560018111156119575761195761356c565b0361196b5761196b81608001518585612797565b60008160a0015190506000816001600160a01b031663a201b3076040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d89190613ad2565b90506000805b60075460ff82161015611f6a57600060078260ff1681548110611a0357611a03613aef565b60009182526020918290206040805161014081018252600a90930290910180546001600160a01b0316835260018101548385015260028101546001600160401b03168383015260038101546060840152600481015460808401526005810180548351818702810187019094528084529394919360a086019392830182828015611adb57602002820191906000526020600020906000905b82829054906101000a900460ff166001811115611ab957611ab961356c565b815260206001928301818104948501949093039092029101808411611a9a5790505b505050918352505060068201546001600160a01b0390811660208084019190915260078401546040808501919091526008850154909216606084015260099093015460809092019190915251919250600091611b3991849101614153565b604051602081830303815290604052805190602001209050611b5f826101200151612867565b15611bb3576000818152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061485b83398151915290611ba49084908490614166565b60405180910390a15050611f58565b600080611bcd8985602001518f8f8f90610fe69190613c94565b91509150611bdc828289612aa9565b15611c32576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061485b83398151915290611c21908690869061419a565b60405180910390a150505050611f58565b611c458285606001518660800151612ad8565b15611c8a576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061485b83398151915290611c2190869086906141ac565b600060405180610120016040528086600001516001600160a01b031681526020018660200151815260200186604001516001600160401b031681526020018460070b81526020018f6001811115611ce357611ce361356c565b815260a0870151602082015260c08701516001600160a01b0390811660408084019190915260e089015160608401526101008901518216608090930192909252600854915163bf40fac160e01b8152929350169063bf40fac190611d7490600401602080825260169082015275436861696e656453706565644d61726b657473414d4d60501b604082015260600190565b602060405180830381865afa158015611d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db59190613ec0565b6001600160a01b03166348a017d9826040518263ffffffff1660e01b8152600401611de091906141be565b6020604051808303816000875af1925050508015611e1b575060408051601f3d908101601f19168201909252611e1891810190613ec0565b60015b611f1c57611e27613edd565b806308c379a003611e965750611e3b613ef9565b80611e465750611e98565b6000858152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061485b83398151915290611e8890839089908990614278565b60405180910390a150611f52565b505b3d808015611ec2576040519150601f19603f3d011682016040523d82523d6000602084013e611ec7565b606091505b506000858152600a60205260409081902080546001600160a01b03191661dead179055517fe9a2356141fc237f09ca67a6fac74a54c353f3540b3f405211c297a3b4fe987d90611e8890839089908990614278565b6000858152600a6020526040902080546001600160a01b0319166001600160a01b03831617905587611f4d81614005565b985050505b50505050505b80611f6281614005565b9150506119de565b506007805490611f7b90600061324a565b6040805182815260ff841660208201527f48be52c64e0a5ff7b386f592283a0ee5b473efc8a04c47cca0e942d90574d376910160405180910390a150505050505b600454811461183b5760405162461bcd60e51b81526004016106ba9061388b565b60055460ff16156120265760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016106ba565b6005805460ff19166001908117909155600455565b61204361209a565b6005805468ffffffffffffffff0019166101006001600160401b038416908102919091179091556040519081527f41b95b0cd63e823b0fff2701a35e7ab970829374fa79149ca1b1d1dce73e001890602001610661565b6000546201000090046001600160a01b031633146121125760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016106ba565b565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a23908490612b52565b600080604051806101400160405280336001600160a01b03168152602001846000013581526020018460200160208101906121a191906137c8565b6001600160401b0316815260200184604001358152602001846060013581526020018480608001906121d391906138f3565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060200161221a60c0860160a087016134af565b6001600160a01b0316815260c08501356020820152604001612243610100860160e087016134af565b6001600160a01b039081168252426020928301526007805460018101825560009190915283517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688600a90920291820180546001600160a01b03191691909316178255838301517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68982015560408401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a8201805467ffffffffffffffff19166001600160401b0390921691909117905560608401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b82015560808401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68c82015560a08401518051949550859492936123a4937fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68d9093019291019061326b565b5060c08201516006820180546001600160a01b039283166001600160a01b03199182161790915560e0840151600784015561010084015160088401805491909316911617905561012090910151600990910155604051612408908290602001614153565b6040516020818303038152906040528051906020012091507fa4a06fbc3cb950ac65c422fd933aa21d293294483682c36c36c2ce691b39134c81836040516124519291906142ae565b60405180910390a150919050565b600080604051806101800160405280336001600160a01b031681526020018460000135815260200184602001602081019061249a91906137c8565b6001600160401b031681526020016124b860608601604087016137c8565b6001600160401b03168152606080860135602083015260808601356040830152016124e960c0860160a08701613ab5565b60018111156124fa576124fa61356c565b815260200161250f60e0860160c087016134af565b6001600160a01b0316815260e08501356020820152604001612539610120860161010087016134af565b6001600160a01b0390811682526101208601356020808401919091524260409384015260068054600181810183556000929092528551600a9091027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f81018054929095166001600160a01b0319909216919091178455918501517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40830155928401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d418201805460608701516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560808401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4282015560a08401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4382015560c08401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d449091018054949550859492939192909160ff199091169083818111156126ce576126ce61356c565b021790555060e0820151600582018054610100600160a81b0319166101006001600160a01b0393841681029190911790915583015160068301556101208301516007830180546001600160a01b0319169190921617905561014082015160088201556101609091015160099091015560405161274e908290602001613bc1565b6040516020818303038152906040528051906020012091507fe59a3a16cdfcdb489bf3b4458738fea0061d879699ae38063f5bf87c02102b2081836040516124519291906142d0565b60405163d47eed4560e01b815283906001600160a01b0382169063ef9e5e2890829063d47eed45906127cf9088908890600401614316565b602060405180830381865afa1580156127ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061281091906143b1565b85856040518463ffffffff1660e01b815260040161282f929190614316565b6000604051808303818588803b15801561284857600080fd5b505af115801561285c573d6000803e3d6000fd5b505050505050505050565b60055460009042906128879061010090046001600160401b031684613815565b111592915050565b6000836001600160401b03166000036128be57816001600160401b0316836001600160401b03161090506128f9565b42846001600160401b0316116128d6575060016128f9565b816001600160401b031642856001600160401b03166128f5919061403d565b1090505b9392505050565b60008060018460018111156129175761291761356c565b03612a855760a0860151604051631237795960e21b8152600481018790526000906001600160a01b038316906348dde56490602401602060405180830381865afa158015612969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298d91906143b1565b9050606060005b86518160ff161015612a33576000878260ff16815181106129b7576129b7613aef565b60200260200101518060200190518101906129d29190614419565b9150506000818060200190518101906129eb91906144e0565b905084816000015103612a1e57888360ff1681518110612a0d57612a0d613aef565b602002602001015193505050612a33565b50508080612a2b90614005565b915050612994565b508051600003612a4a576000945060009350612a7d565b6000612a5582612c24565b90506402540be4008160c00151612a6c91906145a5565b9550806020015163ffffffff169450505b505050612aa0565b6000612a918787613015565b80516060909101519093509150505b94509492505050565b600042612ab683856145e3565b6001600160401b0316111580612ad0575060008460070b13155b949350505050565b600080670de0b6b3a7640000612aee8482613815565b612af8908661460a565b612b029190614629565b90506000670de0b6b3a7640000612b19858261403d565b612b23908761460a565b612b2d9190614629565b90508160070b8660070b1380612b4857508060070b8660070b125b9695505050505050565b6000612ba7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661311e9092919063ffffffff16565b805190915015610a235780806020019051810190612bc5919061463d565b610a235760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106ba565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915260085460405163bf40fac160e01b815260206004820152601160248201527021b430b4b73634b735ab32b934b334b2b960791b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa158015612cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cfc9190613ec0565b90506000816001600160a01b03166338416b5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d629190613ec0565b905060606001600160a01b03821615612f76576000826001600160a01b031663638786686040518163ffffffff1660e01b8152600401602060405180830381865afa158015612db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd99190613ec0565b9050600086806020019051810190612df19190614419565b9150506000846001600160a01b031663e03dab1a3084866040518463ffffffff1660e01b8152600401612e269392919061465a565b60a0604051808303816000875af1158015612e45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6991906146e9565b5050602081015190915015612f4c57826001600160a01b031663d0e30db082602001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612eb757600080fd5b505af1158015612ecb573d6000803e3d6000fd5b50505050602082015160405163095ea7b360e01b81526001600160a01b0388811660048301526024820192909252908516915063095ea7b3906044016020604051808303816000875af1158015612f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4a919061463d565b505b82604051602001612f5d9190613558565b6040516020818303038152906040529350505050612f87565b506040805160208101909152600081525b604051637bf41d7760e11b81526000906001600160a01b0385169063f7e83aee90612fb89089908690600401614727565b6000604051808303816000875af1158015612fd7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fff919081019061474c565b905080806020019051810190612b4891906144e0565b60408051608081018252600080825260208201819052918101829052606081019190915260a083015160808401516040516317a8f53760e31b8152600481018590526001600160a01b03808316916396834ad39185169063bd47a9b890602401602060405180830381865afa158015613092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b691906143b1565b6040518263ffffffff1660e01b81526004016130d491815260200190565b608060405180830381865afa1580156130f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131159190614780565b95945050505050565b6060612ad0848460008585843b6131775760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ba565b600080866001600160a01b03168587604051613193919061480b565b60006040518083038185875af1925050503d80600081146131d0576040519150601f19603f3d011682016040523d82523d6000602084013e6131d5565b606091505b50915091506131e58282866131f0565b979650505050505050565b606083156131ff5750816128f9565b82511561320f5782518084602001fd5b8160405162461bcd60e51b81526004016106ba9190614827565b50805460008255600a0290600052602060002090810190610846919061331f565b50805460008255600a0290600052602060002090810190610846919061339a565b82805482825590600052602060002090601f0160209004810192821561330f5791602002820160005b838211156132e057835183826101000a81548160ff021916908360018111156132bf576132bf61356c565b02179055509260200192600101602081600001049283019260010302613294565b801561330d5782816101000a81549060ff02191690556001016020816000010492830192600103026132e0565b505b5061331b92915061341f565b5090565b5b8082111561331b5780546001600160a01b031990811682556000600183018190556002830180546001600160801b031916905560038301819055600483018190556005830180546001600160a81b031916905560068301819055600783018054909216909155600882018190556009820155600a01613320565b8082111561331b5780546001600160a01b031916815560006001820181905560028201805467ffffffffffffffff1916905560038201819055600482018190556133e76005830182613434565b506006810180546001600160a01b03199081169091556000600783018190556008830180549092169091556009820155600a0161339a565b5b8082111561331b5760008155600101613420565b50805460008255601f016020900490600052602060002090810190610846919061341f565b6001600160a01b038116811461084657600080fd5b60008060006060848603121561348357600080fd5b833561348e81613459565b9250602084013561349e81613459565b929592945050506040919091013590565b6000602082840312156134c157600080fd5b81356128f981613459565b801515811461084657600080fd5b6000602082840312156134ec57600080fd5b81356128f9816134cc565b60006020828403121561350957600080fd5b81356001600160401b0381111561351f57600080fd5b820161010081850312156128f957600080fd5b60006020828403121561354457600080fd5b5035919050565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052602160045260246000fd5b6002811061084657634e487b7160e01b600052602160045260246000fd5b6135a981613582565b9052565b6001600160a01b038d81168252602082018d90526001600160401b038c811660408401528b166060830152608082018a905260a082018990526101808201906135f589613582565b8860c084015280881660e0840152866101008401528086166101208401525083610140830152826101608301529d9c50505050505050505050505050565b6000806040838503121561364657600080fd5b823561365181613459565b9150602083013561366181613459565b809150509250929050565b600061014082840312156108b557600080fd5b60006020828403121561369157600080fd5b81356001600160401b038111156136a757600080fd5b8201606081850312156128f957600080fd5b600080604083850312156136cc57600080fd5b82356136d781613459565b91506020830135613661816134cc565b60008083601f8401126136f957600080fd5b5081356001600160401b0381111561371057600080fd5b6020830191508360208260051b850101111561372b57600080fd5b9250929050565b60008060006040848603121561374757600080fd5b8335613752816134cc565b925060208401356001600160401b0381111561376d57600080fd5b613779868287016136e7565b9497909650939450505050565b6002811061084657600080fd5b6000806000604084860312156137a857600080fd5b833561375281613786565b6001600160401b038116811461084657600080fd5b6000602082840312156137da57600080fd5b81356128f9816137b3565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b80820180821115613828576138286137ff565b92915050565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526017908201527610dc99585d1bdc881b9bdd081dda1a5d195b1a5cdd1959604a1b604082015260600190565b6000808335601e1984360301811261390a57600080fd5b8301803591506001600160401b0382111561392457600080fd5b6020019150600581901b360382131561372b57600080fd5b602080825260179082015276456d70747920707269636520757064617465206461746160481b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b606081018181106001600160401b03821117156139a2576139a261396d565b60405250565b601f8201601f191681016001600160401b03811182821017156139cd576139cd61396d565b6040525050565b60405161012081016001600160401b03811182821017156139f7576139f761396d565b60405290565b8051613a0881613459565b919050565b600060c08284031215613a1f57600080fd5b60405160c081018181106001600160401b0382111715613a4157613a4161396d565b6040528251613a4f81613459565b81526020830151613a5f81613459565b60208201526040830151613a7281613459565b60408201526060830151613a8581613459565b60608201526080830151613a9881613459565b6080820152613aa960a084016139fd565b60a08201529392505050565b600060208284031215613ac757600080fd5b81356128f981613786565b600060208284031215613ae457600080fd5b81516128f9816137b3565b634e487b7160e01b600052603260045260246000fd5b613b1082825161354b565b602081015160208301526040810151613b3460408401826001600160401b03169052565b506060810151613b4f60608401826001600160401b03169052565b506080810151608083015260a081015160a083015260c0810151613b7660c08401826135a0565b5060e0810151613b8960e084018261354b565b50610100818101519083015261012080820151613ba88285018261354b565b5050610140818101519083015261016090810151910152565b61018081016138288284613b05565b60188152771b585e10dc99585d1a5bdb91195b185e48195e1c1a5c995960421b602082015260400190565b60006101c0808352613c0e818401613bd0565b915050613c1e6020830185613b05565b826101a08301529392505050565b6101c080825260199082015278696e76616c69642064656c74612f737472696b652074696d6560381b6101e08201526102008101613c1e6020830185613b05565b60006001600160401b03821115613c8657613c8661396d565b50601f01601f191660200190565b60006001600160401b0380841115613cae57613cae61396d565b8360051b602060408051613cc4838501826139a8565b8781529286019282810136851115613cdb57600080fd5b875b85811015613d5757803587811115613cf55760008081fd5b890136601f820112613d075760008081fd5b8035613d1281613c6d565b8651613d1e82826139a8565b8281523689848601011115613d3557600091508182fd5b828985018a830137600092810189019290925250835250908401908401613cdd565b509098975050505050505050565b600b81526a5374616c6520707269636560a81b602082015260400190565b60006101c0808352613c0e818401613d65565b60168152757072696365206578636565647320736c69707061676560501b602082015260400190565b60006101c0808352613c0e818401613d96565b600061018082019050613de682845161354b565b602083015160208301526040830151613e0a60408401826001600160401b03169052565b506060830151613e2560608401826001600160401b03169052565b506080830151613e3a608084018260070b9052565b5060a0830151613e5560a08401826001600160401b03169052565b5060c0830151613e6860c08401826135a0565b5060e0830151613e7b60e08401826135a0565b5061010080840151613e8f8285018261354b565b5050610120838101519083015261014080840151613eaf8285018261354b565b505061016092830151919092015290565b600060208284031215613ed257600080fd5b81516128f981613459565b600060033d1115613ef65760046000803e5060005160e01c5b90565b600060443d1015613f075790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715613f3657505050505090565b8285019150815181811115613f4e5750505050505090565b843d8701016020828501011115613f685750505050505090565b613f77602082860101876139a8565b509095945050505050565b60005b83811015613f9d578181015183820152602001613f85565b50506000910152565b60008151808452613fbe816020860160208601613f82565b601f01601f19169290920160200192915050565b60006101c0808352613fe681840187613fa6565b915050613ff66020830185613b05565b826101a0830152949350505050565b600060ff821660ff810361401b5761401b6137ff565b60010192915050565b600060018201614036576140366137ff565b5060010190565b81810381811115613828576138286137ff565b634e487b7160e01b600052603160045260246000fd5b600081518084526020808501945080840160005b8381101561409f57815161408d81613582565b8752958201959082019060010161407a565b509495945050505050565b60006101406140ba84845161354b565b6020830151602085015260408301516140de60408601826001600160401b03169052565b50606083015160608501526080830151608085015260a08301518160a086015261410a82860182614066565b91505060c083015161411f60c086018261354b565b5060e083015160e08501526101008084015161413d8287018261354b565b5050610120928301519390920192909252919050565b6020815260006128f960208301846140aa565b60608152600061417860608301613bd0565b828103602084015261418a81866140aa565b9150508260408301529392505050565b60608152600061417860608301613d65565b60608152600061417860608301613d96565b602081526141d060208201835161354b565b60208201516040820152600060408301516141f660608401826001600160401b03169052565b50606083015161420b608084018260070b9052565b50608083015161421e60a08401826135a0565b5060a08301516101208060c085015261423b610140850183614066565b915060c085015161424f60e086018261354b565b5060e08501516101008581019190915285015161426e8286018261354b565b5090949350505050565b60608152600061428b6060830186613fa6565b828103602084015261429d81866140aa565b915050826040830152949350505050565b6040815260006142c160408301856140aa565b90508260208301529392505050565b6101a081016142df8285613b05565b826101808301529392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208082528181018390526000906040600585901b8401810190840186845b878110156143a457868403603f190183528135368a9003601e1901811261435b57600080fd5b890185810190356001600160401b0381111561437657600080fd5b80360382131561438557600080fd5b6143908682846142ed565b955050509184019190840190600101614335565b5091979650505050505050565b6000602082840312156143c357600080fd5b5051919050565b600082601f8301126143db57600080fd5b81516143e681613c6d565b6040516143f382826139a8565b82815285602084870101111561440857600080fd5b613115836020830160208801613f82565b6000806080838503121561442c57600080fd5b83601f84011261443b57600080fd5b60405161444781613983565b80606085018681111561445957600080fd5b855b8181101561447357805183526020928301920161445b565b5051919350506001600160401b0381111561448d57600080fd5b614499858286016143ca565b9150509250929050565b805163ffffffff81168114613a0857600080fd5b80516001600160c01b0381168114613a0857600080fd5b8051601781900b8114613a0857600080fd5b600061012082840312156144f357600080fd5b6144fb6139d4565b8251815261450b602084016144a3565b602082015261451c604084016144a3565b604082015261452d606084016144b7565b606082015261453e608084016144b7565b608082015261454f60a084016144a3565b60a082015261456060c084016144ce565b60c082015261457160e084016144ce565b60e08201526101006145848185016144ce565b908201529392505050565b634e487b7160e01b600052601260045260246000fd5b60008160170b8360170b806145bc576145bc61458f565b6001600160bf1b03198214600019821416156145da576145da6137ff565b90059392505050565b6001600160401b03818116838216019080821115614603576146036137ff565b5092915050565b6000816000190483118215151615614624576146246137ff565b500290565b6000826146385761463861458f565b500490565b60006020828403121561464f57600080fd5b81516128f9816134cc565b600060018060a01b0380861683526060602084015261467c6060840186613fa6565b9150808416604084015250949350505050565b6000604082840312156146a157600080fd5b604051604081018181106001600160401b03821117156146c3576146c361396d565b806040525080915082516146d681613459565b8152602092830151920191909152919050565b600080600060a084860312156146fe57600080fd5b614708858561468f565b9250614717856040860161468f565b9150608084015190509250925092565b60408152600061473a6040830185613fa6565b82810360208401526131158185613fa6565b60006020828403121561475e57600080fd5b81516001600160401b0381111561477457600080fd5b612ad0848285016143ca565b60006080828403121561479257600080fd5b604051608081018181106001600160401b03821117156147b4576147b461396d565b6040528251600781900b81146147c957600080fd5b815260208301516147d9816137b3565b60208201526040830151600381900b81146147f357600080fd5b60408201526060928301519281019290925250919050565b6000825161481d818460208701613f82565b9190910192915050565b6020815260006128f96020830184613fa656feb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c8942c42cac2b53cc05a503aee742eb20728251e952b4bd383e4c07368b76cf72af3ddb5cb31123b06a45f1cac7940acb8c53267338c01be8628d74abe57aed3ea26469706673582212202bcd0f34737479b6893946134fa8efebee3d1551dd65bd3d342ba10ab4cc3c0264736f6c63430008100033