0 txs
1 call
constructor
constructor(address stateView, address positionManager, address poolManager)
functions
getPoolKeyOfZora
viewfunction getPoolKeyOfZora(address coin) view returns (tuple)
getSlot0OfZora
viewfunction getSlot0OfZora(address coin) view returns (int256 liquidity, uint160 sqrtPriceX96, int24 tick, uint24 protocolFee, uint24 lpFee)
PANCAKE_INFINITY_CLPOOLMANAGER
viewfunction PANCAKE_INFINITY_CLPOOLMANAGER() view returns (address)
PANCAKE_INFINITY_LBPOOLMANAGER
viewfunction PANCAKE_INFINITY_LBPOOLMANAGER() view returns (address)
PANCAKE_INFINITY_POSITION_MANAGER
viewfunction PANCAKE_INFINITY_POSITION_MANAGER() view returns (address)
POOL_MANAGER
viewfunction POOL_MANAGER() view returns (address)
POOLS_SLOT
viewfunction POOLS_SLOT() view returns (bytes32)
POSITION_MANAGER
viewfunction POSITION_MANAGER() view returns (address)
queryAlgebraTicksSuperCompact
viewfunction queryAlgebraTicksSuperCompact(address pool, uint256 len) view returns (bytes)
queryAlgebraTicksSuperCompact2
viewfunction queryAlgebraTicksSuperCompact2(address pool, uint256 iteration) view returns (bytes)
queryAlgebraTicksSuperCompact3_back
viewfunction queryAlgebraTicksSuperCompact3_back(address pool, uint256 len) view returns (bytes)
queryAlgebraTicksSuperCompact3
viewfunction queryAlgebraTicksSuperCompact3(address pool, uint256 len) view returns (bytes)
queryHorizonTicksSuperCompact
viewfunction queryHorizonTicksSuperCompact(address pool, uint256 iteration) view returns (bytes)
queryIzumiSuperCompact
viewfunction queryIzumiSuperCompact(address pool, uint256 len) view returns (bytes, bytes)
queryPancakeInfinityLBReserve
viewfunction queryPancakeInfinityLBReserve(bytes32 poolId) view returns (uint256 totalReserveX, uint256 totalReserveY)
queryPancakeInfinityTicksSuperCompact
viewfunction queryPancakeInfinityTicksSuperCompact(bytes32 poolId, uint256 len) view returns (bytes)
queryUniv3TicksSuperCompact
viewfunction queryUniv3TicksSuperCompact(address pool, uint256 len) view returns (bytes)
queryUniv4TicksSuperCompact
viewfunction queryUniv4TicksSuperCompact(bytes32 poolId, uint256 len) view returns (bytes)
queryZoraTicksSuperCompact
viewfunction queryZoraTicksSuperCompact(address coin, uint256 len) view returns (bytes)
STATE_VIEW
viewfunction STATE_VIEW() view returns (address)
toId
purefunction toId(tuple poolKey) pure returns (bytes32 poolId)
events
No events.
errors
No errors.
creation bytecode
0x60e06040523480156200001157600080fd5b5060405162005c7438038062005c7483398101604081905262000034916200006f565b6001600160a01b0392831660a05290821660c05216608052620000b9565b80516001600160a01b03811681146200006a57600080fd5b919050565b6000806000606084860312156200008557600080fd5b620000908462000052565b9250620000a06020850162000052565b9150620000b06040850162000052565b90509250925092565b60805160a05160c051615b376200013d60003960008181610141015261407401526000818161030801528181610bf901528181610e7901528181610f83015281816110d20152818161121e015281816141150152818161437b01528181614485015281816145d4015261472001526000818161024d0152613f5f0152615b376000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637df8773a116100b8578063c684206c1161007c578063c684206c1461033d578063c7d19b7614610350578063ca883bec14610378578063cd7f833c1461038b578063d1c62f26146103dc578063f9f59a77146103ef57600080fd5b80637df8773a1461026f57806388c0a8a714610282578063a1bad89c146102e8578063aa4cfccd14610303578063c38f8f351461032a57600080fd5b8063512bcef9116100ff578063512bcef9146101f157806357eb1da714610204578063594a1bf31461020c578063609971071461022d57806362308e851461024857600080fd5b80631bea83fe1461013c5780632d6d225e1461018057806332c961d9146101a0578063417be3f2146101c35780634421ab4b146101d6575b600080fd5b6101637f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61019361018e36600461503d565b610402565b60405161017791906150b9565b6101b56101ae36600461515c565b60a0902090565b604051908152602001610177565b6101936101d136600461503d565b610b63565b61016373a0ffb9c1ce1fe56963b0321b32e7a0302114058b81565b6101936101ff3660046151d6565b611341565b6101b5600681565b61021f61021a36600461503d565b611aed565b6040516101779291906151f8565b6101637355f4c8aba71a1e923edc303eb4feff14608cc22681565b6101637f000000000000000000000000000000000000000000000000000000000000000081565b61019361027d36600461503d565b6125b5565b610295610290366004615226565b612c08565b604051610177919081516001600160a01b03908116825260208084015182169083015260408084015162ffffff169083015260608084015160020b90830152608092830151169181019190915260a00190565b61016373c697d2898e0d09264376196696c51d7abbbaa4a981565b6101637f000000000000000000000000000000000000000000000000000000000000000081565b61019361033836600461503d565b612c9e565b61019361034b36600461503d565b6133bf565b61036361035e366004615243565b61372d565b60408051928352602083019190915201610177565b61019361038636600461503d565b613b32565b61039e610399366004615226565b613eae565b604080519586526001600160a01b03909416602086015260029290920b9284019290925262ffffff918216606084015216608082015260a001610177565b6101936103ea3660046151d6565b614048565b6101936103fd36600461503d565b614842565b606061040c614fe1565b836001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046e919061525c565b60020b815260408051600481526024810182526020810180516001600160e01b03166339db007960e21b17905290516000916001600160a01b038716916104b59190615279565b600060405180830381855afa9150503d80600081146104f0576040519150601f19603f3d011682016040523d82523d6000602084013e6104f5565b606091505b506040015160020b60208401819052835161010093506105169250906152c1565b61052091906152c1565b600290810b604083015281516101009061053e90620d89e7196152c1565b61054891906152c1565b61055291906152fb565b60020b608082015280516101009061056d90620d89e86152c1565b61057791906152c1565b610582906001615320565b600290810b60a083015260208201516000910b1215610615576101006001610100836000015160020b846020015160020b6105bd9190615345565b6105c79190615345565b6105d19190615373565b6105dd9061010061539a565b826000015160020b836020015160020b6105f79190615345565b6106019190615373565b61060b91906153ca565b60c0820152610642565b610100816000015160020b826020015160020b61063291906153de565b61063c91906153ca565b60c08201525b60c081015160e08201526020810151600060029190910b1215610676576040810180519061066f826153f2565b60020b9052505b604081015160020b60608281019190915260005b6106956002866153de565b811080156106b057508260a0015160020b836040015160020b125b156108cd576040838101519051630633bf1f60e51b815260019190910b60048201526000906001600160a01b0388169063c677e3e090602401602060405180830381865afa158015610706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072a9190615415565b905080156108a95760c084015190811c905b6101008110801561075657506107536002886153de565b83105b156108a75760018216801561088d576000866000015160020b838860400151610100610782919061542e565b60020b61078f919061544e565b610799919061539a565b905060008a6001600160a01b0316826040516024016107ba91815260200190565b60408051601f198184030181529181526020820180516001600160e01b031663f30dba9360e01b179052516107ef9190615279565b600060405180830381855afa9150503d806000811461082a576040519150601f19603f3d011682016040523d82523d6000602084013e61082f565b606091505b506040810151909250905060006108536001600160801b038316608086901b61544e565b604051909150610869908a908390602001615476565b6040516020818303038152906040529850878061088590615498565b985050505050505b5060019190911c908061089f81615498565b91505061073c565b505b600060c0850152604084018051906108c0826154b1565b60020b90525061068a9050565b60015b85821080156108ec5750836080015160020b846060015160020b135b15610b56576060840151604051630633bf1f60e51b815260019190910b60048201526000906001600160a01b0389169063c677e3e090602401602060405180830381865afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190615415565b905060008111801561097b575060e085015115155b15610b2d578161098b57806109ae565b6101008560e001516101006109a091906154d2565b6109aa91906153ca565b81901b5b9050600060018660e001516109c391906154d2565b90505b87841015610b2b57600160ff1b82168015610b03576000876000015160020b8389606001516101006109f8919061542e565b60020b610a05919061544e565b610a0f919061539a565b905060008b6001600160a01b031682604051602401610a3091815260200190565b60408051601f198184030181529181526020820180516001600160e01b031663f30dba9360e01b17905251610a659190615279565b600060405180830381855afa9150503d8060008114610aa0576040519150601f19603f3d011682016040523d82523d6000602084013e610aa5565b606091505b50604081015190925090506000610ac96001600160801b038316608086901b61544e565b604051909150610adf908b908390602001615476565b60405160208183030381529060405299508880610afb90615498565b995050505050505b600183901b925081600003610b185750610b2b565b5080610b23816154e5565b9150506109c6565b505b61010060e08601526060850180516000935090610b49826153f2565b60020b9052506108d09050565b5090925050505b92915050565b6060610b6d614fe1565b6000846001600160a01b031663683e76e06040518163ffffffff1660e01b815260040160a060405180830381865afa158015610bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd191906154fc565b606081015160020b835290506000610bea8260a0902090565b905060008190506000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c815641c866040518263ffffffff1660e01b8152600401610c4591815260200190565b608060405180830381865afa158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c86919061556a565b505060020b60208a0181905289516101009650610ca99550935091506152c19050565b610cb391906152c1565b600290810b6040860152845161010090610cd190620d89e7196152c1565b610cdb91906152c1565b610ce591906152fb565b60020b6080850152835161010090610d0090620d89e86152c1565b610d0a91906152c1565b610d15906001615320565b600290810b60a086015260208501516000910b1215610da8576101006001610100866000015160020b876020015160020b610d509190615345565b610d5a9190615345565b610d649190615373565b610d709061010061539a565b856000015160020b866020015160020b610d8a9190615345565b610d949190615373565b610d9e91906153ca565b60c0850152610dd5565b610100846000015160020b856020015160020b610dc591906153de565b610dcf91906153ca565b60c08501525b60c084015160e08501526020840151600060029190910b1215610e095760408401805190610e02826153f2565b60020b9052505b604084015160020b60608581019190915260005b610e286002896153de565b81108015610e4357508560a0015160020b866040015160020b125b1561108557604080870151905163071f32d360e21b81526004810185905260019190910b60248201526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631c7ccb4c90604401602060405180830381865afa158015610ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615415565b905080156110615760c087015190811c905b61010081108015610f105750610f0d60028b6153de565b83105b1561105f57600182168015611045576000896000015160020b838b60400151610100610f3c919061542e565b60020b610f49919061544e565b610f53919061539a565b6040516332bb6ad560e21b815260048101899052600282900b602482015290915060009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063caedab54906044016040805180830381865afa158015610fc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fed91906155f7565b9092509050600061100b6001600160801b038316608086901b61544e565b604051909150611021908a908390602001615476565b6040516020818303038152906040529850878061103d90615498565b985050505050505b5060019190911c908061105781615498565b915050610ef6565b505b600060c088015260408701805190611078826154b1565b60020b905250610e1d9050565b60015b88821080156110a45750866080015160020b876060015160020b135b1561133357606087015160405163071f32d360e21b81526004810186905260019190910b60248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631c7ccb4c90604401602060405180830381865afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111459190615415565b905060008111801561115a575060e088015115155b1561130a578161116a578061118d565b6101008860e0015161010061117f91906154d2565b61118991906153ca565b81901b5b9050600060018960e001516111a291906154d2565b90505b8a84101561130857600160ff1b821680156112e05760008a6000015160020b838c606001516101006111d7919061542e565b60020b6111e4919061544e565b6111ee919061539a565b6040516332bb6ad560e21b8152600481018a9052600282900b602482015290915060009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063caedab54906044016040805180830381865afa158015611264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128891906155f7565b909250905060006112a66001600160801b038316608086901b61544e565b6040519091506112bc908b908390602001615476565b604051602081830303815290604052995088806112d890615498565b995050505050505b600183901b9250816000036112f55750611308565b5080611300816154e5565b9150506111a5565b505b61010060e08901526060880180516000935090611326826153f2565b60020b9052506110889050565b509098975050505050505050565b606061134b614fe1565b60405166ffffffffffffff19851660248201526000907355f4c8aba71a1e923edc303eb4feff14608cc2269060440160408051601f198184030181529181526020820180516001600160e01b03166386b6be7d60e01b179052516113af9190615279565b600060405180830381855afa9150503d80600081146113ea576040519150601f19603f3d011682016040523d82523d6000602084013e6113ef565b606091505b5060c081015190925090506114098160101c62ffffff1690565b60020b83525050604051633205590760e21b815260048101859052849060009073a0ffb9c1ce1fe56963b0321b32e7a0302114058b9063c815641c90602401608060405180830381865afa158015611465573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611489919061556a565b505060020b60208501819052845161010093506114a79250906152c1565b6114b191906152c1565b600290810b60408401528251610100906114cf90620d89e7196152c1565b6114d991906152c1565b6114e391906152fb565b60020b60808301528151610100906114fe90620d89e86152c1565b61150891906152c1565b611513906001615320565b600290810b60a084015260208301516000910b12156115a6576101006001610100846000015160020b856020015160020b61154e9190615345565b6115589190615345565b6115629190615373565b61156e9061010061539a565b836000015160020b846020015160020b6115889190615345565b6115929190615373565b61159c91906153ca565b60c08301526115d3565b610100826000015160020b836020015160020b6115c391906153de565b6115cd91906153ca565b60c08301525b60c082015160e08301526020820151600060029190910b12156116075760408201805190611600826153f2565b60020b9052505b604082015160020b60608381019190915260005b6116266002876153de565b8110801561164157508360a0015160020b846040015160020b125b1561185b576040848101519051633e1a977b60e11b81526004810185905260019190910b602482015260009073a0ffb9c1ce1fe56963b0321b32e7a0302114058b90637c352ef690604401602060405180830381865afa1580156116a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cd9190615415565b905080156118375760c085015190811c905b610100811080156116f957506116f66002896153de565b83105b156118355760018216801561181b576000876000015160020b838960400151610100611725919061542e565b60020b611732919061544e565b61173c919061539a565b6040516316a8822960e21b815260048101899052600282900b602482015290915060009073a0ffb9c1ce1fe56963b0321b32e7a0302114058b90635aa208a490604401608060405180830381865afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c0919061562a565b602081015190915060006117e16001600160801b038316608086901b61544e565b6040519091506117f7908a908390602001615476565b6040516020818303038152906040529850878061181390615498565b985050505050505b5060019190911c908061182d81615498565b9150506116df565b505b600060c08601526040850180519061184e826154b1565b60020b90525061161b9050565b60015b868210801561187a5750846080015160020b856060015160020b135b15611ae1576060850151604051633e1a977b60e11b81526004810186905260019190910b602482015260009073a0ffb9c1ce1fe56963b0321b32e7a0302114058b90637c352ef690604401602060405180830381865afa1580156118e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119069190615415565b905060008111801561191b575060e086015115155b15611ab8578161192b578061194e565b6101008660e0015161010061194091906154d2565b61194a91906153ca565b81901b5b9050600060018760e0015161196391906154d2565b90505b88841015611ab657600160ff1b82168015611a8e576000886000015160020b838a60600151610100611998919061542e565b60020b6119a5919061544e565b6119af919061539a565b6040516316a8822960e21b8152600481018a9052600282900b602482015290915060009073a0ffb9c1ce1fe56963b0321b32e7a0302114058b90635aa208a490604401608060405180830381865afa158015611a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a33919061562a565b60208101519091506000611a546001600160801b038316608086901b61544e565b604051909150611a6a908b908390602001615476565b60405160208183030381529060405299508880611a8690615498565b995050505050505b600183901b925081600003611aa35750611ab6565b5080611aae816154e5565b915050611966565b505b61010060e08701526060860180516000935090611ad4826153f2565b60020b90525061185e9050565b50909695505050505050565b606080611af8614fe1565b846001600160a01b03166358c51ce66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a919061525c565b60020b815260408051600481526024810182526020810180516001600160e01b031663c19d93fb60e01b17905290516000916001600160a01b03881691611ba19190615279565b600060405180830381855afa9150503d8060008114611bdc576040519150601f19603f3d011682016040523d82523d6000602084013e611be1565b606091505b506040015160020b6020840181905283516101009350611c029250906152c1565b611c0c91906152c1565b600290810b6040830152815161010090611c2a90620d89e7196152c1565b611c3491906152c1565b611c3e91906152fb565b60020b6080820152805161010090611c5990620d89e86152c1565b611c6391906152c1565b611c6e906001615320565b600290810b60a083015260208201516000910b1215611d01576101006001610100836000015160020b846020015160020b611ca99190615345565b611cb39190615345565b611cbd9190615373565b611cc99061010061539a565b826000015160020b836020015160020b611ce39190615345565b611ced9190615373565b611cf791906153ca565b60c0820152611d2e565b610100816000015160020b826020015160020b611d1e91906153de565b611d2891906153ca565b60c08201525b60c081015160e08201526020810151600060029190910b1215611d625760408101805190611d5b826153f2565b60020b9052505b604081015160020b6060828101919091528060005b611d826002886153de565b81108015611d9d57508360a0015160020b846040015160020b125b1561215d576040848101519051634c507b9760e11b815260019190910b60048201526000906001600160a01b038a16906398a0f72e90602401602060405180830381865afa158015611df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e179190615415565b905080156121395760c085015190811c905b6101008110156121375760018216801561211d576000876000015160020b838960400151610100611e5a919061542e565b60020b611e67919061544e565b611e71919061539a565b905060008c6001600160a01b031663edcba3b28a6000015184611e9491906152c1565b6040516001600160e01b031960e084901b16815260029190910b6004820152602401602060405180830381865afa158015611ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef7919061525c565b90508060011660020b600103611fdc576040516375c0e0d560e01b8152600283900b60048201526000906001600160a01b038f16906375c0e0d59060240160a060405180830381865afa158015611f52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7691906156ac565b50505091505080600f0b600014611fda576000611fa36001600160801b038316608086901b60120b61544e565b604051909150611fb9908b908390602001615476565b60405160208183030381529060405299508780611fd590615498565b985050505b505b8060021660020b60020361211a576000808e6001600160a01b0316638790aca3856040518263ffffffff1660e01b8152600401612022919060029190910b815260200190565b61014060405180830381865afa158015612040573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206491906156fc565b505050509550505050509150816001600160801b0316600014158061209157506001600160801b03811615155b15612117576040805160e086901b601e0b60208201526001600160901b0319609085811b8216602484015284901b166032820152600091016040516020818303038152906040526120e19061579a565b905089816040516020016120f6929190615476565b6040516020818303038152906040529950888061211290615498565b995050505b50505b50505b5060019190911c908061212f81615498565b915050611e29565b505b600060c086015260408501805190612150826154b1565b60020b905250611d779050565b60015b878210801561217c5750846080015160020b856060015160020b135b156125a7576060850151604051634c507b9760e11b815260019190910b60048201526000906001600160a01b038b16906398a0f72e90602401602060405180830381865afa1580156121d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f69190615415565b905060008111801561220b575060e086015115155b1561257e578161221b578061223e565b6101008660e0015161010061223091906154d2565b61223a91906153ca565b81901b5b9050600060018760e0015161225391906154d2565b90505b8984101561257c57600160ff1b82168015612554576000886000015160020b838a60600151610100612288919061542e565b60020b612295919061544e565b61229f919061539a565b905060008d6001600160a01b031663edcba3b28b60000151846122c291906152c1565b6040516001600160e01b031960e084901b16815260029190910b6004820152602401602060405180830381865afa158015612301573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612325919061525c565b90508060011660020b6001036124135760008e6001600160a01b03166375c0e0d5846040518263ffffffff1660e01b815260040161236c919060029190910b815260200190565b60a060405180830381865afa158015612389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ad91906156ac565b50505091505080600f0b6000146124115760006123da6001600160801b038316608086901b60120b61544e565b6040519091506123f0908c908390602001615476565b6040516020818303038152906040529a50888061240c90615498565b995050505b505b8060021660020b600203612551576000808f6001600160a01b0316638790aca3856040518263ffffffff1660e01b8152600401612459919060029190910b815260200190565b61014060405180830381865afa158015612477573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249b91906156fc565b505050509550505050509150816001600160801b031660001415806124c857506001600160801b03811615155b1561254e576040805160e086901b601e0b60208201526001600160901b0319609085811b8216602484015284901b166032820152600091016040516020818303038152906040526125189061579a565b90508a8160405160200161252d929190615476565b6040516020818303038152906040529a50898061254990615498565b9a5050505b50505b50505b600183901b925081600003612569575061257c565b5080612574816154e5565b915050612256565b505b61010060e0870152606086018051600093509061259a826153f2565b60020b9052506121609050565b509197909650945050505050565b60606125bf614fe1565b60408051600481526024810182526020810180516001600160e01b03166339db007960e21b17905290516000916001600160a01b038716916126019190615279565b600060405180830381855afa9150503d806000811461263c576040519150601f19603f3d011682016040523d82523d6000602084013e612641565b606091505b506040015160020b6020840181905261265f925061010091506152c1565b600290810b6040830152612679610100620d89e7196152c1565b61268391906152fb565b60020b608082015261269a610100620d89e86152c1565b6126a5906001615320565b600290810b60a083015260208201516000910b12156126fd576101008082602001516126d0906157c1565b60020b6126dd91906153ca565b6126e9906101006154d2565b6126f391906153ca565b60c0820152612718565b610100816020015160020b61271291906153ca565b60c08201525b60c081015160e08201526020810151600060029190910b121561274c5760408101805190612745826153f2565b60020b9052505b604081015160020b60608281019190915260005b61276b6002866153de565b8110801561278657508260a0015160020b836040015160020b125b15612991576040838101519051630633bf1f60e51b815260019190910b60048201526000906001600160a01b0388169063c677e3e090602401602060405180830381865afa1580156127dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128009190615415565b9050801561296d5760c084015190811c905b6101008110801561282c57506128296002886153de565b83105b1561296b57600182168015612951576000828760400151610100612850919061542e565b60020b61285d919061544e565b905060008a6001600160a01b03168260405160240161287e91815260200190565b60408051601f198184030181529181526020820180516001600160e01b031663f30dba9360e01b179052516128b39190615279565b600060405180830381855afa9150503d80600081146128ee576040519150601f19603f3d011682016040523d82523d6000602084013e6128f3565b606091505b506040810151909250905060006129176001600160801b038316608086901b61544e565b60405190915061292d908a908390602001615476565b6040516020818303038152906040529850878061294990615498565b985050505050505b5060019190911c908061296381615498565b915050612812565b505b600060c085015260408401805190612984826154b1565b60020b9052506127609050565b60015b85821080156129b05750836080015160020b846060015160020b135b15610b56576060840151604051630633bf1f60e51b815260019190910b60048201526000906001600160a01b0389169063c677e3e090602401602060405180830381865afa158015612a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2a9190615415565b9050600081118015612a3f575060e085015115155b15612bdf5781612a4f5780612a72565b6101008560e00151610100612a6491906154d2565b612a6e91906153ca565b81901b5b9050600060018660e00151612a8791906154d2565b90505b87841015612bdd57600160ff1b82168015612bb5576000828860600151610100612ab4919061542e565b60020b612ac1919061544e565b905060008b6001600160a01b031682604051602401612ae291815260200190565b60408051601f198184030181529181526020820180516001600160e01b031663f30dba9360e01b17905251612b179190615279565b600060405180830381855afa9150503d8060008114612b52576040519150601f19603f3d011682016040523d82523d6000602084013e612b57565b606091505b50604081015190925090506000612b7b6001600160801b038316608086901b61544e565b604051909150612b91908b908390602001615476565b60405160208183030381529060405299508880612bad90615498565b995050505050505b600183901b925081600003612bca5750612bdd565b5080612bd5816154e5565b915050612a8a565b505b61010060e08601526060850180516000935090612bfb826153f2565b60020b9052506129949050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526000826001600160a01b031663683e76e06040518163ffffffff1660e01b815260040160a060405180830381865afa158015612c73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9791906154fc565b9392505050565b6060612ca8614fe1565b6001815260408051600481526024810182526020810180516001600160e01b03166339db007960e21b17905290516000916001600160a01b03871691612cee9190615279565b600060405180830381855afa9150503d8060008114612d29576040519150601f19603f3d011682016040523d82523d6000602084013e612d2e565b606091505b506040015160020b60208401525060009050612d4b8460c861542e565b905061010082600001518360200151612d6491906152c1565b612d6e91906152c1565b600290810b6040840152825160208401516101009190612d8f9085906152fb565b612d9991906152c1565b612da391906152c1565b612dad91906152fb565b60020b6080830152815160208301516101009190612dcc908490615320565b612dd691906152c1565b612de091906152c1565b612deb906001615320565b600290810b60a084015260208301516000910b1215612e7e576101006001610100846000015160020b856020015160020b612e269190615345565b612e309190615345565b612e3a9190615373565b612e469061010061539a565b836000015160020b846020015160020b612e609190615345565b612e6a9190615373565b612e7491906153ca565b60c0830152612eab565b610100826000015160020b836020015160020b612e9b91906153de565b612ea591906153ca565b60c08301525b60c082015160e08301526020820151600060029190910b1215612edf5760408201805190612ed8826153f2565b60020b9052505b604082015160020b60608381019190915260005b612efe6002876153de565b81108015612f1957508360a0015160020b846040015160020b125b15613136576040848101519051630633bf1f60e51b815260019190910b60048201526000906001600160a01b0389169063c677e3e090602401602060405180830381865afa158015612f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f939190615415565b905080156131125760c085015190811c905b61010081108015612fbf5750612fbc6002896153de565b83105b15613110576001821680156130f6576000876000015160020b838960400151610100612feb919061542e565b60020b612ff8919061544e565b613002919061539a565b905060008b6001600160a01b03168260405160240161302391815260200190565b60408051601f198184030181529181526020820180516001600160e01b031663f30dba9360e01b179052516130589190615279565b600060405180830381855afa9150503d8060008114613093576040519150601f19603f3d011682016040523d82523d6000602084013e613098565b606091505b506040810151909250905060006130bc6001600160801b038316608086901b61544e565b6040519091506130d2908a908390602001615476565b604051602081830303815290604052985087806130ee90615498565b985050505050505b5060019190911c908061310881615498565b915050612fa5565b505b600060c086015260408501805190613129826154b1565b60020b905250612ef39050565b60015b86821080156131555750846080015160020b856060015160020b135b15611ae1576060850151604051630633bf1f60e51b815260019190910b60048201526000906001600160a01b038a169063c677e3e090602401602060405180830381865afa1580156131ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cf9190615415565b90506000811180156131e4575060e086015115155b1561339657816131f45780613217565b6101008660e0015161010061320991906154d2565b61321391906153ca565b81901b5b9050600060018760e0015161322c91906154d2565b90505b8884101561339457600160ff1b8216801561336c576000886000015160020b838a60600151610100613261919061542e565b60020b61326e919061544e565b613278919061539a565b905060008c6001600160a01b03168260405160240161329991815260200190565b60408051601f198184030181529181526020820180516001600160e01b031663f30dba9360e01b179052516132ce9190615279565b600060405180830381855afa9150503d8060008114613309576040519150601f19603f3d011682016040523d82523d6000602084013e61330e565b606091505b506040810151909250905060006133326001600160801b038316608086901b61544e565b604051909150613348908b908390602001615476565b6040516020818303038152906040529950888061336490615498565b995050505050505b600183901b9250816000036133815750613394565b508061338c816154e5565b91505061322f565b505b61010060e087015260608601805160009350906133b2826153f2565b60020b9052506131399050565b60606000836001600160a01b031663217ac2376040518163ffffffff1660e01b8152600401608060405180830381865afa158015613401573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061342591906157e3565b5092508291506000905061343a6002866153de565b905060605b620d89e9600285900b12801561345457508186115b156135b05760405163f30dba9360e01b8152600285900b60048201526000906001600160a01b0389169063f30dba9390602401608060405180830381865afa1580156134a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c8919061583f565b50909250600091506134ec90506001600160801b038316608088901b60120b61544e565b6040519091506135029084908390602001615476565b60408051808303601f190181529082905263c0ac75cf60e01b8252600288900b600483015293506000906001600160a01b038b169063c0ac75cf906024016040805180830381865afa15801561355c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135809190615881565b9150508060020b8760020b03613598575050506135b0565b955085886135a5816154e5565b99505050505061343f565b620d89e819600284900b1380156135c75750600086115b156137235760405163f30dba9360e01b8152600284900b60048201526000906001600160a01b0389169063f30dba9390602401608060405180830381865afa158015613617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363b919061583f565b509092506000915061365f90506001600160801b038316608087901b60120b61544e565b6040519091506136759084908390602001615476565b60408051808303601f190181529082905263c0ac75cf60e01b8252600287900b600483015293506000906001600160a01b038b169063c0ac75cf906024016040805180830381865afa1580156136cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136f39190615881565b5090508560020b8160020b0361370b57505050613723565b94508488613718816154e5565b9950505050506135b0565b9695505050505050565b604051633205590760e21b81526004810182905260009081908390829073c697d2898e0d09264376196696c51d7abbbaa4a99063c815641c90602401606060405180830381865afa158015613786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137aa91906158bb565b5050604051634580c3c560e01b81526004810184905262ffffff82166024820152909150600090819073c697d2898e0d09264376196696c51d7abbbaa4a990634580c3c590604401608060405180830381865afa15801561380f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138339190615908565b505091509150816001600160801b03168661384e919061594b565b95506138636001600160801b0382168661594b565b9450825b604051635fbdb94360e11b8152600481018690526000602482015262ffffff8216604482015273c697d2898e0d09264376196696c51d7abbbaa4a99063bf7b728690606401602060405180830381865afa1580156138c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138ed919061595e565b905062ffffff81161580613905575062ffffff818116145b6139bf57604051634580c3c560e01b81526004810186905262ffffff8216602482015273c697d2898e0d09264376196696c51d7abbbaa4a990634580c3c590604401608060405180830381865afa158015613964573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139889190615908565b5091945092506139a390506001600160801b0384168861594b565b96506139b86001600160801b0383168761594b565b9550613867565b60006139cc85600161597b565b90505b604051635fbdb94360e11b8152600481018790526001602482015262ffffff8216604482015273c697d2898e0d09264376196696c51d7abbbaa4a99063bf7b728690606401602060405180830381865afa158015613a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a55919061595e565b905062ffffff81161580613a6d575062ffffff818116145b613b2757604051634580c3c560e01b81526004810187905262ffffff8216602482015273c697d2898e0d09264376196696c51d7abbbaa4a990634580c3c590604401608060405180830381865afa158015613acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613af09190615908565b509195509350613b0b90506001600160801b0385168961594b565b9750613b206001600160801b0384168861594b565b96506139cf565b505050505050915091565b60408051600481526024810182526020810180516001600160e01b031663bba0f17160e01b1790529051606091600091829182916001600160a01b03881691613b7a91615279565b600060405180830381855afa9150503d8060008114613bb5576040519150601f19603f3d011682016040523d82523d6000602084013e613bba565b606091505b50915091508115613be05780806020019051810190613bd9919061525c565b9250613c72565b60408051600481526024810182526020810180516001600160e01b03166339db007960e21b17905290516001600160a01b03881691613c1e91615279565b600060405180830381855afa9150503d8060008114613c59576040519150601f19603f3d011682016040523d82523d6000602084013e613c5e565b606091505b5090925090508115613c7257606081015192505b508190506000613c836002866153de565b905060605b620d89e9600285900b128015613c9d57508186115b15613d9a5760405163f30dba9360e01b8152600285900b6004820152600090819081906001600160a01b038b169063f30dba939060240161012060405180830381865afa158015613cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d169190615997565b505050955095505050935050600083600f0b6001600160801b031660808960020b901b613d43919061544e565b604051909150613d599086908390602001615476565b60405160208183030381529060405294508160020b8860020b03613d805750505050613d9a565b8197508980613d8e906154e5565b9a505050505050613c88565b620d89e819600284900b138015613db15750600086115b156137235760405163f30dba9360e01b8152600284900b6004820152600090819081906001600160a01b038b169063f30dba939060240161012060405180830381865afa158015613e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2a9190615997565b505050955095505050935050600083600f0b6001600160801b031660808860020b901b613e57919061544e565b604051909150613e6d9086908390602001615476565b60405160208183030381529060405294508260020b8760020b03613e945750505050613723565b8296508980613ea2906154e5565b9a505050505050613d9a565b600080600080600080866001600160a01b031663683e76e06040518163ffffffff1660e01b815260040160a060405180830381865afa158015613ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1991906154fc565b90506000613f288260a0902090565b90506000613f3582614fa4565b604051631afeb18d60e11b8152600481810183905260248201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906335fd631a90604401600060405180830381865afa158015613fa6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613fce9190810190615a45565b9050600081600081518110613fe557613fe5615aeb565b602002602001015190508160038151811061400257614002615aeb565b602002602001015160001c99506001600160a01b03811698508060a01c60020b975062ffffff8160b81c16965062ffffff8160d01c169550505050505091939590929450565b6060614052614fe1565b6040516386b6be7d60e01b815266ffffffffffffff19851660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906386b6be7d9060240160a060405180830381865afa1580156140c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140e791906154fc565b606081015160020b8352604051633205590760e21b81526004810187905290915085906000908190819081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c815641c90602401608060405180830381865afa158015614164573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614188919061556a565b505060020b60208901819052885161010096506141ab9550935091506152c19050565b6141b591906152c1565b600290810b60408501528351610100906141d390620d89e7196152c1565b6141dd91906152c1565b6141e791906152fb565b60020b608084015282516101009061420290620d89e86152c1565b61420c91906152c1565b614217906001615320565b600290810b60a085015260208401516000910b12156142aa576101006001610100856000015160020b866020015160020b6142529190615345565b61425c9190615345565b6142669190615373565b6142729061010061539a565b846000015160020b856020015160020b61428c9190615345565b6142969190615373565b6142a091906153ca565b60c08401526142d7565b610100836000015160020b846020015160020b6142c791906153de565b6142d191906153ca565b60c08401525b60c083015160e08401526020830151600060029190910b121561430b5760408301805190614304826153f2565b60020b9052505b604083015160020b60608481019190915260005b61432a6002886153de565b8110801561434557508460a0015160020b856040015160020b125b1561458757604080860151905163071f32d360e21b81526004810185905260019190910b60248201526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631c7ccb4c90604401602060405180830381865afa1580156143c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143e69190615415565b905080156145635760c086015190811c905b61010081108015614412575061440f60028a6153de565b83105b1561456157600182168015614547576000886000015160020b838a6040015161010061443e919061542e565b60020b61444b919061544e565b614455919061539a565b6040516332bb6ad560e21b815260048101899052600282900b602482015290915060009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063caedab54906044016040805180830381865afa1580156144cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144ef91906155f7565b9092509050600061450d6001600160801b038316608086901b61544e565b604051909150614523908a908390602001615476565b6040516020818303038152906040529850878061453f90615498565b985050505050505b5060019190911c908061455981615498565b9150506143f8565b505b600060c08701526040860180519061457a826154b1565b60020b90525061431f9050565b60015b87821080156145a65750856080015160020b866060015160020b135b1561483557606086015160405163071f32d360e21b81526004810186905260019190910b60248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631c7ccb4c90604401602060405180830381865afa158015614623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146479190615415565b905060008111801561465c575060e087015115155b1561480c578161466c578061468f565b6101008760e0015161010061468191906154d2565b61468b91906153ca565b81901b5b9050600060018860e001516146a491906154d2565b90505b8984101561480a57600160ff1b821680156147e2576000896000015160020b838b606001516101006146d9919061542e565b60020b6146e6919061544e565b6146f0919061539a565b6040516332bb6ad560e21b8152600481018a9052600282900b602482015290915060009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063caedab54906044016040805180830381865afa158015614766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061478a91906155f7565b909250905060006147a86001600160801b038316608086901b61544e565b6040519091506147be908b908390602001615476565b604051602081830303815290604052995088806147da90615498565b995050505050505b600183901b9250816000036147f7575061480a565b5080614802816154e5565b9150506146a7565b505b61010060e08801526060870180516000935090614828826153f2565b60020b90525061458a9050565b5090979650505050505050565b606061484c614fe1565b836001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561488a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148ae919061525c565b60020b815260408051600481526024810182526020810180516001600160e01b0316633850c7bd60e01b17905290516000916001600160a01b038716916148f59190615279565b600060405180830381855afa9150503d8060008114614930576040519150601f19603f3d011682016040523d82523d6000602084013e614935565b606091505b506040015160020b60208401819052835161010093506149569250906152c1565b61496091906152c1565b600290810b604083015281516101009061497e90620d89e7196152c1565b61498891906152c1565b61499291906152fb565b60020b60808201528051610100906149ad90620d89e86152c1565b6149b791906152c1565b6149c2906001615320565b600290810b60a083015260208201516000910b1215614a55576101006001610100836000015160020b846020015160020b6149fd9190615345565b614a079190615345565b614a119190615373565b614a1d9061010061539a565b826000015160020b836020015160020b614a379190615345565b614a419190615373565b614a4b91906153ca565b60c0820152614a82565b610100816000015160020b826020015160020b614a7291906153de565b614a7c91906153ca565b60c08201525b60c081015160e08201526020810151600060029190910b1215614ab65760408101805190614aaf826153f2565b60020b9052505b604081015160020b60608281019190915260005b614ad56002866153de565b81108015614af057508260a0015160020b836040015160020b125b15614d1457604083810151905163299ce14b60e11b815260019190910b60048201526000906001600160a01b03881690635339c29690602401602060405180830381865afa158015614b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b6a9190615415565b90508015614cf05760c084015190811c905b61010081108015614b965750614b936002886153de565b83105b15614cee57600182168015614cd4576000866000015160020b838860400151610100614bc2919061542e565b60020b614bcf919061544e565b614bd9919061539a565b60408051600283900b60248083019190915282518083039091018152604490910182526020810180516001600160e01b031663f30dba9360e01b179052905191925060009182916001600160a01b038e1691614c359190615279565b600060405180830381855afa9150503d8060008114614c70576040519150601f19603f3d011682016040523d82523d6000602084013e614c75565b606091505b5060408101519350915060009050614c9a6001600160801b038416608086901b61544e565b604051909150614cb0908a908390602001615476565b60405160208183030381529060405298508780614ccc90615498565b985050505050505b5060019190911c9080614ce681615498565b915050614b7c565b505b600060c085015260408401805190614d07826154b1565b60020b905250614aca9050565b60015b8582108015614d335750836080015160020b846060015160020b135b15610b5657606084015160405163299ce14b60e11b815260019190910b60048201526000906001600160a01b03891690635339c29690602401602060405180830381865afa158015614d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614dad9190615415565b9050600081118015614dc2575060e085015115155b15614f7b5781614dd25780614df5565b6101008560e00151610100614de791906154d2565b614df191906153ca565b81901b5b9050600060018660e00151614e0a91906154d2565b90505b87841015614f7957600160ff1b82168015614f51576000876000015160020b838960600151610100614e3f919061542e565b60020b614e4c919061544e565b614e56919061539a565b60408051600283900b60248083019190915282518083039091018152604490910182526020810180516001600160e01b031663f30dba9360e01b179052905191925060009182916001600160a01b038f1691614eb29190615279565b600060405180830381855afa9150503d8060008114614eed576040519150601f19603f3d011682016040523d82523d6000602084013e614ef2565b606091505b5060408101519350915060009050614f176001600160801b038416608086901b61544e565b604051909150614f2d908b908390602001615476565b60405160208183030381529060405299508880614f4990615498565b995050505050505b600183901b925081600003614f665750614f79565b5080614f71816154e5565b915050614e0d565b505b61010060e08601526060850180516000935090614f97826153f2565b60020b905250614d179050565b604051600090614fc4908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6001600160a01b038116811461503a57600080fd5b50565b6000806040838503121561505057600080fd5b823561505b81615025565b946020939093013593505050565b60005b8381101561508457818101518382015260200161506c565b50506000910152565b600081518084526150a5816020860160208601615069565b601f01601f19169290920160200192915050565b602081526000612c97602083018461508d565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715615105576151056150cc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615134576151346150cc565b604052919050565b62ffffff8116811461503a57600080fd5b8060020b811461503a57600080fd5b600060a0828403121561516e57600080fd5b6151766150e2565b823561518181615025565b8152602083013561519181615025565b602082015260408301356151a48161513c565b604082015260608301356151b78161514d565b606082015260808301356151ca81615025565b60808201529392505050565b600080604083850312156151e957600080fd5b50508035926020909101359150565b60408152600061520b604083018561508d565b828103602084015261521d818561508d565b95945050505050565b60006020828403121561523857600080fd5b8135612c9781615025565b60006020828403121561525557600080fd5b5035919050565b60006020828403121561526e57600080fd5b8151612c978161514d565b6000825161528b818460208701615069565b9190910192915050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008160020b8360020b806152d8576152d8615295565b627fffff198214600019821416156152f2576152f26152ab565b90059392505050565b600282810b9082900b03627fffff198112627fffff82131715610b5d57610b5d6152ab565b600281810b9083900b01627fffff8113627fffff1982121715610b5d57610b5d6152ab565b60008261535457615354615295565b600160ff1b82146000198414161561536e5761536e6152ab565b500590565b8181036000831280158383131683831282161715615393576153936152ab565b5092915050565b80820260008212600160ff1b841416156153b6576153b66152ab565b8181058314821517610b5d57610b5d6152ab565b6000826153d9576153d9615295565b500690565b6000826153ed576153ed615295565b500490565b60008160020b627fffff19810361540b5761540b6152ab565b6000190192915050565b60006020828403121561542757600080fd5b5051919050565b60008260020b8260020b028060020b9150808214615393576153936152ab565b808201828112600083128015821682158216171561546e5761546e6152ab565b505092915050565b60008351615488818460208801615069565b9190910191825250602001919050565b6000600182016154aa576154aa6152ab565b5060010190565b60008160020b627fffff81036154c9576154c96152ab565b60010192915050565b81810381811115610b5d57610b5d6152ab565b6000816154f4576154f46152ab565b506000190190565b600060a0828403121561550e57600080fd5b6155166150e2565b825161552181615025565b8152602083015161553181615025565b602082015260408301516155448161513c565b604082015260608301516155578161514d565b606082015260808301516151ca81615025565b6000806000806080858703121561558057600080fd5b845161558b81615025565b602086015190945061559c8161514d565b60408601519093506155ad8161513c565b60608601519092506155be8161513c565b939692955090935050565b80516001600160801b03811681146155e057600080fd5b919050565b8051600f81900b81146155e057600080fd5b6000806040838503121561560a57600080fd5b615613836155c9565b9150615621602084016155e5565b90509250929050565b60006080828403121561563c57600080fd5b6040516080810181811067ffffffffffffffff8211171561565f5761565f6150cc565b60405261566b836155c9565b8152615679602084016155e5565b602082015260408301516040820152606083015160608201528091505092915050565b805180151581146155e057600080fd5b600080600080600060a086880312156156c457600080fd5b855194506156d4602087016155e5565b935060408601519250606086015191506156f06080870161569c565b90509295509295909350565b6000806000806000806000806000806101408b8d03121561571c57600080fd5b6157258b6155c9565b995061573360208c016155c9565b985060408b0151975060608b0151965061574f60808c016155c9565b955061575d60a08c016155c9565b945061576b60c08c016155c9565b935061577960e08c016155c9565b92506101008b015191506101208b015190509295989b9194979a5092959850565b805160208083015191908110156157bb576000198160200360031b1b821691505b50919050565b60008160020b627fffff1981036157da576157da6152ab565b60000392915050565b600080600080608085870312156157f957600080fd5b845161580481615025565b60208601519094506158158161514d565b60408601519093506158268161514d565b91506158346060860161569c565b905092959194509250565b6000806000806080858703121561585557600080fd5b61585e856155c9565b935061586c602086016155e5565b925060408501519150615834606086016155c9565b6000806040838503121561589457600080fd5b825161589f8161514d565b60208401519092506158b08161514d565b809150509250929050565b6000806000606084860312156158d057600080fd5b83516158db8161513c565b60208501519093506158ec8161513c565b60408501519092506158fd8161513c565b809150509250925092565b6000806000806080858703121561591e57600080fd5b615927856155c9565b9350615935602086016155c9565b6040860151606090960151949790965092505050565b80820180821115610b5d57610b5d6152ab565b60006020828403121561597057600080fd5b8151612c978161513c565b62ffffff818116838216019080821115615393576153936152ab565b60008060008060008060008060006101208a8c0312156159b657600080fd5b6159bf8a6155c9565b98506159cd60208b016155e5565b975060408a0151965060608a0151955060808a01516159eb8161514d565b60a08b01519095506159fc8161514d565b60c08b0151909450615a0d81615025565b60e08b015190935063ffffffff81168114615a2757600080fd5b9150615a366101008b0161569c565b90509295985092959850929598565b60006020808385031215615a5857600080fd5b825167ffffffffffffffff80821115615a7057600080fd5b818501915085601f830112615a8457600080fd5b815181811115615a9657615a966150cc565b8060051b9150615aa784830161510b565b8181529183018401918481019088841115615ac157600080fd5b938501935b83851015615adf57845182529385019390850190615ac6565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea264697066735822122051569b5dbd8498cd316786a0da53a1d35960a5481eb233a93e1cfecec76f795564736f6c63430008110033000000000000000000000000d13dd3d6e93f276fafc9db9e6bb47c1180aee0c40000000000000000000000007a4a5c919ae2541aed11041a1aeee68f1287f95b00000000000000000000000028e2ea090877bf75740558f6bfb36a5ffee9e9df