0 txs
1 call
constructor
No constructor.
functions
activeEmergencyMode
nonpayablefunction activeEmergencyMode()
activePartyBEmergencyStatus
nonpayablefunction activePartyBEmergencyStatus(address _partyB)
addOracle
nonpayablefunction addOracle(string _name, address _contractAddress)
addSymbol
nonpayablefunction addSymbol(string _name, uint8 _optionType, uint256 _oracleId, address _collateral, bool _isStableCoin, uint256 _tradingFee, uint256 _symbolType)
deactiveEmergencyMode
nonpayablefunction deactiveEmergencyMode()
deactivePartyBEmergencyStatus
nonpayablefunction deactivePartyBEmergencyStatus(address _partyB)
grantRole
nonpayablefunction grantRole(address _user, bytes32 _role)
pauseDeposit
nonpayablefunction pauseDeposit()
pauseGlobal
nonpayablefunction pauseGlobal()
pauseLiquidating
nonpayablefunction pauseLiquidating()
pausePartyAActions
nonpayablefunction pausePartyAActions()
pausePartyBActions
nonpayablefunction pausePartyBActions()
pauseWithdraw
nonpayablefunction pauseWithdraw()
removeFromWhiteListCollateral
nonpayablefunction removeFromWhiteListCollateral(address _collateral)
revokeRole
nonpayablefunction revokeRole(address _user, bytes32 _role)
setAdmin
nonpayablefunction setAdmin(address _admin)
setAffiliateFeeCollector
nonpayablefunction setAffiliateFeeCollector(address _affiliate, address _collector)
setAffiliateStatus
nonpayablefunction setAffiliateStatus(address _affiliate, bool _status)
setBalanceLimitPerUser
nonpayablefunction setBalanceLimitPerUser(uint256 _limit)
setDeactiveInstantActionModeCooldown
nonpayablefunction setDeactiveInstantActionModeCooldown(uint256 _cooldown)
setDefaultFeeCollector
nonpayablefunction setDefaultFeeCollector(address _collector)
setForceCancelCloseIntentTimeout
nonpayablefunction setForceCancelCloseIntentTimeout(uint256 _timeout)
setForceCancelOpenIntentTimeout
nonpayablefunction setForceCancelOpenIntentTimeout(uint256 _timeout)
setInstantActionsMode
nonpayablefunction setInstantActionsMode(address _user, bool _status)
setInstantActionsModeDeactivateTime
nonpayablefunction setInstantActionsModeDeactivateTime(address _user, uint256 _time)
setLiquidationSigValidTime
nonpayablefunction setLiquidationSigValidTime(uint256 _time)
setMaxCloseOrdersLength
nonpayablefunction setMaxCloseOrdersLength(uint256 _max)
setMaxConnectedPartyBs
nonpayablefunction setMaxConnectedPartyBs(uint256 _max)
setMaxTradePerPartyA
nonpayablefunction setMaxTradePerPartyA(uint256 _max)
setPartyADeallocateCooldown
nonpayablefunction setPartyADeallocateCooldown(uint256 _cooldown)
setPartyBConfig
nonpayablefunction setPartyBConfig(address _partyB, tuple _config)
setPartyBDeallocateCooldown
nonpayablefunction setPartyBDeallocateCooldown(uint256 _cooldown)
setPartyBReleaseInterval
nonpayablefunction setPartyBReleaseInterval(address _partyB, uint256 _interval)
setPriceOracleAddress
nonpayablefunction setPriceOracleAddress(address _oracle)
setSettlementPriceSigValidTime
nonpayablefunction setSettlementPriceSigValidTime(uint256 _time)
setUnbindingCooldown
nonpayablefunction setUnbindingCooldown(uint256 _cooldown)
suspendAddress
nonpayablefunction suspendAddress(address _user, bool _status)
suspendWithdrawal
nonpayablefunction suspendWithdrawal(uint256 _withdrawId, bool _status)
unpauseDeposit
nonpayablefunction unpauseDeposit()
unpauseGlobal
nonpayablefunction unpauseGlobal()
unpauseLiquidating
nonpayablefunction unpauseLiquidating()
unpausePartyAActions
nonpayablefunction unpausePartyAActions()
unpausePartyBActions
nonpayablefunction unpausePartyBActions()
unpauseWithdraw
nonpayablefunction unpauseWithdraw()
whiteListCollateral
nonpayablefunction whiteListCollateral(address _collateral)
events
AddressSuspended
event AddressSuspended(address indexed user, bool status)
AffiliateFeeCollectorUpdated
event AffiliateFeeCollectorUpdated(address indexed affiliate, address indexed feeCollector)
AffiliateStatusUpdated
event AffiliateStatusUpdated(address indexed affiliate, bool status)
BalanceLimitPerUserUpdated
event BalanceLimitPerUserUpdated(uint256 limit)
CollateralRemovedFromWhitelist
event CollateralRemovedFromWhitelist(address indexed collateral)
CollateralWhitelisted
event CollateralWhitelisted(address indexed collateral)
DeactiveInstantActionModeCooldownUpdated
event DeactiveInstantActionModeCooldownUpdated(uint256 cooldown)
DefaultFeeCollectorUpdated
event DefaultFeeCollectorUpdated(address indexed collector)
DepositPaused
event DepositPaused()
DepositUnpaused
event DepositUnpaused()
EmergencyModeActivated
event EmergencyModeActivated()
EmergencyModeDeactivated
event EmergencyModeDeactivated()
ForceCancelCloseIntentTimeoutUpdated
event ForceCancelCloseIntentTimeoutUpdated(uint256 timeout)
ForceCancelOpenIntentTimeoutUpdated
event ForceCancelOpenIntentTimeoutUpdated(uint256 timeout)
GlobalPaused
event GlobalPaused()
GlobalUnpaused
event GlobalUnpaused()
InstantActionsModeDeactivateTimeUpdated
event InstantActionsModeDeactivateTimeUpdated(address indexed user, uint256 time)
InstantActionsModeUpdated
event InstantActionsModeUpdated(address indexed user, bool status)
LiquidatingPaused
event LiquidatingPaused()
LiquidatingUnpaused
event LiquidatingUnpaused()
LiquidationDetailUpdated
event LiquidationDetailUpdated(address indexed partyB, address indexed collateral)
LiquidationSigValidTimeUpdated
event LiquidationSigValidTimeUpdated(uint256 time)
MaxCloseOrdersLengthUpdated
event MaxCloseOrdersLengthUpdated(uint256 max)
MaxConnectedPartyBsUpdated
event MaxConnectedPartyBsUpdated(uint256 max)
MaxTradePerPartyAUpdated
event MaxTradePerPartyAUpdated(uint256 max)
OracleAdded
event OracleAdded(uint256 indexed oracleId, string name, address contractAddress)
PartyAActionsPaused
event PartyAActionsPaused()
PartyAActionsUnpaused
event PartyAActionsUnpaused()
PartyADeallocateCooldownUpdated
event PartyADeallocateCooldownUpdated(uint256 cooldown)
PartyBActionsPaused
event PartyBActionsPaused()
PartyBActionsUnpaused
event PartyBActionsUnpaused()
PartyBConfigUpdated
event PartyBConfigUpdated(address indexed partyB, (bool isActive, uint256 lossCoverage, uint256 oracleId, uint256 symbolType) config)
PartyBDeallocateCooldownUpdated
event PartyBDeallocateCooldownUpdated(uint256 cooldown)
PartyBEmergencyStatusActivated
event PartyBEmergencyStatusActivated(address indexed partyB)
PartyBEmergencyStatusDeactivated
event PartyBEmergencyStatusDeactivated(address indexed partyB)
PartyBReleaseIntervalUpdated
event PartyBReleaseIntervalUpdated(address indexed partyB, uint256 interval)
PriceOracleAddressUpdated
event PriceOracleAddressUpdated(address indexed oracle)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed user)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed user)
RoleUpdated
event RoleUpdated(address indexed account, bytes32 indexed role, bool granted)
SettlementPriceSigValidTimeUpdated
event SettlementPriceSigValidTimeUpdated(uint256 time)
SymbolAdded
event SymbolAdded(uint256 indexed symbolId, string name, uint8 optionType, uint256 oracleId, address collateral, bool isStableCoin, uint256 tradingFee, uint256 symbolType)
SymbolPriceUpdated
event SymbolPriceUpdated(address indexed partyB, uint256 indexed symbolId)
UnbindingCooldownUpdated
event UnbindingCooldownUpdated(uint256 cooldown)
WithdrawalSuspended
event WithdrawalSuspended(uint256 indexed withdrawId, bool status)
WithdrawPaused
event WithdrawPaused()
WithdrawUnpaused
event WithdrawUnpaused()
errors
InstantActionModeActive
error InstantActionModeActive(address sender)
InvalidOracle
error InvalidOracle(uint256 oracleId, uint256 lastOracleId)
IsPartyB
error IsPartyB(address sender)
MissingRole
error MissingRole(address sender, bytes32 role)
NotContractOwner
error NotContractOwner(address sender, address owner)
NotPartyAOfTrade
error NotPartyAOfTrade(address sender, uint256 tradeId, address partyA)
NotPartyB
error NotPartyB(address sender)
NotPartyBOfTrade
error NotPartyBOfTrade(address sender, uint256 tradeId, address partyB)
ReceiverSuspended
error ReceiverSuspended(address receiver)
SuspendedWithdrawal
error SuspendedWithdrawal(uint256 withdrawId)
UserIsPartyB
error UserIsPartyB(address user)
UserSuspended
error UserSuspended(address user)
ZeroAddress
error ZeroAddress(string property)
creation bytecode
0x60808060405234610016576129e0908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062937f4e14612571578063154ae6b6146124f157806315c9581d1461242b578063171f5a71146123995780631c4f9cf0146122ed578063204272fe1461222e578063207f1863146121a8578063208dd1ff146120b657806323e5e2121461201b5780632aeaeec114611f895780632c95b67714611ef75780632d8f461114611e4857806337bfc11814611dc85780633d22497814611d1c5780633f7578cc1461181e5780635157ced51461179e5780635900c74d146114515780635bb6d007146113d15780635d76bca7146113515780636155e3de146112cb57806367f460bb1461124557806369026e88146111bf5780636afdd0b2146110cb5780636cc524c21461104b578063700b0bb314610fcb578063704b6c0214610ed05780637a67883914610e3e5780637e86cee414610dac5780637fcc2f9c14610cfc57806384563bd214610c6a578063874ac89a14610b5a57806398e9a95214610ad4578063a1f2a2f214610a24578063a9d2383b1461099e578063ab2742dc14610879578063af9b7b0e146107e7578063b64f3cdf1461071d578063b764907b14610697578063bad727bd14610605578063c238878b14610573578063ccceb7cd14610492578063cf98208714610400578063d7b7b18d14610350578063e098ca2c146102be5763f241f02c1461020a57600080fd5b346102b95760203660031901126102b95760043561022733612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577f261a406b5d6921e092dcc9239ffd5a45ba0337d613afed073c9f70a8d2fa1f4d602083807ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ae55604051908152a1005b6044906040519062b0d32560e11b82523360048301526024820152fd5b600080fd5b346102b95760203660031901126102b9576004356102db33612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577f98ca925eb2f23f4e9344c397c822b3aa773adfdefa3ccca369a911f91d1b3d28602083807ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ac55604051908152a1005b346102b95760403660031901126102b957610369612630565b6024359061037633612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c575060207fc5474faf4e5919ced27eb271b582f6969503b77bc376b2501904e538fed4df2e9160018060a01b031692836000527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb19825280604060002055604051908152a2005b346102b95760203660031901126102b95760043561041d33612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577fff55dbf99db30b57e2848f6e87ccc3bed5a8fe9f87585ab03a182bb98eba2bed602083807ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548af55604051908152a1005b346102b95760203660031901126102b9576104ab612630565b6104b433612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c57506001600160a01b03168015610541577ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b180546001600160a01b031916821790557f6400838e1a1b95176d26aaad4540fcef6778703092b09aa09467c8ef1cf2d17a600080a2005b60405163eac0d38960e01b815260206004820152600960248201526831b7b63632b1ba37b960b91b6044820152606490fd5b346102b95760203660031901126102b95760043561059033612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577f8928871c0189ae77d7c3fd8a5e2405d2355e370a2839d653e68e81fef96c8901602083807ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ba55604051908152a1005b346102b95760203660031901126102b95760043561062233612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577fda6f0a1b8a7a472aa0d7c87ba5facbe11bd11527c461e4953dbeafc17cdeb8bb602083807ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548a855604051908152a1005b346102b95760003660031901126102b9576106b133612699565b6000805160206129b4833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60b81b1916600160b81b1790557f907dda773c4afeae79dc936cbd7e3e6e37c082349b239c1d94a3ed23f88b07bd600080a1005b346102b95760403660031901126102b957610736612630565b61073e61265c565b9061074833612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c575060207fbb6da9b6e22f81bf7970fba4adb001fc41ff75d7243a1bb68b5a391beb1383c59160018060a01b031692836000527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b282526107dc8160406000209060ff801983541691151516179055565b6040519015158152a2005b346102b95760203660031901126102b95760043561080433612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577fc1650485b1d0c487782e45d087d212f3cdea67357d62e53c7ba575dcd42d9285602083807fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1a55604051908152a1005b346102b95760403660031901126102b957610892612630565b60243561089e33612699565b600080516020612934833981519152908160005260205260ff604060002054161561029c57506001600160a01b03821691821561096f576108de81612699565b8260005260205260ff60406000205416156108f557005b6108fe90612699565b816000526020526040600020600160ff198254161790557ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b5602052610947826040600020612700565b507f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3600080a3005b60405163eac0d38960e01b815260206004808301919091526024820152633ab9b2b960e11b6044820152606490fd5b346102b95760003660031901126102b9576109b833612699565b6000805160206129b4833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60c81b1916600160c81b1790557f01ff0b2b6d0207d2eef9a6427742e19c13e14b0cf62edd75a547bfcae27e705d600080a1005b346102b95760403660031901126102b957610a3d612630565b60243590610a4a33612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c575060207f53f71cce6eba330939a4c6f04f211c2ee3381204a027c8378c0c165a8c2ff6e89160018060a01b031692836000527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb23825280604060002055604051908152a2005b346102b95760003660031901126102b957610aee33612699565b6000805160206129b4833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60a01b1916600160a01b1790557f8bee704f8fac40aa39037f01e8543b45869662bcf7daebf0e4893c14c4d8559c600080a1005b346102b95760a03660031901126102b957610b73612630565b60803660231901126102b957610b8833612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c57506001600160a01b031660008181527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b66020526040902060243580151581036102b95781610c2a6080927f1600e1661610fa4bcc92bcbd9cb947529ff6dd3b5b21abab81ce529e071734e4949060ff801983541691151516179055565b60036044359182600182015560643590816002820155608435928391015560405192610c5461265c565b15158452602084015260408301526060820152a2005b346102b95760203660031901126102b957600435610c8733612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577facd17f68d0ec193e15d402f6db4c39baddba4a97d225e11c9482e560616f0f90602083807ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548a755604051908152a1005b346102b95760403660031901126102b957600435610d1861265c565b610d2133612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c575060207fd23365185e1c4c9fa52da0c6e9784640c726e4539f277b7efc4be8e7bde4ae8f91836000527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1f82526107dc8160406000209060ff801983541691151516179055565b346102b95760203660031901126102b957600435610dc933612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577f2decd038035543fe6c80c554c576bbabe6f5d92e044d65573ae284511b178f0e602083807fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb2455604051908152a1005b346102b95760203660031901126102b957600435610e5b33612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577fd3afc95def3f9f91f2b4c5fe7e6bb6aa1406f07996c08a86e3a64d95e505ec81602083807fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1d55604051908152a1005b346102b95760203660031901126102b957610ee9612630565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f546001600160a01b0390811633819003610fad57508116908115610f7f57610f3190612699565b60008051602061293483398151915290816000526020526040600020600160ff198254161790557f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f3600080a3005b60405163eac0d38960e01b815260206004820152600560248201526430b236b4b760d91b6044820152606490fd5b6044906040519063ff4127cb60e01b82523360048301526024820152fd5b346102b95760003660031901126102b957610fe533612699565b600080516020612934833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60f01b191690557f70b9dcaceb756943ac1a4f48b8df9ea82fbb012b87e405cba4ed77d1ded0df41600080a1005b346102b95760003660031901126102b95761106533612699565b600080516020612994833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60c01b191690557fb5e74d4d1cbacd61273fa66739bb7c437609d0cde961b85bd155f048857285a8600080a1005b346102b95760203660031901126102b9576110e4612630565b6110ed33612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c57506001600160a01b03811690811561118c576001600160a01b031660009081527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548a660205260409020805460ff191660011790557f38c11947f16670fa95ddb76444c21a13a0be4f0132d147eb6245c4b94ea889fa600080a2005b60405163eac0d38960e01b815260206004820152600a60248201526918dbdb1b185d195c985b60b21b6044820152606490fd5b346102b95760003660031901126102b9576111d933612699565b6000805160206129b4833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60a81b1916600160a81b1790557f35edea304410d4256c657d14535db2c0a3e9c75dcc42c5c9781c4e8171dad7e0600080a1005b346102b95760003660031901126102b95761125f33612699565b6000805160206129b4833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60c01b1916600160c01b1790557f3b6aa48ecced6fc8a49a7eb1b6fa32644a6cd1cea86411dad14387596e35e926600080a1005b346102b95760003660031901126102b9576112e533612699565b6000805160206129b4833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60b01b1916600160b01b1790557fe0a3980331ed5d29c709abc1a9a511d7773ed950594ee3f28f339f71cf6f6172600080a1005b346102b95760003660031901126102b95761136b33612699565b600080516020612994833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60b81b191690557fff95baeff4eba1d1635f942cb8e12092f5bc72b39e8a1bb138adce3c7105c032600080a1005b346102b95760003660031901126102b9576113eb33612699565b600080516020612994833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60b01b191690557fa6175176a2721c745751f96376e6c0d68ef32015718867210eeac709aa5ee9f0600080a1005b346102b95760403660031901126102b95767ffffffffffffffff6004358181116102b95761148390369060040161266b565b9061148c612646565b9161149633612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c57506001600160a01b03831615611766576114e36000805160206129548339815191525461287a565b80600080516020612954833981519152556040519060608201828110878211176117505760405280825261151836848661289f565b906020830191825260018060a01b03861660408401526000527f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d26020526040600020908251825551958651908111611750576001820154600181811c91168015611746575b602082101461173057601f81116116e5575b506020601f8211600114611653579080600293927fa671eaa6df840efb38536d8b6504e1630328697bf596fce3405a670c1388b9409899600092611648575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166bffffffffffffffffffffffff60a01b82541617905560008051602061295483398151915254936116336040519384936040855260408501916128f2565b6001600160a01b0390911660208301520390a2005b0151905089806115ce565b601f198216976001840160005260206000209860005b8181106116cd5750986001928492600296957fa671eaa6df840efb38536d8b6504e1630328697bf596fce3405a670c1388b9409b9c106116b4575b505050811b0160018201556115e6565b015160001960f88460031b161c191690558980806116a4565b838301518b556001909a019960209384019301611669565b600183016000526020600020601f830160051c81019160208410611726575b601f0160051c01905b81811061171a575061158f565b6000815560010161170d565b9091508190611704565b634e487b7160e01b600052602260045260246000fd5b90607f169061157d565b634e487b7160e01b600052604160045260246000fd5b60405163eac0d38960e01b815260206004820152600f60248201526e636f6e74726163744164647265737360881b6044820152606490fd5b346102b95760003660031901126102b9576117b833612699565b600080516020612994833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60a81b191690557f8c357fe0f696f2972294914e16a16c64a121f9a529a92b9d87fc7a79ec170f2c600080a1005b346102b95760e03660031901126102b95760043567ffffffffffffffff81116102b95761184f90369060040161266b565b6024916002833510156102b957606435916001600160a01b03831683036102b9576084359384151585036102b95761188633612699565b600080516020612974833981519152908160005260205260ff6040600020541615611d0057506001600160a01b0384161561118c5760443560009081527f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d260205260409020600201546001600160a01b0316158015611ce6575b611cb95761192e7f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d55461287a565b94857f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d55560405195610120870187811067ffffffffffffffff821117611ca4576040528087526001602088015261198636858761289f565b604088015282356060880152604435608088015260018060a01b03861660a088015281151560c088015260a43560e088015260c4356101008801526000527f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d4602052604060002086518155611a1060208801511515600183019060ff801983541691151516179055565b604087015180519067ffffffffffffffff8211611c8f576002830154600181811c91168015611c85575b6020821014611c70579081601f849311611c1d575b50602090601f8311600114611bab57600092611ba0575b50508160011b916000199060031b1c19161760028201555b60608701516002811015611b8b576101007f0df06cedde481381b4b5906f2828cb32db184ac4deb886a24b70fa25c8ee97f09798600792600385019060ff80198354169116179055608081015160048501556005840160018060a01b0360a08301511681549060ff60a01b60c0850151151560a01b16916affffffffffffffffffffff60a81b161717905560e0810151600685015501519101557f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d55495611b5260405195869560e0875260e08701916128f2565b9235602085015260443560408501526001600160a01b031660608401521515608083015260a43560a083015260c43560c08301520390a2005b83634e487b7160e01b60005260216004526000fd5b015190508980611a66565b9250600284016000526020600020906000935b601f1984168510611c02576001945083601f19811610611be9575b505050811b016002820155611a7e565b015160001960f88460031b161c19169055898080611bd9565b81810151835560209485019460019093019290910190611bbe565b909150600284016000526020600020601f840160051c810160208510611c69575b90849392915b601f830160051c82018110611c5a575050611a4f565b60008155859450600101611c44565b5080611c3e565b85634e487b7160e01b60005260226004526000fd5b90607f1690611a3a565b84634e487b7160e01b60005260416004526000fd5b83634e487b7160e01b60005260416004526000fd5b60449060008051602061295483398151915254604051916301f3caf360e51b835283356004840152820152fd5b506044356000805160206129548339815191525410611900565b60405162b0d32560e11b81523360048201529182015260449150fd5b346102b95760203660031901126102b957611d35612630565b611d3e33612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c57506001600160a01b031660008181527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548a660205260408120805460ff191690557f460acc285ccf78f63a3bf0d9d1785f784f2343575181f8f286c105e430cc32c69080a2005b346102b95760003660031901126102b957611de233612699565b600080516020612994833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60c81b191690557ffa7c2942a759f1168432db9d14879876e4208aeb6c5f55a00c8df8ce9213db27600080a1005b346102b95760203660031901126102b957611e61612630565b611e6a33612699565b600080516020612934833981519152908160005260205260ff604060002054161561029c57506001600160a01b031660008181527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ab60205260408120805460ff191660011790557fa3d47f6c026874a6976fb6de8868507714351be097886be9c14b7655c4b238af9080a2005b346102b95760203660031901126102b957600435611f1433612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577f9e8a20defb02a83c2d21171c926fbad6a8845b037cbf95617396500b9106cdf6602083807ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548a955604051908152a1005b346102b95760203660031901126102b957600435611fa633612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577f2ce9dc2c93e277f02a74466a8cf8419e2bb57651fcac785326a2c79de3456c5b602083807ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ad55604051908152a1005b346102b95760203660031901126102b957612034612630565b61203d33612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c575060008051602061291483398151915280546001600160a01b0319166001600160a01b039290921691821790557f12ad2958c2383ce31dd51da097e673d81de88c202731500406f3afc70a8cf170600080a2005b346102b95760403660031901126102b9576120cf612630565b6024356120db33612699565b600080516020612934833981519152908160005260205260ff604060002054161561029c57506001600160a01b03821691821561096f5761211b81612699565b8260005260205260ff6040600020541661213157005b61213a90612699565b81600052602052604060002060ff1981541690557ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b560205261218082604060002061278a565b507f155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52600080a3005b346102b95760003660031901126102b9576121c233612699565b600080516020612934833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60f01b1916600160f01b1790557f9e91804b7b70a36dcecd9afc85507eb02441c485502f58d0e68589aa50b8226a600080a1005b346102b95760403660031901126102b957612247612630565b61224f61265c565b9061225933612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c575060207f7f3d90cdd448bc07a1c97c3fb0104fe144b9b5134ad7c08336f177c02d630fbc9160018060a01b031692836000527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb2282526107dc8160406000209060ff801983541691151516179055565b346102b95760203660031901126102b957612306612630565b61230f33612699565b600080516020612934833981519152908160005260205260ff604060002054161561029c57506001600160a01b031660008181527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ab60205260408120805460ff191690557f44bafc4f401629559a75983a793fbd59ca0fb68d5ce639c31163abb9aee34dd09080a2005b346102b95760203660031901126102b9576004356123b633612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c577f71be51d23d0c40daf00d57bce64618e847c32e7c35d55173d26051d82fd1851b602083807ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b955604051908152a1005b346102b95760403660031901126102b957612444612630565b61244c612646565b61245533612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c57506001600160a01b03908116918215610541571660008181527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b36020526040812080546001600160a01b031916841790557f21dde85c5e4584f41f76a85fa8cbdea9f2136b61d50ccfd77e7ebeeea2a4958d9080a3005b346102b95760003660031901126102b95761250b33612699565b600080516020612994833981519152908160005260205260ff604060002054161561029c57600080516020612914833981519152805460ff60a01b191690557fd47973dd192c0c30454470a9dbe5c3afb68f03d611242d7c047c3f5c69cabe5b600080a1005b346102b95760403660031901126102b95761258a612630565b61259261265c565b9061259c33612699565b600080516020612974833981519152908160005260205260ff604060002054161561029c575060207fcad4500b5763d491bb6b5c43f45df2fdc90f3f78ef5029c0b1f5e68c4103c6c69160018060a01b031692836000527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1e82526107dc8160406000209060ff801983541691151516179055565b600435906001600160a01b03821682036102b957565b602435906001600160a01b03821682036102b957565b6024359081151582036102b957565b9181601f840112156102b95782359167ffffffffffffffff83116102b957602083818601950101116102b957565b6001600160a01b031660009081527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b46020526040902090565b80548210156126ea5760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b9190600183016000908282528060205260408220541560001461278457845494680100000000000000008610156127705783612760612749886001604098999a018555846126d2565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b90600182019060009281845282602052604084205490811515600014612873576000199180830181811161285f5782549084820191821161284b57808203612816575b50505080548015612802578201916127e583836126d2565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b61283661282661274993866126d2565b90549060031b1c928392866126d2565b905586528460205260408620553880806127cd565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b60001981146128895760010190565b634e487b7160e01b600052601160045260246000fd5b92919267ffffffffffffffff918281116117505760405192601f8201601f19908116603f0116840190811184821017611750576040528294818452818301116102b9578281602093846000960137010152565b908060209392818452848401376000828201840152601f01601f191601019056fefce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548aa1effbbff9c66c5e59634f24fe842750c60d18891155c32dd155fc2d661a4c86d316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d361c92169ef077349011ff0b1383c894d86c5f0b41d986366b58a6cf31e93beda427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa164736f6c6343000813000a