0 txs
1 call
constructor
No constructor.
functions
getMinLiquidityRatio
viewfunction getMinLiquidityRatio() view returns (uint256)
getNominatedPoolOwner
viewfunction getNominatedPoolOwner(uint128 poolId) view returns (address)
getPoolCollateralConfiguration
viewfunction getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple config)
getPoolCollateralIssuanceRatio
viewfunction getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)
getPoolConfiguration
viewfunction getPoolConfiguration(uint128 poolId) view returns (tuple[])
getPoolName
viewfunction getPoolName(uint128 poolId) view returns (string poolName)
getPoolOwner
viewfunction getPoolOwner(uint128 poolId) view returns (address)
acceptPoolOwnership
nonpayablefunction acceptPoolOwnership(uint128 poolId)
createPool
nonpayablefunction createPool(uint128 requestedPoolId, address owner)
getPoolDebtPerShare
nonpayablefunction getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)
getPoolTotalDebt
nonpayablefunction getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)
nominatePoolOwner
nonpayablefunction nominatePoolOwner(address nominatedOwner, uint128 poolId)
rebalancePool
nonpayablefunction rebalancePool(uint128 poolId, address optionalCollateralType)
renouncePoolNomination
nonpayablefunction renouncePoolNomination(uint128 poolId)
renouncePoolOwnership
nonpayablefunction renouncePoolOwnership(uint128 poolId)
revokePoolNomination
nonpayablefunction revokePoolNomination(uint128 poolId)
setMinLiquidityRatio
nonpayablefunction setMinLiquidityRatio(uint256 minLiquidityRatio)
setPoolCollateralConfiguration
nonpayablefunction setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple newConfig)
setPoolCollateralDisabledByDefault
nonpayablefunction setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)
setPoolConfiguration
nonpayablefunction setPoolConfiguration(uint128 poolId, tuple[] newMarketConfigurations)
setPoolName
nonpayablefunction setPoolName(uint128 poolId, string name)
events
PoolCollateralConfigurationUpdated
event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, (uint256 collateralLimitD18, uint256 issuanceRatioD18) config)
PoolCollateralDisabledByDefaultSet
event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)
PoolConfigurationSet
event PoolConfigurationSet(uint128 indexed poolId, (uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)
PoolCreated
event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)
PoolNameUpdated
event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)
PoolNominationRenounced
event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)
PoolNominationRevoked
event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)
PoolOwnerNominated
event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)
PoolOwnershipAccepted
event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)
PoolOwnershipRenounced
event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)
SetMinLiquidityRatio
event SetMinLiquidityRatio(uint256 minLiquidityRatio)
errors
CapacityLocked
error CapacityLocked(uint256 marketId)
EmptyDistribution
error EmptyDistribution()
EmptyRevertReason
error EmptyRevertReason()
Errors
error Errors(bytes[] errors)
FeatureUnavailable
error FeatureUnavailable(bytes32 which)
InvalidParameter
error InvalidParameter(string parameter, string reason)
MarketNotFound
error MarketNotFound(uint128 marketId)
MinDelegationTimeoutPending
error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)
OverflowInt256ToInt128
error OverflowInt256ToInt128()
OverflowInt256ToUint256
error OverflowInt256ToUint256()
OverflowUint128ToInt128
error OverflowUint128ToInt128()
OverflowUint256ToInt256
error OverflowUint256ToInt256()
OverflowUint256ToUint128
error OverflowUint256ToUint128()
PoolAlreadyExists
error PoolAlreadyExists(uint128 poolId)
PoolNotFound
error PoolNotFound(uint128 poolId)
Unauthorized
error Unauthorized(address addr)
ZeroAddress
error ZeroAddress()
creation bytecode
0x608060405234801561001057600080fd5b5061492b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80639851af01116100b8578063c77e51f61161007c578063c77e51f614610286578063ca5bed77146102a6578063caab529b146102b9578063efecf137146102cc578063f86e6f91146102ec578063fd85c1f81461030c57600080fd5b80639851af011461020f5780639b20dc891461023a578063bbdd7c5a1461024d578063c4d2aad314610260578063c707a39f1461027357600080fd5b80634c6568b1116100ff5780634c6568b1146101b05780635a4aabb1146101c35780635d8c8844146101d65780636141f7a2146101e95780637cc14a92146101fc57600080fd5b806311e72a431461013c578063183231d7146101515780631f1b33b9146101645780632ad713861461017757806334078a011461019d575b600080fd5b61014f61014a366004613ea0565b610314565b005b61014f61015f366004613f5c565b610398565b61014f610172366004613f8f565b6103dd565b61018a610185366004613f8f565b61045f565b6040519081526020015b60405180910390f35b61014f6101ab366004613faa565b61048d565b61014f6101be366004613fc3565b6104d5565b61014f6101d1366004613fff565b610549565b61014f6101e4366004614080565b6105d7565b61014f6101f7366004614184565b610ae8565b61014f61020a366004613f8f565b610b74565b61022261021d366004613f8f565b610c2a565b6040516001600160a01b039091168152602001610194565b61018a610248366004613f8f565b610c48565b61022261025b366004613f8f565b610c76565b61018a61026e366004613f5c565b610c94565b61014f610281366004613f8f565b610cc8565b610299610294366004613f5c565b610d7b565b60405161019491906141ae565b61014f6102b4366004613f8f565b610dd4565b61014f6102c7366004613f5c565b610e65565b6102df6102da366004613f8f565b610f02565b60405161019491906141c5565b6102ff6102fa366004613f8f565b611029565b6040516101949190614273565b61018a6110c7565b600061031f836110d7565b90506103328361032d611133565b611170565b600181016103408382614306565b50610349611133565b6001600160a01b0316836001600160801b03167f63b42abaf7e145a993f20bc64259f45d09c43d18838ab0bca078b15093ac55f48460405161038b9190614273565b60405180910390a3505050565b60006103a3836110d7565b90506103af81836111bd565b506001600160a01b038216156103cf576103c98183611329565b50505050565b6103d8816113a8565b505050565b6103e98161032d611133565b60006103f4826114f2565b60030180546001600160a01b0319166001600160a01b039290921691909117905561041d611133565b6001600160a01b0316816001600160801b03167fa20a605599b6da4a06e0662f1284c442a576bc452b77a38c8c55805cb82a186560405160405180910390a350565b60008061046b836110d7565b90506104788160006111bd565b5061048281611568565b600f0b949350505050565b6104956115b4565b8061049e6115f1565b556040518181527f66fd484d9868d1faddc8fef1f3faed0ed25eb4e6acde49dd1f2cbf0fba9036359060200160405180910390a150565b60006104e0836110d7565b90506104ee8361032d611133565b600b8101805460ff1916831515908117909155604080516001600160801b038616815260208101929092527fe0ed98ef42e6a4a881ae0d3c4459c9ed06a36a2144e02efc11823c6cae515bf2910160405180910390a1505050565b6000610554846110d7565b90506105628461032d611133565b6001600160a01b0383166000908152600a820160209081526040918290208451815590840151600190910155516001600160801b038516907f5ebb5c59166ab9735b293a159ee2129e61d16b526867763f25557a275a2aad92906105c990869086906143c5565b60405180910390a250505050565b60006105e2836110d7565b90506105f08361032d611133565b600981015461060c9082906000906001600160401b031661166a565b6106178160006111bd565b506000806106258385611818565b915091506000806000856005018054905087511061064757600586015461064a565b86515b90505b8083101561072057868381518110610667576106676143ec565b6020026020010151866005018481548110610684576106846143ec565b60009182526020918290208351928401516001600160801b03938416600160801b918516919091021760029290920201908155604090920151600190920180546001600160801b0319169290911691909117905586518790849081106106ec576106ec6143ec565b6020026020010151602001516001600160801b03168261070c9190614418565b9150826107188161442b565b93505061064d565b86518310156107ea578560050187848151811061073f5761073f6143ec565b6020908102919091018101518254600180820185556000948552938390208251938301516001600160801b03948516600160801b9186169190910217600290920201908155604090910151920180546001600160801b0319169290911691909117905586518790849081106107b6576107b66143ec565b6020026020010151602001516001600160801b0316826107d69190614418565b9150826107e28161442b565b935050610720565b60058601546000906107fd908590614444565b9050600093505b8084101561085c578660050180548061081f5761081f614457565b60008281526020812060026000199093019283020190815560010180546001600160801b03191690559055836108548161442b565b945050610804565b600085516001600160401b0381111561087757610877613e32565b6040519080825280602002602001820160405280156108aa57816020015b60608152602001906001900390816108955790505b509050600094505b8551851080156108e557508585815181106108cf576108cf6143ec565b60200260200101516001600160801b0316600014155b156109725761091a61090f878781518110610902576109026143ec565b6020026020010151611e3c565b6402540be3ff611e93565b905081868151811061092e5761092e6143ec565b602002602001018190525061095f86868151811061094e5761094e6143ec565b60200260200101518b600080611f6e565b508461096a8161442b565b9550506108b2565b61097b81611fc9565b61098484612112565b6004890180546001600160801b0319166001600160801b03929092169190911790556109af886113a8565b600094505b8651851080156109e757508685815181106109d1576109d16143ec565b60200260200101516001600160801b0316600014155b15610a6c57610a09610a04888781518110610902576109026143ec565b612140565b15610a5a57868581518110610a2057610a206143ec565b60200260200101516040516391b9419f60e01b8152600401610a5191906001600160801b0391909116815260200190565b60405180910390fd5b84610a648161442b565b9550506109b4565b60098801805467ffffffffffffffff1916426001600160401b0316179055610a92611133565b6001600160a01b03168a6001600160801b03167fdd812c2e47943d98e6c66b2b9872d1f9270b8523c82eb60ad5c8d580a614081c8b604051610ad491906141c5565b60405180910390a350505050505050505050565b610af48161032d611133565b81610afe826114f2565b60030180546001600160a01b0319166001600160a01b0392909216919091179055610b27611133565b6001600160a01b0316826001600160a01b0316826001600160801b03167f55d98f82a53fb5776e9ea48d624ab9cb015b51a45249b1ed8425fc857c82f4f860405160405180910390a45050565b6000610b7f826114f2565b9050610b89611133565b60028201546001600160a01b03908116911614610bcd57610ba8611133565b60405163472511eb60e11b81526001600160a01b039091166004820152602401610a51565b6002810180546001600160a01b0319169055610be7611133565b6001600160a01b0316826001600160801b03167f0d1df5c898ce9334fe91f342f5c07b0eea630d388f90b4e07e85753d6125273460405160405180910390a35050565b6000610c35826114f2565b600301546001600160a01b031692915050565b600080610c54836110d7565b9050610c618160006111bd565b5060040154600160801b9004600f0b92915050565b6000610c81826114f2565b600201546001600160a01b031692915050565b6000610c9f836110d7565b6001600160a01b0383166000908152600a91909101602052604090206001015490505b92915050565b6000610cd3826114f2565b9050610cdd611133565b60038201546001600160a01b03908116911614610cfc57610ba8611133565b610d04611133565b6002820180546001600160a01b03929092166001600160a01b03199283161790556003820180549091169055610d38611133565b6001600160a01b0316826001600160801b03167f4f86f2ce8b08e27d0e470f4269b71c3bbc68407d51a2e692f6573236074ebc5a60405160405180910390a35050565b6040805180820190915260008082526020820152610d98836110d7565b6001600160a01b0383166000908152600a9190910160209081526040918290208251808401909352805483526001015490820152905092915050565b6000610ddf826114f2565b9050610de9611133565b60038201546001600160a01b03908116911614610e0857610ba8611133565b6003810180546001600160a01b0319169055610e22611133565b6001600160a01b0316826001600160801b03167f28301da5fb0feefb138efa6310af4547a74f415d62616f90519436dc169c3ae060405160405180910390a35050565b610e7b6918dc99585d19541bdbdb60b21b612197565b6001600160a01b038116610ea25760405163d92e233d60e01b815260040160405180910390fd5b610eac82826121cb565b50610eb5611133565b6001600160a01b0316816001600160a01b0316836001600160801b03167fb1517ad708e5f9a104c30d3f1ff749d55833b1d03bf472013c29888e741cf34060405160405180910390a45050565b60606000610f0f836114f2565b60058101549091506000906001600160401b03811115610f3157610f31613e32565b604051908082528060200260200182016040528015610f7c57816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610f4f5790505b50905060005b600583015481101561102157826005018181548110610fa357610fa36143ec565b600091825260209182902060408051606081018252600290930290910180546001600160801b038082168552600160801b9091041693830193909352600190920154600f0b918101919091528251839083908110611003576110036143ec565b602002602001018190525080806110199061442b565b915050610f82565b509392505050565b6060611034826114f2565b600101805461104290614286565b80601f016020809104026020016040519081016040528092919081815260200182805461106e90614286565b80156110bb5780601f10611090576101008083540402835291602001916110bb565b820191906000526020600020905b81548152906001019060200180831161109e57829003601f168201915b50505050509050919050565b60006110d16115f1565b54919050565b6000806110e3836114f2565b90506001600160801b0383161580159061110a575080546001600160801b03848116911614155b15610cc2576040516332b961eb60e01b81526001600160801b0384166004820152602401610a51565b600073e2c5658cc5c448b48141168f3e475df8f65a1e3e33148015611159575060143610155b1561116b575060131936013560601c90565b503390565b806001600160a01b0316611183836114f2565b600201546001600160a01b0316146111b95760405163472511eb60e11b81526001600160a01b0382166004820152602401610a51565b5050565b815460058301546000916001600160801b03169082906001600160401b038111156111ea576111ea613e32565b60405190808252806020026020018201604052801561121d57816020015b60608152602001906001900390816112085790505b50905060005b60058601548110156112c2576000611268876005018381548110611249576112496143ec565b60009182526020909120600290910201546001600160801b0316611e3c565b9050611279816402540be3ff611e93565b905083838151811061128d5761128d6143ec565b60209081029190910101526112a28185612273565b6112ac908661446d565b94505080806112ba9061442b565b915050611223565b506112cc81611fc9565b6112d685846122f8565b6001600160a01b03841615611321576001600160a01b03841661131f6112ff6006880183612346565b6001600160a01b0387166000908152600889016020526040902090612376565b505b505092915050565b6000806000611349670de0b6b3a764000061134386612392565b90612400565b9150915061135681612591565b6001600160a01b0384166000908152600886016020526040812061137a90846125a1565b509050611394600687016001600160a01b038716836125e0565b5061139e866113a8565b5090949350505050565b60048101546001600160801b031660008190036113c3575050565b6000806113cf84611568565b9150915060006113dd6115f1565b54905060005b60058601548110156114ea576000866005018281548110611406576114066143ec565b60009182526020822060029091020180549092506001600160801b03600160801b909104169087611437838961448d565b61144191906144ba565b835490915060009061145b906001600160801b0316611e3c565b90506000808260100154116114705786611476565b81601001545b8254909150600090611496906001600160801b031683600f8c900b61266b565b6001870154909150600f0b8082126114ae57806114b0565b815b87548e549193506114cf916001600160801b0391821691168488611f6e565b505050505050505080806114e29061442b565b9150506113e3565b505050505050565b6000808260405160200161154991906040808252601b908201527f696f2e73796e7468657469782e73796e7468657469782e506f6f6c000000000060608201526001600160801b0391909116602082015260800190565b60408051601f1981840301815291905280516020909101209392505050565b60068101546001600160801b03166000816115845760006115ad565b6115ad6115a8611593846126df565b6004860154600160801b9004600f0b90612709565b612728565b9050915091565b6115bc612764565b6001600160a01b0316336001600160a01b0316146115ef5760405163472511eb60e11b8152336004820152602401610a51565b565b60008060405160200161164c906020808252602e908201527f696f2e73796e7468657469782e73796e7468657469782e53797374656d506f6f60408201526d3621b7b73334b3bab930ba34b7b760911b606082015260800190565b60408051601f19818403018152919052805160209091012092915050565b60006116758461277d565b905061168763ffffffff8216836144ce565b6001600160401b03164210801561172957508354604080517f6163636f756e744f766572726964654d696e44656c656761746554696d65000060208201526001600160801b038087169282019290925291166060820152600190611709906080015b6040516020818303038152906040528051906020012063bbf81e00612820565b61171c906001600160401b038516614418565b6117269190614444565b42105b80156117b4575060016117947f73656e6465724f766572726964654d696e44656c656761746554696d6500000061175e611133565b87546040805160208101949094526001600160a01b03909216918301919091526001600160801b031660608201526080016116e9565b6117a7906001600160401b038516614418565b6117b19190614444565b42105b156103c95783546001600160801b0316426117d563ffffffff8416856144ce565b6001600160401b03166117e89190614444565b604051637ec5c33560e11b81526001600160801b03909216600483015263ffffffff166024820152604401610a51565b60608060008060008087600501805490506001600160401b0381111561184057611840613e32565b604051908082528060200260200182016040528015611869578160200160208202803683370190505b5060058901549096506001600160401b0381111561188957611889613e32565b6040519080825280602002602001820160405280156118b2578160200160208202803683370190505b5094506000805b8851811015611908578881815181106118d4576118d46143ec565b6020026020010151602001516001600160801b0316826118f49190614418565b9150806119008161442b565b9150506118b9565b5060005b8851811015611dac57826001600160801b0316898281518110611931576119316143ec565b6020026020010151600001516001600160801b0316116119c95760408051634bab873760e11b8152600481019190915260076044820152666d61726b65747360c81b606482015260806024820152602c60848201527f6d75737420626520737570706c69656420696e207374726963746c792061736360a48201526b32b73234b7339037b93232b960a11b60c482015260e401610a51565b8881815181106119db576119db6143ec565b60200260200101516000015192508881815181106119fb576119fb6143ec565b6020026020010151602001516001600160801b0316600003611a805760408051634bab873760e11b8152600481019190915260076044820152667765696768747360c81b606482015260806024820152601760848201527f776569676874206d757374206265206e6f6e2d7a65726f00000000000000000060a482015260c401610a51565b60058a015486108015611ae65750888181518110611aa057611aa06143ec565b6020026020010151600001516001600160801b03168a6005018781548110611aca57611aca6143ec565b60009182526020909120600290910201546001600160801b0316105b15611bbb57896005018681548110611b0057611b006143ec565b60009182526020909120600290910201546001600160801b03168886611b258161442b565b975081518110611b3757611b376143ec565b6001600160801b039092166020928302919091019091015287611b5b600187614444565b81518110611b6b57611b6b6143ec565b6020026020010151878580611b7f9061442b565b965081518110611b9157611b916143ec565b6001600160801b039092166020928302919091019091015285611bb38161442b565b965050611a80565b60058a015486108015611c215750888181518110611bdb57611bdb6143ec565b6020026020010151600001516001600160801b03168a6005018781548110611c0557611c056143ec565b60009182526020909120600290910201546001600160801b0316145b15611d9a57896005018681548110611c3b57611c3b6143ec565b906000526020600020906002020160010160009054906101000a9004600f0b600f0b898281518110611c6f57611c6f6143ec565b602002602001015160400151600f0b1280611d2a575060048a015460058b018054611ce9926001600160801b031691611ce391600991611cdd918c908110611cb957611cb96143ec565b6000918252602090912060029091020154600160801b90046001600160801b031690565b9061282c565b90612843565b611d2883611ce36009611cdd8e8781518110611d0757611d076143ec565b6020026020010151602001516001600160801b03166001600160801b031690565b105b15611d8c57888181518110611d4157611d416143ec565b602002602001015160000151888680611d599061442b565b975081518110611d6b57611d6b6143ec565b60200260200101906001600160801b031690816001600160801b0316815250505b85611d968161442b565b9650505b80611da48161442b565b91505061190c565b505b6005890154851015611e3057886005018581548110611dcf57611dcf6143ec565b60009182526020909120600290910201546001600160801b03168684611df48161442b565b955081518110611e0657611e066143ec565b6001600160801b039092166020928302919091019091015284611e288161442b565b955050611dae565b50505050509250929050565b6000808260405160200161154991906040808252601d908201527f696f2e73796e7468657469782e73796e7468657469782e4d61726b657400000060608201526001600160801b0391909116602082015260800190565b60006060600080611ea386612862565b8051919350915015611ebc57600093509150611f679050565b6003860154600090611ed190600f0b846144ee565b90506000611ee0888389612939565b91505080158015611efd5750600a8801546001600160801b031615155b15611f4e576003880154611f2290611f1890600f0b866144ee565b600a8a0190612d19565b611f2b84612728565b6003890180546001600160801b0319166001600160801b03929092169190911790555b6040805160208101909152600081529015955093505050505b9250929050565b600080611f7a86611e3c565b60018101549091506001600160a01b0316611fb35760405163784060f560e11b81526001600160801b0387166004820152602401610a51565b611fbf81868587612dd6565b9695505050505050565b6000805b8251811015612019576000838281518110611fea57611fea6143ec565b602002602001015151111561200757816120038161442b565b9250505b806120118161442b565b915050611fcd565b5080156111b9576000816001600160401b0381111561203a5761203a613e32565b60405190808252806020026020018201604052801561206d57816020015b60608152602001906001900390816120585790505b5090506000805b84518110156120f6576000858281518110612091576120916143ec565b60200260200101515111156120e4578481815181106120b2576120b26143ec565b60200260200101518383806120c69061442b565b9450815181106120d8576120d86143ec565b60200260200101819052505b806120ee8161442b565b915050612074565b5081604051630b42fd1760e01b8152600401610a51919061450e565b60006001600160801b0382111561213c57604051637d5864af60e11b815260040160405180910390fd5b5090565b600080600061214e84613015565b9150915061215b81612591565b61216c612167856130ff565b6126df565b612175836126df565b600286015461218e9190600160801b9004600f0b61446d565b12949350505050565b6121a8816121a3611133565b613179565b6121c857604051637e023fb760e01b815260048101829052602401610a51565b50565b60006001600160801b03831615806121fd5750826001600160801b03166121f1846114f2565b546001600160801b0316145b1561222657604051631551f68960e11b81526001600160801b0384166004820152602401610a51565b61222f836114f2565b80546001600160801b0319166001600160801b0394909416939093178355506002820180546001600160a01b0319166001600160a01b039290921691909117905590565b60008061228c600a85016001600160801b038516612346565b6001600160801b038085166000908152600c8701602052604090205491925082916122bf91600160801b909104166131bf565b600f0b6122cc919061446d565b6001600160801b039384166000908152600c909501602052604090942080549093169092555090919050565b61230181612728565b600483015461231a9190600160801b9004600f0b614570565b6004830180546001600160801b03928316600160801b0292169190911790556111b96006830182612d19565b60008181526001830160205260408120805461236e90859083906001600160801b03166131f2565b949350505050565b8154600090815260038301602052604090206111b99082613239565b6000808260405160200161154991906040808252602e908201527f696f2e73796e7468657469782e73796e7468657469782e436f6c6c617465726160608201526d3621b7b73334b3bab930ba34b7b760911b60808201526001600160a01b0391909116602082015260a00190565b60006060600061240e61328f565b6040805160208101825291546001600160a01b03168252805160018082528183019092529192506000919081602001602082028036833750506040805160018082528183019092529293506000929150602080830190803683370190505090506373697a6560e01b82600081518110612489576124896143ec565b6020026020010181815250508560001b816000815181106124ac576124ac6143ec565b60209081029190910101528251600480890154604051636d51285f60e11b81526001600160a01b039093169263daa250be926124ed929187918791016145d8565b608060405180830381865afa925050508015612526575060408051601f3d908101601f1916820190925261252391810190614603565b60015b612569573d808015612554576040519150601f19603f3d011682016040523d82523d6000602084013e612559565b606091505b50600095509350611f6792505050565b8051612574906132e0565b604051806020016040528060008152509550955050505050611f67565b8051156121c8576121c881613303565b81546000908152600383016020526040812081906125cb846125c58360030161332e565b90613379565b92506125d68161338e565b9150509250929050565b60006125ec84846133b4565b6000848152600186016020526040812091925061260884612112565b825487549192506001600160801b039081169161262791849116614668565b6126319190614688565b86546001600160801b03199081166001600160801b039283161788558354169082161782556126618683866131f2565b5050509392505050565b60008061267785611e3c565b9050600061268782600a016133cf565b9050600085156126a8576126a3670de0b6b3a764000087612843565b6126b2565b670de0b6b3a76400005b9050846126be826126df565b6126c8908461446d565b6126d291906144ee565b93505050505b9392505050565b60006001600160ff1b0382111561213c5760405163677c430560e11b815260040160405180910390fd5b60008161271e670de0b6b3a7640000856146a8565b6126d891906146d8565b600060016001607f1b0319821280612746575060016001607f1b0382135b1561213c57604051634022cc0360e01b815260040160405180910390fd5b600061276e6133e9565b546001600160a01b0316919050565b6000805b60058301548110156127d55760006127a7846005018381548110611249576112496143ec565b600f015463ffffffff908116915083168111156127c2578092505b50806127cd8161442b565b915050612781565b5060006128057f7365744d61726b65744d696e44656c656761746554696d655f6d61780000000062278d00612820565b90508163ffffffff168163ffffffff1610610cc25750919050565b60006126d88383613439565b600061283982600a6147ea565b6126d8908461448d565b600081612858670de0b6b3a76400008561448d565b6126d891906144ba565b600060606000806128728561348f565b9150915060008061288287613015565b91509150600083511180612897575060008151115b156128ff57604080518082018252848152602081018390529051630b42fd1760e01b916128c6916024016147f6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529450612930565b612908826126df565b6002880154600f0b612919866126df565b612923919061446d565b61292d91906144ee565b95505b50505050915091565b6000808360000361294f57506000905080612d11565b60008060008087131561296f57506001915050600486016007870161297f565b5060001991505060078601600487015b60005b86811015612cc05761299383613549565b15612cc05760006129a38461356c565b905060006129b1888b6144ee565b1380156129c95750600a8a01546001600160801b0316155b80612a1b5750600a8a01546001600160801b031615801590612a1b57506129f98a6129f4898c6144ee565b61358b565b85600f0b612a0791906146a8565b8160200151612a1590614843565b600f0b12155b15612a265750612cc0565b612a3084846135e2565b600a8a01546001600160801b031615612aba576000612a99612a548c600a016133cf565b6020840151612a6289614843565b612a6c9190614869565b600f0b612a7991906144ee565b600a8d0154612a90906001600160801b03166131bf565b600f0b9061360d565b9050612aa8600a8c0182612d19565b612ab2818961446d565b975050612b0a565b612aea6115a86009612ae4846020015189612ad490614843565b612ade9190614869565b600f0b90565b90613622565b600a8b0180546001600160801b03928316600160801b0292169190911790555b6000891315612c115780516001600160801b039081166000908152600b8c01602052604090205416612b7e5760405162461bcd60e51b815260206004820152601e60248201527f6e6f20736861726573206265666f7265206163746f722072656d6f76616c00006044820152606401610a51565b8051600090612ba590612ba0906001600160801b0316600a8e019060006125e0565b6132e0565b9050612bb081612112565b82516001600160801b039081166000908152600c8e016020526040902080549091601091612be7918591600160801b900416614668565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555050612cad565b80516001600160801b039081166000908152600b8c0160205260409020541615612c7d5760405162461bcd60e51b815260206004820152601b60248201527f6163746f722068617320736861726573206265666f72652061646400000000006044820152606401610a51565b80516001600160801b039081166000818152600c8d016020526040902054612cab92600a8e019291166125e0565b505b5080612cb88161442b565b915050612982565b612cc986612728565b60038a018054600090612ce0908490600f0b614570565b92506101000a8154816001600160801b030219169083600f0b6001600160801b031602179055508681149450505050505b935093915050565b80600003612d25575050565b81546001600160801b03166000819003612d5257604051633b182f5560e01b815260040160405180910390fd5b6000612d6a6b033b2e3c9fd0803ce8000000846146a8565b90506000612d77836126df565b612d8190836146d8565b9050612d8c81612728565b85548690601090612da8908490600160801b9004600f0b614570565b92506101000a8154816001600160801b030219169083600f0b6001600160801b031602179055505050505050565b600080612de3868661363c565b90506000612df18787613668565b9050612dfc85612112565b6001600160801b038781166000908152600c8a016020526040812080546001600160801b03191693909216929092179055612e3c6115a8600a8a016133cf565b905085600003612e6757612e53600489018861368e565b50612e61600789018861368e565b50612ecd565b80600f0b851215612e9c5760009550612e83600489018861368e565b50612e6187612e9187612728565b60078b0191906136c8565b612ebd87612ea987612728565b612eb290614843565b60048b0191906136c8565b50612ecb600789018861368e565b505b6000612ee6600a8a016001600160801b038a16896125e0565b6001600160801b03808a166000908152600c8c0160205260409020549192508291612f1991600160801b909104166131bf565b600f0b612f26919061446d565b6001600160801b03808a166000908152600c8c0160205260409020805490911690559450600f82900b861315612faa57612f646115a88a898961378c565b60028a018054601090612f82908490600160801b9004600f0b614570565b92506101000a8154816001600160801b030219169083600f0b6001600160801b031602179055505b81600f0b83131561300957612fc36115a88a868661378c565b60028a018054601090612fe1908490600160801b9004600f0b614889565b92506101000a8154816001600160801b030219169083600f0b6001600160801b031602179055505b50505050949350505050565b600060606000805b600d8501548110156130f657600085600d018281548110613040576130406143ec565b600091825260208083206040805180820190915260029093020180546001600160a01b03168084526001909101549183019190915290925061308190612392565b905081602001516000036130965750506130e4565b6000806130a7838560200151612400565b80519193509150156130c3576000999098509650505050505050565b60208401516130d3908390613379565b6130dd9087614418565b9550505050505b806130ee8161442b565b91505061301d565b50939092509050565b600181015481546040516257f3c960e91b81526001600160801b0390911660048201526000916001600160a01b03169063afe7920090602401602060405180830381865afa158015613155573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc291906148b6565b600080613185846137c0565b6001810154909150610100900460ff16156131a4576000915050610cc2565b600181015460ff168061236e575061236e6002820184613819565b600060016001607f1b036001600160801b038316111561213c57604051634593782f60e11b815260040160405180910390fd5b60006131fe848461383b565b90508115613217578354600160801b9004600f0b61321a565b60005b83546001600160801b03918216600160801b0291161790925550919050565b6132466001830182612d19565b61324f81612728565b82548390600090613264908490600f0b614570565b92506101000a8154816001600160801b030219169083600f0b6001600160801b031602179055505050565b60008060405160200161164c9060208082526024908201527f696f2e73796e7468657469782e73796e7468657469782e4f7261636c654d616e60408201526330b3b2b960e11b606082015260800190565b60008082121561213c5760405163029f024d60e31b815260040160405180910390fd5b805160008190036133275760405163123b260360e01b815260040160405180910390fd5b8060208301fd5b80546000906b033b2e3c9fd0803ce8000000906001600160801b0381169061336590612ba0908490600160801b9004600f0b61446d565b61336f919061448d565b610cc291906144ba565b6000670de0b6b3a7640000612858838561448d565b80546000906133ab90600160801b8104600f90810b91900b614570565b600f0b92915050565b600081815260018301602052604081206126d890849061383b565b8054600090610cc290600160801b9004600f0b60096138a6565b60008060405160200161164c9060208082526023908201527f696f2e73796e7468657469782e636f72652d636f6e7472616374732e4f776e61604082015262626c6560e81b606082015260800190565b6040805160208082018390526006606083015265436f6e66696760d01b6080808401919091528284018690528351808403909101815260a0909201909252805191012080549081613488578291505b5092915050565b6001810154815460405163bcec0d0f60e01b81526001600160801b0390911660048201526000916060916001600160a01b039091169063bcec0d0f90602401602060405180830381865afa925050508015613507575060408051601f3d908101601f19168201909252613504918101906148b6565b60015b613542573d808015613535576040519150601f19603f3d011682016040523d82523d6000602084013e61353a565b606091505b509050915091565b9150915091565b600181015460009061355c576000610cc2565b600182810154610cc29190614444565b6040805180820190915260008082526020820152610cc28260016138c0565b600a8201546000906001600160801b03166135a75760006135cc565b600a8301546135cc906135c2906001600160801b03166131bf565b8390600f0b612709565b6135d884600a016133cf565b6126d8919061446d565b60006135ed83613949565b90506103c98160000151826020015161360590614843565b8491906136c8565b6000670de0b6b3a764000061271e83856146a8565b600061363261216783600a6147ea565b6126d890846146a8565b60006126d86001600160801b0383166000908152600b850160205260409020546001600160801b031690565b60006136776004840183613968565b6020015161368490614843565b600f0b9392505050565b60408051808201909152600080825260208201526001600160801b03821660009081526002840160205260409020546126d89084906139a2565b604080518082019091526000808252602082015260018401546000036136f1576136f184613b33565b604080518082019091526000808252602082015261370f858561368e565b5084546001600160801b0316856000613727836148cf565b82546101009290920a6001600160801b03818102199093169183160217909155600187810180548201808255600091909152604080518082019091529288168352600f87900b602084015291935061236e92508791849161378791614444565b613b83565b6000806137a861379e86600a016133cf565b612ba090856144ee565b90506137b76121678286613379565b95945050505050565b6040805160208101829052602560608201527f696f2e73796e7468657469782e636f72652d6d6f64756c65732e46656174757260808201526465466c616760d81b60a0820152908101829052600090819060c001611549565b6001600160a01b038116600090815260018301602052604081205415156126d8565b80548254600091829161386291600160801b90819004600f90810b9291909104900b614889565b8354600f9190910b9150600090613881906001600160801b03166131bf565b61388e90600f0b836146a8565b90506137b76b033b2e3c9fd0803ce8000000826146d8565b60006138b661216783600a6147ea565b6126d890846146d8565b6040805180820190915260008082526020820152600183015482106138f85760408051808201909152600080825260208201526126d8565b82600101828154811061390d5761390d6143ec565b6000918252602091829020604080518082019091529101546001600160801b0381168252600160801b9004600f0b918101919091529392505050565b6040805180820190915260008082526020820152610cc28260016139a2565b60408051808201909152600080825260208201526001600160801b03821660009081526002840160205260409020546126d89084906138c0565b60408051808201909152600080825260208201526001830154821015806139c7575081155b156139e657506040805180820190915260008082526020820152610cc2565b60008360010183815481106139fd576139fd6143ec565b6000918252602080832060408051808201825293909101546001600160801b038116808552600160801b909104600f0b8484015284526002880190915282208290556001808701805492945091613a549190614444565b81548110613a6457613a646143ec565b6000918252602091829020604080518082019091529101546001600160801b0381168252600160801b9004600f0b918101919091526001860180549192509080613ab057613ab0614457565b600082815260208120820160001990810191909155019055600185015484101561102157613adf858286613b83565b61102185866001018681548110613af857613af86143ec565b6000918252602091829020604080518082019091529101546001600160801b0381168252600160801b9004600f0b9181019190915286613c4e565b60018101546000036121c857604080518082019091526000808252602080830182815260019485018054958601815583529120915190516001600160801b03908116600160801b02911617910155565b6001811480613bd0575060018301613b9c6002836144ba565b81548110613bac57613bac6143ec565b6000918252602091829020015490830151600160801b909104600f90810b91900b13155b15613be0576103d8838383613dbb565b613c3e8360018101613bf36002856144ba565b81548110613c0357613c036143ec565b6000918252602091829020604080518082019091529101546001600160801b0381168252600160801b9004600f0b9181019190915283613dbb565b6103d883836137876002856144ba565b60018301546000613c6083600261448d565b9050808211613c7957613c74858585613dbb565b613db4565b6000856001018281548110613c9057613c906143ec565b6000918252602091829020604080518082019091529101546001600160801b0381168252600160801b9004600f0b918101919091529050613cd2826001614418565b83118015613d1c57508060200151600f0b86600101836001613cf49190614418565b81548110613d0457613d046143ec565b600091825260209091200154600160801b9004600f0b135b15613d795760018601613d2e8361442b565b92508281548110613d4157613d416143ec565b6000918252602091829020604080518082019091529101546001600160801b0381168252600160801b9004600f0b9181019190915290505b8460200151600f0b8160200151600f0b13613d9e57613d99868686613dbb565b6114ea565b613da9868286613dbb565b6114ea868684613c4e565b5050505050565b81836001018281548110613dd157613dd16143ec565b600091825260208083208451948201516001600160801b03908116600160801b0295811695909517920191909155935190911681526002909301909152604090912055565b80356001600160801b0381168114613e2d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613e6a57613e6a613e32565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613e9857613e98613e32565b604052919050565b60008060408385031215613eb357600080fd5b613ebc83613e16565b91506020808401356001600160401b0380821115613ed957600080fd5b818601915086601f830112613eed57600080fd5b813581811115613eff57613eff613e32565b613f11601f8201601f19168501613e70565b91508082528784828501011115613f2757600080fd5b80848401858401376000848284010152508093505050509250929050565b80356001600160a01b0381168114613e2d57600080fd5b60008060408385031215613f6f57600080fd5b613f7883613e16565b9150613f8660208401613f45565b90509250929050565b600060208284031215613fa157600080fd5b6126d882613e16565b600060208284031215613fbc57600080fd5b5035919050565b60008060408385031215613fd657600080fd5b613fdf83613e16565b915060208301358015158114613ff457600080fd5b809150509250929050565b6000806000838503608081121561401557600080fd5b61401e85613e16565b935061402c60208601613f45565b92506040603f198201121561404057600080fd5b50604051604081018181106001600160401b038211171561406357614063613e32565b604090815285013581526060909401356020850152509093909250565b600080604080848603121561409457600080fd5b61409d84613e16565b92506020808501356001600160401b03808211156140ba57600080fd5b818701915087601f8301126140ce57600080fd5b8135818111156140e0576140e0613e32565b6140ee848260051b01613e70565b8181528481019250606091820284018501918a83111561410d57600080fd5b938501935b828510156141735780858c03121561412a5760008081fd5b614132613e48565b61413b86613e16565b8152614148878701613e16565b878201528786013580600f0b81146141605760008081fd5b8189015284529384019392850192614112565b508096505050505050509250929050565b6000806040838503121561419757600080fd5b6141a083613f45565b9150613f8660208401613e16565b815181526020808301519082015260408101610cc2565b602080825282518282018190526000919060409081850190868401855b8281101561422057815180516001600160801b039081168652878201511687860152850151600f0b85850152606090930192908501906001016141e2565b5091979650505050505050565b6000815180845260005b8181101561425357602081850181015186830182015201614237565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006126d8602083018461422d565b600181811c9082168061429a57607f821691505b6020821081036142ba57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103d857600081815260208120601f850160051c810160208610156142e75750805b601f850160051c820191505b818110156114ea578281556001016142f3565b81516001600160401b0381111561431f5761431f613e32565b6143338161432d8454614286565b846142c0565b602080601f83116001811461436857600084156143505750858301515b600019600386901b1c1916600185901b1785556114ea565b600085815260208120601f198616915b8281101561439757888601518255948401946001909101908401614378565b50858210156143b55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0383168152606081016126d8602083018480518252602090810151910152565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610cc257610cc2614402565b60006001820161443d5761443d614402565b5060010190565b81810381811115610cc257610cc2614402565b634e487b7160e01b600052603160045260246000fd5b808201828112600083128015821682158216171561132157611321614402565b8082028115828204841417610cc257610cc2614402565b634e487b7160e01b600052601260045260246000fd5b6000826144c9576144c96144a4565b500490565b6001600160401b0381811683821601908082111561348857613488614402565b818103600083128015838313168383128216171561348857613488614402565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561456357603f1988860301845261455185835161422d565b94509285019290850190600101614535565b5092979650505050505050565b600f81810b9083900b0160016001607f1b03811360016001607f1b031982121715610cc257610cc2614402565b600081518084526020808501945080840160005b838110156145cd578151875295820195908201906001016145b1565b509495945050505050565b8381526060602082015260006145f1606083018561459d565b8281036040840152611fbf818561459d565b60006080828403121561461557600080fd5b604051608081018181106001600160401b038211171561463757614637613e32565b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b6001600160801b0381811683821601908082111561348857613488614402565b6001600160801b0382811682821603908082111561348857613488614402565b80820260008212600160ff1b841416156146c4576146c4614402565b8181058314821517610cc257610cc2614402565b6000826146e7576146e76144a4565b600160ff1b82146000198414161561470157614701614402565b500590565b600181815b8085111561474157816000190482111561472757614727614402565b8085161561473457918102915b93841c939080029061470b565b509250929050565b60008261475857506001610cc2565b8161476557506000610cc2565b816001811461477b5760028114614785576147a1565b6001915050610cc2565b60ff84111561479657614796614402565b50506001821b610cc2565b5060208310610133831016604e8410600b84101617156147c4575081810a610cc2565b6147ce8383614706565b80600019048211156147e2576147e2614402565b029392505050565b60006126d88383614749565b60208082526000906060830183820185845b600281101561483757601f1987850301835261482584835161422d565b93509184019190840190600101614808565b50919695505050505050565b600081600f0b60016001607f1b0319810361486057614860614402565b60000392915050565b600082600f0b82600f0b0280600f0b915080821461348857613488614402565b600f82810b9082900b0360016001607f1b0319811260016001607f1b0382131715610cc257610cc2614402565b6000602082840312156148c857600080fd5b5051919050565b60006001600160801b038083168181036148eb576148eb614402565b600101939250505056fea26469706673582212208dc10bcb38df3d8a505821588d85d095f4b1e6b899b7707c0790fa388189c82364736f6c63430008110033