163.8k txs
163.8k calls
constructor
constructor(address addressProvider)
functions
ADDRESS_PROVIDER
viewfunction ADDRESS_PROVIDER() view returns (address)
needADL
viewfunction needADL(uint256 pairIndex, bool isLong, uint256 executionSize, uint256 executionPrice) view returns (bool need, uint256 needADLAmount)
paused
viewfunction paused() view returns (bool)
positionManager
viewfunction positionManager() view returns (address)
cleanInvalidPositionOrders
nonpayablefunction cleanInvalidPositionOrders(bytes32[] positionKeys)
setPaused
nonpayablefunction setPaused()
setPricesAndExecuteADLOrders
payablefunction setPricesAndExecuteADLOrders(address[] tokens, uint256[] prices, bytes[] updateData, uint64[] publishTimes, uint256 pairIndex, tuple[] executePositions, tuple[] executeOrders) payable
setPricesAndExecuteDecreaseLimitOrders
payablefunction setPricesAndExecuteDecreaseLimitOrders(address[] tokens, uint256[] prices, bytes[] updateData, uint64[] publishTimes, tuple[] decreaseOrders) payable
setPricesAndExecuteDecreaseMarketOrders
payablefunction setPricesAndExecuteDecreaseMarketOrders(address[] tokens, uint256[] prices, bytes[] updateData, uint64[] publishTimes, tuple[] decreaseOrders) payable
setPricesAndExecuteIncreaseLimitOrders
payablefunction setPricesAndExecuteIncreaseLimitOrders(address[] tokens, uint256[] prices, bytes[] updateData, uint64[] publishTimes, tuple[] increaseOrders) payable
setPricesAndExecuteIncreaseMarketOrders
payablefunction setPricesAndExecuteIncreaseMarketOrders(address[] tokens, uint256[] prices, bytes[] updateData, uint64[] publishTimes, tuple[] increaseOrders) payable
setPricesAndExecuteOrders
payablefunction setPricesAndExecuteOrders(address[] tokens, uint256[] prices, bytes[] updateData, uint64[] publishTimes, tuple[] orders) payable
setPricesAndLiquidatePositions
payablefunction setPricesAndLiquidatePositions(address[] _tokens, uint256[] _prices, tuple[] liquidatePositions) payable
setUnPaused
nonpayablefunction setUnPaused()
updatePositionManager
nonpayablefunction updatePositionManager(address _positionManager)
events
ExecuteAdlOrder
event ExecuteAdlOrder(uint256[] adlOrderIds, bytes32[] adlPositionKeys, uint256[] orders)
ExecuteDecreaseOrder
event ExecuteDecreaseOrder(address account, uint256 orderId, uint256 pairIndex, uint8 tradeType, bool isLong, int256 collateral, uint256 orderSize, uint256 orderPrice, uint256 executionSize, uint256 executionPrice, uint256 executedSize, bool needADL, int256 pnl, uint256 tradingFee, int256 fundingFee, uint8 paymentType, uint256 networkFeeAmount)
ExecuteIncreaseOrder
event ExecuteIncreaseOrder(address account, uint256 orderId, uint256 pairIndex, uint8 tradeType, bool isLong, int256 collateral, uint256 orderSize, uint256 orderPrice, uint256 executionSize, uint256 executionPrice, uint256 executedSize, uint256 tradingFee, int256 fundingFee, uint8 paymentType, uint256 networkFeeAmount)
ExecuteOrderError
event ExecuteOrderError(uint256 orderId, string errorMessage)
ExecutePositionError
event ExecutePositionError(bytes32 positionKey, string errorMessage)
InvalidOrder
event InvalidOrder(address sender, uint256 orderId, string message)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
UpdatePositionManager
event UpdatePositionManager(address sender, address oldAddress, address newAddress)
ZeroPosition
event ZeroPosition(address sender, address account, uint256 pairIndex, bool isLong, string message)
errors
No errors.
creation bytecode
0x60a0346100fd57601f612bd138819003918201601f19168301916001600160401b03831184841017610102578084926020946040528339810103126100fd57516001600160a01b03811681036100fd57608052600160005560ff1960015416600155604051612ab89081610119823960805181818160fd015281816103c90152818161046b0152818161051601528181610611015281816106e9015281816107d70152818161089001528181610d1801528181610ee20152818161109801528181611260015281816113e70152818161178e0152818161182401528181611a7301528181611bc001528181611dd101528181611e3c01526128350152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c806316d0c6fe14611e005780631848effa14611dbb5780632a267a7c14611cf5578063349fdb0914611b9057806337a66d8514611a435780633ef7293c1461167d5780635c975abb1461165a5780635f0c9781146113b25780636881d8cb14611222578063791b98bc146111f5578063a8a9a7cc1461105c578063b6cc273a14610ea6578063dee05e3f14610ca3578063f949a3ae146102e95763fdd99e2d146100c257600080fd5b806100cc36612352565b93916100d9939193612443565b6100e1612626565b60405162435da560e01b81526001600160a01b039460209491927f00000000000000000000000000000000000000000000000000000000000000008716928685600481875afa9485156102c157889588918c916102cc575b506024604051809881936335d2155560e11b8352336004840152165afa80156102c15787958b91610274575b5095610191939291610178600498612487565b80518251148061026c575b61018c906124b9565b612810565b60405163c4aa304160e01b815292839182905afa918215610261578592610234575b505016803b156102305760405163bb02ec9b60e01b81523360048201526060602482015291839183918290849082906101f0906064830190612569565b6000604483015203925af180156102255761020e575b506001905580f35b61021790611fc3565b610222578038610206565b80fd5b6040513d84823e3d90fd5b5050fd5b6102539250803d1061025a575b61024b818361200c565b8101906123db565b38806101b3565b503d610241565b6040513d87823e3d90fd5b506001610183565b86819594939792503d83116102ba575b61028e818361200c565b810103126102b65760049587956101786102aa610191966123fa565b92985050919293610165565b8980fd5b503d610284565b6040513d8c823e3d90fd5b6102e39150823d841161025a5761024b818361200c565b38610139565b506060366003190112610222576004356001600160401b03811161092357610315903690600401612058565b906024356001600160401b038111610923576103359036906004016120be565b6001600160401b0360443511610923573660236044350112156109235760443560040135926103638461202d565b93610371604051958661200c565b808552602085013660248360051b60443501011161096957602460443501905b60248360051b60443501018210610b75575050506103ad612443565b6103b5612626565b60405162435da560e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610ab0576024916020918691610b58575b506040516335d2155560e11b815233600482015292839182906001600160a01b03165afa8015610ab0578490610b1d575b6104429150612487565b805182511480610b15575b610456906124b9565b604051635434a1df60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610ab0578491610af6575b506001600160a01b031690813b15610a59579183916104d99383604051809681958294631a2b825160e21b8452600484016126b9565b03925af1801561022557908291610ae2575b505b8251811015610ada576105008184612532565b51604051632b47bb3d60e21b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610ab0578491610abb575b5060018060a01b03166001600160401b03606083015116813b15610969578491602483926040519485938492634c77e2e560e01b845260048401525af18015610ab057908491610a9c575b5050604051906105a882611ff1565b600182526020368184013780516001600160a01b03166105c78361250f565b526040516105d481611ff1565b60018152845b60208110610a8b575060208201516105f18261250f565b526105fb8161250f565b50604051632630c12f60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a80578691610a61575b50604083015160608401516001600160401b031692906001600160a01b0383163b15610a5d57916106af918893604051809681958294633c8d30db60e11b84526060600485015261069d606485018d61267c565b84810360031901602486015290612746565b604483019190915203926001600160a01b03165af1801561026157908591610a45575b505060405163477a86ef60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610261578591610a26575b50608082015160c083015160e0840151610100850151610120860151919460ff90931693926001600160a01b03908116921690823b156102b657928980959360c4938296604051998a97889663063007c560e31b8852336004890152602488015260448701526064860152608485015260a48401525af19182610a12575b5050610a0d5760018460033d116109fd575b6308c379a01461099a575b610927575b604051632630c12f60e01b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561026157859261096d575b50606001516001600160401b03166001600160a01b0382163b156109695791849161085e938360405180968195829463cfb1d08760e01b8452600484015260406024840152604483019061267c565b03926001600160a01b03165af1801561092757908391610955575b5050604051632b47bb3d60e21b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610927578391610936575b506001600160a01b0316803b156109325782809160046040518094819363042ec5cb60e11b83525af180156109275790839161090f575b505061090a906124ea565b6104ed565b61091890611fc3565b6109235781386108ff565b5080fd5b6040513d85823e3d90fd5b8280fd5b61094f915060203d60201161025a5761024b818361200c565b386108c8565b61095e90611fc3565b610923578138610879565b8480fd5b6001600160401b0391925061099260609160203d60201161025a5761024b818361200c565b92915061080f565b6109a26127a2565b806109ae575b506107bc565b90507fedd32c7c9778f5c32416a3b51524d565f0b6bd3bbe26fd7c951dbe3d65cd427f859160808401516109f46040519283928352604060208401526040830190612706565b0390a1386109a8565b50600485803e845160e01c6107b1565b6107c1565b610a1b90611fc3565b61096957843861079f565b610a3f915060203d60201161025a5761024b818361200c565b38610721565b610a4e90611fc3565b610a595783386106d2565b8380fd5b8780fd5b610a7a915060203d60201161025a5761024b818361200c565b38610649565b6040513d88823e3d90fd5b8060606020809385010152016105da565b610aa590611fc3565b610932578238610599565b6040513d86823e3d90fd5b610ad4915060203d60201161025a5761024b818361200c565b3861054e565b506001815580f35b610aeb90611fc3565b6102225780386104eb565b610b0f915060203d60201161025a5761024b818361200c565b386104a3565b50600161044d565b506020813d602011610b50575b81610b376020938361200c565b81010312610a5957610b4b610442916123fa565b610438565b3d9150610b2a565b610b6f9150823d841161025a5761024b818361200c565b38610407565b81356001600160401b038111610c9f576101409081602319826044350136030112610a5d576040519182818101106001600160401b038285011117610c89578201604052610bc96024826044350101612044565b82526001600160401b03604482813501013511610a5d57602492602092610c766101448594610c07368960448481350101358460443501010161211c565b84870152604435810160648101356040860152610c26906084016121f2565b6060850152604435810160a4810135608086015260c481013560a0860152610c509060e40161226c565b60c08501526044350161010481013560e085015261012481013561010085015201612044565b6101208201528152019201919050610391565b634e487b7160e01b600052604160045260246000fd5b8680fd5b50346102225780602080600319360112610ea3576001600160401b03600435818111610e9e5736602382011215610e9e578060040135918211610e9e578160051b91366024848401011161096957610cf9612443565b610d01612626565b60405162435da560e01b81526001600160a01b03907f00000000000000000000000000000000000000000000000000000000000000008216908681600481855afa908115610e7657839188918a91610e81575b506024604051809481936335d2155560e11b8352336004840152165afa8015610e765787918991610e38575b5091610d8d600493612487565b60405163477a86ef60e01b815292839182905afa908115610e2d578791610e10575b501690813b15610e0c5760405163dee05e3f60e01b81526004810195909552602485018190526001600160fb1b031061096957838560448286839760248398018484013781010301925af180156102255761020e57506001905580f35b8580fd5b610e279150863d881161025a5761024b818361200c565b38610daf565b6040513d89823e3d90fd5b82819392503d8311610e6f575b610e4f818361200c565b81010312610a5d57600491610d8d610e6789936123fa565b919350610d80565b503d610e45565b6040513d8a823e3d90fd5b610e989150823d841161025a5761024b818361200c565b38610d54565b505050fd5b50fd5b5080610eb136612352565b9391610ebe939193612443565b610ec6612626565b60405162435da560e01b81526001600160a01b039460209491927f00000000000000000000000000000000000000000000000000000000000000008716928685600481875afa9485156102c157889588918c9161103f575b506024604051809881936335d2155560e11b8352336004840152165afa80156102c15787958b91610ff6575b5095610f5d939291610178600498612487565b60405163c4aa304160e01b815292839182905afa918215610261578592610fd9575b505016803b156102305760405163bb02ec9b60e01b8152336004820152606060248201529183918391829084908290610fbc906064830190612569565b6001604483015203925af180156102255761020e57506001905580f35b610fef9250803d1061025a5761024b818361200c565b3880610f7f565b86819594939792503d8311611038575b611010818361200c565b810103126102b657600495879561017861102c610f5d966123fa565b92985050919293610f4a565b503d611006565b6110569150823d841161025a5761024b818361200c565b38610f1e565b508061106736612352565b9391611074939193612443565b61107c612626565b60405162435da560e01b81526001600160a01b039460209491927f00000000000000000000000000000000000000000000000000000000000000008716928685600481875afa9485156102c157889588918c916111d8575b506024604051809881936335d2155560e11b8352336004840152165afa80156102c15787958b9161118f575b5095611113939291610178600498612487565b60405163c4aa304160e01b815292839182905afa918215610261578592611172575b505016803b1561023057604051632dc0e2db60e11b81523360048201526060602482015291839183918290849082906101f0906064830190612569565b6111889250803d1061025a5761024b818361200c565b3880611135565b86819594939792503d83116111d1575b6111a9818361200c565b810103126102b65760049587956101786111c5611113966123fa565b92985050919293611100565b503d61119f565b6111ef9150823d841161025a5761024b818361200c565b386110d4565b503461022257806003193601126102225760015460405160089190911c6001600160a01b03168152602090f35b503461022257602080600319360112610923576001600160a01b039060043590828216908183036113ad5760405162435da560e01b815281816004817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610a8057859183918891611390575b50602460405180948193637be53ca160e01b8352336004840152165afa908115610a8057869161132b575b50907f888f67ba778372c27e79bbfc2b6a7933c7f94ac44ea6110df376637c513641e4946112f16060959493612407565b60015493610100600160a81b039060081b16610100600160a81b03198516176001556040519333855260081c16908301526040820152a180f35b93929180915084813d8311611389575b611345818361200c565b81010312610e0c577f888f67ba778372c27e79bbfc2b6a7933c7f94ac44ea6110df376637c513641e4946112f161137d6060966123fa565b929394955050946112c0565b503d61133b565b6113a79150823d841161025a5761024b818361200c565b38611295565b600080fd5b506113bc36612352565b93916113c9939193612443565b6113d1612626565b60405162435da560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169590946020949293909285856004818b5afa9384156102c15787958b9561163b575b508660405180966335d2155560e11b82523360048301528160249b8c92165afa948515611630578b956115f0575b5061017861146595612487565b855b85518110156115e85761147a8187612532565b5160408101511561155f5760405163c4aa304160e01b815284816004818a5afa80156115545784918a91611537575b501690846114b682612a00565b9101516004811015611524579082918a933b15610a59576114f192849283604051809681958294632dc0e2db60e11b845233600485016125f4565b03925af1801561022557611510575b505061150b906124ea565b611467565b61151990611fc3565b610c9f578638611500565b634e487b7160e01b8a526021600452868afd5b61154e9150863d881161025a5761024b818361200c565b386114a9565b6040513d8b823e3d90fd5b60405163c4aa304160e01b815284816004818a5afa80156115545784918a916115cb575b5016908461159082612a00565b9101516004811015611524579082918a933b15610a59576114f19284928360405180968195829463bb02ec9b60e01b845233600485016125f4565b6115e29150863d881161025a5761024b818361200c565b38611583565b866001815580f35b94508685813d8311611629575b611607818361200c565b810103126116255761017861161e611465966123fa565b9550611458565b8a80fd5b503d6115fd565b6040513d8d823e3d90fd5b611653919550873d891161025a5761024b818361200c565b933861142a565b5034610222578060031936011261022257602060ff600154166040519015158152f35b5060e0366003190112610222576001600160401b0390600435828111610923576116ab903690600401612058565b602435838111610932576116c39036906004016120be565b92604435818111610a59576116dc903690600401612172565b606435828111610969576116f4903690600401612206565b9060a43595838711610e0c5736602388011215610e0c5786600401359361171a8561202d565b97611728604051998a61200c565b8589526020890190602460c0839802820101903682116102b657602401915b8183106119cf5750505060c435908111610c9f5761176990369060040161227a565b94611772612443565b61177a612626565b60405162435da560e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e76576024916020918a916119b2575b506040516335d2155560e11b815233600482015292839182906001600160a01b03165afa908115610e76578891611969575b509061017861180f95949392612487565b60405163c4aa304160e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610ab057849161194a575b506001600160a01b031690813b15610a59576040519263174f3f3360e21b84526084840133600486015260843560248601526080968760448701525180915260a485019290865b8181106118f35786850360031901606488015287808881818a8183816118c98e8e612569565b03925af18015610225576118df57506001905580f35b6118e890611fc3565b610222578082610206565b8251805186526020818101518188015260408083015160ff1690880152606080830151908801528a8201518b88015260a0918201516001600160a01b03169187019190915260c090950194909201916001016118a3565b611963915060203d60201161025a5761024b818361200c565b3861185c565b90506020813d6020116119aa575b816119846020938361200c565b81010312610a5d579061017861199f61180f969594936123fa565b9192939495506117fe565b3d9150611977565b6119c99150823d841161025a5761024b818361200c565b386117cc565b60c0833603126102b6576040519060c082019082821086831117610c895760c092602092604052853581528286013583820152611a0e6040870161226c565b6040820152606080870135908201526080808701359082015260a0611a34818801612044565b90820152815201920191611747565b503461022257806003193601126102225760405162435da560e01b81526001600160a01b039060209081816004817f000000000000000000000000000000000000000000000000000000000000000087165afa8015610ab05782918591611b73575b50602460405180958193637be53ca160e01b8352336004840152165afa918215610927578392611b19575b50611afb7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25892612407565b611b03612443565b600160ff1981541617600155604051338152a180f35b91508082813d8311611b6c575b611b30818361200c565b8101031261093257611afb611b657f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258936123fa565b9250611ad0565b503d611b26565b611b8a9150823d841161025a5761024b818361200c565b38611aa5565b503461022257806003193601126102225760405162435da560e01b81526020906001600160a01b039082816004817f000000000000000000000000000000000000000000000000000000000000000086165afa8015610ab05783918591611cd8575b50602460405180948193637be53ca160e01b8352336004840152165afa8015610927578390611ca2575b611c269150612407565b60015460ff811615611c665760ff19166001556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9190a180f35b60405162461bcd60e51b815260048101839052601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606490fd5b508181813d8311611cd1575b611cb8818361200c565b8101031261093257611ccc611c26916123fa565b611c1c565b503d611cae565b611cef9150823d841161025a5761024b818361200c565b38611bf2565b5034610222576080366003190112610222576024358015158091036113ad57604060018060a01b0360015460081c16916084825180948193630a899e9f60e21b835260043560048401526024830152604435604483015260643560648301525afa80156102255782918391611d77575b60408383825191151582526020820152f35b9150506040813d604011611db3575b81611d936040938361200c565b8101031261092357604091506020611daa826123fa565b91015138611d65565b3d9150611d86565b50346102225780600319360112610222576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080611e0b36612352565b9391611e18939193612443565b611e20612626565b60405162435da560e01b81526001600160a01b039460209491927f00000000000000000000000000000000000000000000000000000000000000008716928685600481875afa9485156102c157889588918c91611fa6575b506024604051809881936335d2155560e11b8352336004840152165afa80156102c15787958b91611f5d575b5095611eb7939291610178600498612487565b60405163c4aa304160e01b815292839182905afa918215610261578592611f40575b50501690813b15610230578291611f1491604051948580948193632dc0e2db60e11b8352336004840152606060248401526064830190612569565b6001604483015203925af1801561022557611f3157506001815580f35b611f3a90611fc3565b38610ada565b611f569250803d1061025a5761024b818361200c565b3880611ed9565b86819594939792503d8311611f9f575b611f77818361200c565b810103126102b6576004958795610178611f93611eb7966123fa565b92985050919293611ea4565b503d611f6d565b611fbd9150823d841161025a5761024b818361200c565b38611e78565b6001600160401b038111610c8957604052565b60e081019081106001600160401b03821117610c8957604052565b604081019081106001600160401b03821117610c8957604052565b90601f801991011681019081106001600160401b03821117610c8957604052565b6001600160401b038111610c895760051b60200190565b35906001600160a01b03821682036113ad57565b81601f820112156113ad5780359161206f8361202d565b9261207d604051948561200c565b808452602092838086019260051b8201019283116113ad578301905b8282106120a7575050505090565b8380916120b384612044565b815201910190612099565b81601f820112156113ad578035916120d58361202d565b926120e3604051948561200c565b808452602092838086019260051b8201019283116113ad578301905b82821061210d575050505090565b813581529083019083016120ff565b81601f820112156113ad578035906001600160401b038211610c895760405192612150601f8401601f19166020018561200c565b828452602083830101116113ad57816000926020809301838601378301015290565b9080601f830112156113ad5781359061218a8261202d565b92612198604051948561200c565b828452602092838086019160051b830101928084116113ad57848301915b8483106121c65750505050505090565b82356001600160401b0381116113ad5786916121e78484809489010161211c565b8152019201916121b6565b35906001600160401b03821682036113ad57565b81601f820112156113ad5780359161221d8361202d565b9261222b604051948561200c565b808452602092838086019260051b8201019283116113ad578301905b828210612255575050505090565b838091612261846121f2565b815201910190612247565b359060ff821682036113ad57565b81601f820112156113ad578035906122918261202d565b926040906122a18251958661200c565b838552602091828601918360e0809702860101948186116113ad578401925b8584106122d1575050505050505090565b86848303126113ad578251906122e682611fd6565b843582528585013560048110156113ad5786830152838501359081151582036113ad57828792868b950152606061231e81890161226c565b908201526080808801359082015260a0808801359082015260c0612343818901612044565b908201528152019301926122c0565b60a06003198201126113ad576004906001600160401b0382358181116113ad578261237e918501612058565b936024358281116113ad57836123959186016120be565b936044358381116113ad57846123ac918301612172565b936064358481116113ad57816123c3918401612206565b936084359081116113ad576123d8920161227a565b90565b908160209103126113ad57516001600160a01b03811681036113ad5790565b519081151582036113ad57565b1561240e57565b60405162461bcd60e51b815260206004820152600d60248201526c37b7363ca837b7b620b236b4b760991b6044820152606490fd5b60ff6001541661244f57565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b1561248e57565b60405162461bcd60e51b81526020600482015260036024820152626f706b60e81b6044820152606490fd5b156124c057565b60405162461bcd60e51b8152602060048201526002602482015261069760f41b6044820152606490fd5b60001981146124f95760010190565b634e487b7160e01b600052601160045260246000fd5b80511561251c5760200190565b634e487b7160e01b600052603260045260246000fd5b805182101561251c5760209160051b010190565b9060048210156125535752565b634e487b7160e01b600052602160045260246000fd5b90815180825260208080930193019160005b828110612589575050505090565b909192938260e06001928751805182526125a98482015185840190612546565b60408181015115159083015260608082015160ff16908301526080808201519083015260a0808201518184015260c0918201519086901b86900316908201520195019392910161257b565b93929061261c6126249360409260018060a01b03168752606060208801526060870190612569565b940190612546565b565b600260005414612637576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b90815180825260208080930193019160005b82811061269c575050505090565b83516001600160a01b03168552938101939281019260010161268e565b906126cc9060408352604083019061267c565b81810360209283015282518082529082019282019160005b8281106126f2575050505090565b8351855293810193928101926001016126e4565b919082519283825260005b848110612732575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201612711565b908082519081815260208091019281808460051b8301019501936000915b8483106127745750505050505090565b9091929394958480612792600193601f198682030187528a51612706565b9801930193019194939290612764565b600060443d106123d857604051600319913d83016004833e81516001600160401b03918282113d6024840111176127ff57818401948551938411612807573d850101602084870101116127ff57506123d89291016020019061200c565b949350505050565b50949350505050565b60408051635434a1df60e01b81526000959294919360209392916001600160a01b03917f00000000000000000000000000000000000000000000000000000000000000008316918681600481865afa9081156129f6579084918b916129d9575b5016803b156102b65761289c918a918a838b51809681958294631a2b825160e21b8452600484016126b9565b03925af180156129cf576129b9575b5084600491875192838092632630c12f60e01b82525afa9081156129af578891612992575b501692833b15610c9f5791612906959287949261291987519889966318c68c5b60e21b885260606004890152606488019061267c565b6003199283888303016024890152612746565b90858203016044860152818084519283815201930191865b82811061296f5750505050828091039134905af19081156129665750612955575050565b61295f8291611fc3565b6102225750565b513d84823e3d90fd5b83516001600160401b031685528a97508996509381019392810192600101612931565b6129a99150853d871161025a5761024b818361200c565b386128d0565b86513d8a823e3d90fd5b600491986129c78792611fc3565b9891506128ab565b87513d8b823e3d90fd5b6129f09150883d8a1161025a5761024b818361200c565b38612870565b88513d8c823e3d90fd5b60408051612a0d81611ff1565b6001815260005b602080821015612a6457835160209291612a2d82611fd6565b600082526000818301526000868301526000606083015260006080830152600060a0830152600060c0830152828501015201612a14565b5050612a7f91509291928093612a798261250f565b5261250f565b5056fea2646970667358221220da68bee99af93cc265beddb33f9f7ed76aced294105390ce48cf1c882c9a3a3164736f6c63430008130033000000000000000000000000446dd43816a00d56849f549c032b4814008e183d