0 txs
0 calls
constructor
No constructor.
functions
abovePeg
viewfunction abovePeg() view returns (bool)
cumulativeCurrentDeltaB
viewfunction cumulativeCurrentDeltaB(address[] pools) view returns (int256 deltaB)
getAbsBeanToMaxLpRatioChangeFromCaseId
viewfunction getAbsBeanToMaxLpRatioChangeFromCaseId(uint256 caseId) view returns (uint80 ml)
getAbsTemperatureChangeFromCaseId
viewfunction getAbsTemperatureChangeFromCaseId(uint256 caseId) view returns (int32 t)
getCaseData
viewfunction getCaseData(uint256 caseId) view returns (bytes32 casesData)
getCases
viewfunction getCases() view returns (bytes32[144] cases)
getChangeFromCaseId
viewfunction getChangeFromCaseId(uint256 caseId) view returns (uint32, int32, uint80, int80)
getDeltaPodDemandLowerBound
viewfunction getDeltaPodDemandLowerBound() view returns (uint256)
getDeltaPodDemandUpperBound
viewfunction getDeltaPodDemandUpperBound() view returns (uint256)
getEvaluationParameters
viewfunction getEvaluationParameters() view returns (tuple)
getExcessivePriceThreshold
viewfunction getExcessivePriceThreshold() view returns (uint256)
getExtEvaluationParameters
viewfunction getExtEvaluationParameters() view returns (tuple)
getLargestLiqWell
viewfunction getLargestLiqWell() view returns (address)
getLpToSupplyRatioLowerBound
viewfunction getLpToSupplyRatioLowerBound() view returns (uint256)
getLpToSupplyRatioOptimal
viewfunction getLpToSupplyRatioOptimal() view returns (uint256)
getLpToSupplyRatioUpperBound
viewfunction getLpToSupplyRatioUpperBound() view returns (uint256)
getMaxBeanMaxLpGpPerBdvRatio
viewfunction getMaxBeanMaxLpGpPerBdvRatio() view returns (uint256)
getMinBeanMaxLpGpPerBdvRatio
viewfunction getMinBeanMaxLpGpPerBdvRatio() view returns (uint256)
getPodRateLowerBound
viewfunction getPodRateLowerBound() view returns (uint256)
getPodRateOptimal
viewfunction getPodRateOptimal() view returns (uint256)
getPodRateUpperBound
viewfunction getPodRateUpperBound() view returns (uint256)
getRelBeanToMaxLpRatioChangeFromCaseId
viewfunction getRelBeanToMaxLpRatioChangeFromCaseId(uint256 caseId) view returns (int80 l)
getRelTemperatureChangeFromCaseId
viewfunction getRelTemperatureChangeFromCaseId(uint256 caseId) view returns (uint32 mt)
getSeasonStruct
viewfunction getSeasonStruct() view returns (tuple)
getSeasonTimestamp
viewfunction getSeasonTimestamp() view returns (uint256)
getTargetSeasonsToCatchUp
viewfunction getTargetSeasonsToCatchUp() view returns (uint256)
getTotalUsdLiquidity
viewfunction getTotalUsdLiquidity() view returns (uint256 totalLiquidity)
getTotalWeightedUsdLiquidity
viewfunction getTotalWeightedUsdLiquidity() view returns (uint256 totalWeightedLiquidity)
getTwaLiquidityForWell
viewfunction getTwaLiquidityForWell(address well) view returns (uint256)
getWeightedTwaLiquidityForWell
viewfunction getWeightedTwaLiquidityForWell(address well) view returns (uint256)
getWellsByDeltaB
viewfunction getWellsByDeltaB() view returns (tuple[] wellDeltaBs, uint256 totalPositiveDeltaB, uint256 totalNegativeDeltaB, uint256 positiveDeltaBCount)
paused
viewfunction paused() view returns (bool)
plentyPerRoot
viewfunction plentyPerRoot(uint32 _season, address well) view returns (uint256)
poolCurrentDeltaB
viewfunction poolCurrentDeltaB(address pool) view returns (int256 deltaB)
poolDeltaB
viewfunction poolDeltaB(address pool) view returns (int256)
poolDeltaBNoCap
viewfunction poolDeltaBNoCap(address pool) view returns (int256)
rain
viewfunction rain() view returns (tuple)
season
viewfunction season() view returns (uint32)
sunriseBlock
viewfunction sunriseBlock() view returns (uint64)
time
viewfunction time() view returns (tuple)
totalDeltaB
viewfunction totalDeltaB() view returns (int256 deltaB)
totalDeltaBNoCap
viewfunction totalDeltaBNoCap() view returns (int256 deltaB)
totalInstantaneousDeltaB
viewfunction totalInstantaneousDeltaB() view returns (int256)
weather
viewfunction weather() view returns (tuple)
wellOracleSnapshot
viewfunction wellOracleSnapshot(address well) view returns (bytes snapshot)
events
No events.
errors
SafeCastOverflowedIntDowncast
error SafeCastOverflowedIntDowncast(uint8 bits, int256 value)
T
error T()
creation bytecode
0x6080604052348015600e575f80fd5b506156d98061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610276575f3560e01c80635c975abb11610156578063bbf459a7116100ca578063da61af6211610084578063da61af621461057a578063dd9330d21461058f578063e53b479e14610597578063f07f0760146105c2578063f788b47c146105ca578063fd6d1483146105d2575f80fd5b8063bbf459a71461051c578063bf17053314610524578063c1cf248f1461053c578063c50b0fb01461054f578063cb6774111461055d578063d1943f7f14610565575f80fd5b80638223eac81161011b5780638223eac8146104c057806389a218d2146104d357806393c9e531146104e6578063a13a3742146104f9578063ab843b341461050c578063b3c39ce514610514575f80fd5b80635c975abb1461047e578063686b61591461049057806370fd1b06146104a5578063738ad142146102c65780638097f0ca146104ad575f80fd5b80633b2ecb70116101ed57806344fb7cc3116101b257806344fb7cc31461040b578063471bcdbe146104135780634a2c357e146104265780634d65f7621461042e57806357801d8714610456578063597490c01461045e575f80fd5b80633b2ecb70146103445780633cee5dea1461036f5780633fccd20c1461039557806343def26e146103a857806343e0156a146103bd575f80fd5b806316ada5471161023e57806316ada547146102c65780631eedbfbb146102db5780631f48a553146102e35780632507644c146102eb5780632a27c4991461030057806335870a7a1461031e575f80fd5b8063065cb5941461027a57806306c499d81461029857806308fa96d3146102ae5780630e3c557a146102b657806311a8d895146102be575b5f80fd5b6102826105da565b60405161028f9190614699565b60405180910390f35b6102a0610616565b60405190815260200161028f565b60f7546102a0565b6102a06106fd565b60fa546102a0565b6102ce610757565b60405161028f91906146e9565b60fc546102a0565b60fb546102a0565b6102f361083e565b60405161028f91906147c9565b60d454600160c81b900460ff165b604051901515815260200161028f565b61033161032c366004614844565b6108cd565b60405160099190910b815260200161028f565b60d454600160881b90046001600160401b03166040516001600160401b03909116815260200161028f565b61038261037d366004614844565b6108e0565b60405160039190910b815260200161028f565b6102a06103a3366004614872565b6108f4565b6103b0610925565b60405161028f91906148b1565b6103d06103cb366004614844565b610995565b6040805163ffffffff909516855260039390930b60208501526001600160501b039091169183019190915260090b606082015260800161028f565b60fd546102a0565b6102a06104213660046148ff565b6109c5565b6102a0610a97565b61044161043c366004614844565b610aa5565b60405163ffffffff909116815260200161028f565b60f8546102a0565b61047161046c3660046148ff565b610ab9565b60405161028f9190614948565b600154600160a01b900460ff1661030e565b610498610b62565b60405161028f919061495a565b60f9546102a0565b6102a06104bb366004614844565b610bf2565b6102a06104ce3660046148ff565b610bfc565b6102a06104e13660046149c0565b610c19565b6102a06104f43660046148ff565b610c69565b6102a06105073660046148ff565b610c97565b60f2546102a0565b60f3546102a0565b6102a0610cbe565b61052c610d0b565b60405161028f9493929190614a2e565b6102a061054a3660046148ff565b610d26565b60d45463ffffffff16610441565b60f4546102a0565b61056d610d3e565b60405161028f9190614a9a565b610582610dc3565b60405161028f9190614aae565b60f6546102a0565b6105aa6105a5366004614844565b610efe565b6040516001600160501b03909116815260200161028f565b60d7546102a0565b6102a0610f08565b60f5546102a0565b6105e26144fb565b604080516112008101918290529060349060909082845b8154815260200190600101908083116105f9575050505050905090565b5f80610620610f4e565b905080515f03610631575f91505090565b5f5b81518110156106df576106d5736dd836e7fe603bd73532bf6b5cbb188b7fcc7fa963c23697a884848151811061066b5761066b614b7d565b60200260200101516040518263ffffffff1660e01b815260040161068f9190614a9a565b602060405180830381865af41580156106aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ce9190614b91565b849061104f565b9250600101610633565b506106f764ba43b74000668e1bc9bf0400008461105a565b91505090565b5f80610707610f4e565b905080515f03610718575f91505090565b5f5b8151811015610752576107486106ce83838151811061073b5761073b614b7d565b602002602001015161113b565b925060010161071a565b505090565b61075f61451a565b604080516101808101825260d4805463ffffffff8082168452640100000000820481166020850152600160401b8204811684860152600160601b820416606084015260ff600160801b82048116151560808501526001600160401b03600160881b83041660a0850152600160c81b90910416151560c083015260d55460e083015260d6546101008084019190915260d75461012084015260d8546101408401528351908101909352909161016083019060d960088282826020028201915b81548152602001906001019080831161081d57505050505081525050905090565b610846614584565b60408051610100810182526101048054825261010554602083015261010654828401526101075460608301526101085460808301526101095460a083015261010a5460c083015282516107808101909352909160e083019061010b603c82828260200282019181548152602001906001019080831161081d57505050505081525050905090565b5f6108d782610995565b95945050505050565b5f6108ea82610995565b5090949350505050565b63ffffffff82165f908152610103602090815260408083206001600160a01b03851684529091529020545b92915050565b61092d6145c2565b6040805160808101825260ec8054825260ed54602083015260ee546001600160801b03168284015282516060818101909452919290919083019060ef600382828260200282019181548152602001906001019080831161081d57505050505081525050905090565b5f805f805f6109a3866111fe565b8051602082015160408301516060909301519199909850919650945092505050565b5f6109cf82611259565b15610a4a57604051631846d2f560e31b8152736dd836e7fe603bd73532bf6b5cbb188b7fcc7fa99063c23697a890610a0b908590600401614a9a565b602060405180830381865af4158015610a26573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091f9190614b91565b60405162461bcd60e51b815260206004820152601a60248201527f4f7261636c653a20506f6f6c206e6f7420737570706f7274656400000000000060448201526064015b60405180910390fd5b5f610aa0611289565b905090565b5f610aaf82610995565b5091949350505050565b6001600160a01b0381165f908152601d60205260409020805460609190610adf90614ba8565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0b90614ba8565b8015610b565780601f10610b2d57610100808354040283529160200191610b56565b820191905f5260205f20905b815481529060010190602001808311610b3957829003601f168201915b50505050509050919050565b610b6a6145f0565b6040805160a08101825260e180546001600160801b038116835263ffffffff600160801b820481166020850152600160a01b8204811684860152600160c01b90910416606083015282516080818101909452919290919083019060e2600482828260200282019181548152602001906001019080831161081d57505050505081525050905090565b5f61091f826112da565b5f610c0682611259565b15610a4a5761091f826112f8565b919050565b5f805b82811015610c6257610c4e848483818110610c3957610c39614b7d565b90506020020160208101906104ce91906148ff565b610c589083614bee565b9150600101610c1c565b5092915050565b5f61091f670de0b6b3a7640000610c91610c8285610c97565b610c8b8661140e565b906115ea565b906115f5565b5f80610ca283611600565b509050610cb783610cb28361171f565b61172a565b9392505050565b5f80610cc86118c3565b90505f5b815181101561075257610d01610cfa838381518110610ced57610ced614b7d565b6020026020010151610c97565b84906119ba565b9250600101610ccc565b60605f805f610d186119c5565b935093509350935090919293565b5f610d3082611259565b15610a4a5761091f8261113b565b600154604080516318160ddd60e01b815290515f9283926001600160a01b03909116916318160ddd916004808201926020929091908290030181865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190614b91565b90505f610dba82611b74565b50949350505050565b610e4b6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160801b031681526020015f6001600160801b031681525090565b50604080516102208101825260f254815260f354602082015260f4549181019190915260f554606082015260f654608082015260f75460a082015260f85460c082015260f95460e082015260fa546101008083019190915260fb5461012083015260fc5461014083015260fd5461016083015260fe5461018083015260ff546101a0830152546101c0820152610101546001600160801b038082166101e0840152600160801b9091041661020082015290565b5f610dba82610995565b5f80610f126118c3565b90505f5b815181101561075257610f44610cfa838381518110610f3757610f37614b7d565b6020026020010151610c69565b9250600101610f16565b60c9546060905f9081816001600160401b03811115610f6f57610f6f614c0d565b604051908082528060200260200182016040528015610f98578160200160208202803683370190505b5093505f5b828110156110455760c98401805482908110610fbb57610fbb614b7d565b5f91825260209091200154600160a81b900460ff161561103d5760c98401805482908110610feb57610feb614b7d565b5f918252602090912001546001600160a01b0316858361100a81614c21565b94508151811061101c5761101c614b7d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101610f9d565b5080845250505090565b5f610cb78284614bee565b5f805f6110e5670de0b6b3a7640000610c9187856001015f015f9054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8b9190614b91565b9050808613156110f25750845b5f8412156111225761110381614c39565b84136111175761111281614c39565b611119565b835b92505050610cb7565b80841261112f5780611131565b835b9695505050505050565b6001600160a01b0381165f908152601d60205260408120805482919061116090614ba8565b80601f016020809104026020016040519081016040528092919081815260200182805461118c90614ba8565b80156111d75780601f106111ae576101008083540402835291602001916111d7565b820191905f5260205f20905b8154815290600101906020018083116111ba57829003601f168201915b505050505090505f815111156111f8576111f18382611d36565b5091935050505b50919050565b604080516080810182525f80825260208201819052918101829052606081018290529061122a836112da565b60c081901c63ffffffff1660030b6020848101919091521c6001600160501b031660090b606083015250919050565b6001600160a01b03165f90815260c8602052604090205460e01b6001600160e01b03191663c84c772760e01b1490565b5f806112936118c3565b90505f5b8151811015610752575f6112c38383815181106112b6576112b6614b7d565b6020026020010151611eb8565b90506112cf8185614bee565b935050600101611297565b5f80603483609081106112ef576112ef614b7d565b01549392505050565b5f816001600160a01b0316630902f1ac6040518163ffffffff1660e01b81526004015f60405180830381865afa92505050801561135657506040513d5f823e601f3d908101601f191682016040526113539190810190614d11565b60015b61136157505f919050565b5f6113cc846001600160a01b0316639d63848a6040518163ffffffff1660e01b81526004015f60405180830381865afa1580156113a0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526113c79190810190614d42565b612008565b9050629896808282815181106113e4576113e4614b7d565b602002602001015110156113fb57505f9392505050565b61140684835f612071565b949350505050565b6001600160a01b038181165f90815260c86020908152604080832081516080810183526004820180549687168252600160a01b870460e01b6001600160e01b03191694820194909452600160c01b90950460f81b6001600160f81b0319169185019190915260050180549293849384939192606084019161148e90614ba8565b80601f01602080910402602001604051908101604052809291908181526020018280546114ba90614ba8565b80156115055780601f106114dc57610100808354040283529160200191611505565b820191905f5260205f20905b8154815290600101906020018083116114e857829003601f168201915b5050509190925250508151919250506001600160a01b0381166115255750305b5f80826001600160a01b03168460200151856060015160405160240161154b9190614948565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516115899190614de2565b5f60405180830381855afa9150503d805f81146115c1576040519150601f19603f3d011682016040523d82523d5f602084013e6115c6565b606091505b5091509150816115dc57505f9695505050505050565b602001519695505050505050565b5f610cb78284614ded565b5f610cb78284614e18565b5f80805f846001600160a01b0316639d63848a6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561163f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116669190810190614d42565b90505f5b81518110156116dd57600183015482516001600160a01b039091169083908390811061169857611698614b7d565b60200260200101516001600160a01b0316146116d5578181815181106116c0576116c0614b7d565b60200260200101518194509450505050915091565b60010161166a565b5060405162461bcd60e51b81526020600482015260166024820152752634b12bb2b6361d1034b73b30b634b2103bb2b6361d60511b6044820152606401610a8e565b5f61091f825f6122d8565b5f805f61173685611600565b9150505f856001600160a01b031663a1d89d966040518163ffffffff1660e01b81526004015f60405180830381865afa158015611775573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261179c9190810190614f0c565b9050805f815181106117b0576117b0614b7d565b60200260200101515f01516001600160a01b031663d393b27a8785600101601c015f8a6001600160a01b03166001600160a01b031681526020019081526020015f208660010160d30160030154855f8151811061180f5761180f614b7d565b6020026020010151602001516040518563ffffffff1660e01b815260040161183a9493929190614fb5565b5f60405180830381865afa92505050801561187657506040513d5f823e601f3d908101601f191682016040526118739190810190615099565b60015b611882575f93506118ba565b6118b5620f4240610c9184878151811061189e5761189e614b7d565b60200260200101518a6115ea90919063ffffffff16565b955050505b50505092915050565b60c9546060905f9081816001600160401b038111156118e4576118e4614c0d565b60405190808252806020026020018201604052801561190d578160200160208202803683370190505b5093505f5b828110156110455760c9840180548290811061193057611930614b7d565b5f91825260209091200154600160b01b900460ff16156119b25760c9840180548290811061196057611960614b7d565b5f918252602090912001546001600160a01b0316858361197f81614c21565b94508151811061199157611991614b7d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101611912565b5f610cb782846150f8565b60605f805f806119d36122e4565b905080516001600160401b038111156119ee576119ee614c0d565b604051908082528060200260200182016040528015611a3257816020015b604080518082019091525f8082526020820152815260200190600190039081611a0c5790505b5094505f5b8151811015611b53576040518060400160405280838381518110611a5d57611a5d614b7d565b60200260200101516001600160a01b03168152602001611a95848481518110611a8857611a88614b7d565b60200260200101516112f8565b815250868281518110611aaa57611aaa614b7d565b60200260200101819052505f868281518110611ac857611ac8614b7d565b6020026020010151602001511315611b1757858181518110611aec57611aec614b7d565b60200260200101516020015185611b0391906150f8565b945082611b0f81614c21565b935050611b4b565b858181518110611b2957611b29614b7d565b602002602001015160200151611b3e90614c39565b611b4890856150f8565b93505b600101611a37565b50611b6c855f60018851611b67919061510b565b61240e565b505090919293565b60408051602081019091525f81525f80835f03611bb257505060408051602080820183525f9182905282519081019092528082529091506001611d2f565b5f611bbb610f4e565b905060605f805f805b8551811015611cda57611bef868281518110611be257611be2614b7d565b6020026020010151612782565b9450845f81518110611c0357611c03614b7d565b60200260200101515f148015611c32575084600181518110611c2757611c27614b7d565b60200260200101515f145b611cd2575f611c5a878381518110611c4c57611c4c614b7d565b6020026020010151876127b9565b9050805f03611c6857600197505b611c9a670de0b6b3a7640000610c9183610c8b8b8781518110611c8d57611c8d614b7d565b602002602001015161140e565b925083831115611cc457829350868281518110611cb957611cb9614b7d565b602002602001015198505b611cce85846119ba565b9450505b600101611bc4565b50825f03611d0f5760408051602080820183525f91829052825190810190925281525f60019750975097505050505050611d2f565b611d27611d218464e8d4a510006115f5565b8a6128e8565b975050505050505b9193909250565b5f60608080835f876001600160a01b031663a1d89d966040518163ffffffff1660e01b81526004015f60405180830381865afa158015611d78573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d9f9190810190614f0c565b9050805f81518110611db357611db3614b7d565b60200260200101515f01516001600160a01b031663d393b27a89898560010160d30160030154855f81518110611deb57611deb614b7d565b6020026020010151602001516040518563ffffffff1660e01b8152600401611e16949392919061511e565b5f60405180830381865afa925050508015611e5257506040513d5f823e601f3d908101601f19168201604052611e4f9190810190615099565b60015b611e83575050604080515f808252602082018181528284018281526060840190945290965090945092509050611eaf565b60d7840154611ea2908b9084908490611e9d90429061291d565b612928565b9750975097509750505050505b92959194509250565b5f80826001600160a01b031663a1d89d966040518163ffffffff1660e01b81526004015f60405180830381865afa158015611ef5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f1c9190810190614f0c565b9050805f81518110611f3057611f30614b7d565b60200260200101515f01516001600160a01b0316636de13cba84835f81518110611f5c57611f5c614b7d565b6020026020010151602001516040518363ffffffff1660e01b8152600401611f85929190615160565b5f60405180830381865afa925050508015611fc157506040513d5f823e601f3d908101601f19168201604052611fbe9190810190614d11565b60015b611fcd57505f92915050565b80515f03611fde57505f9392505050565b604080515f80825260208201909252611ffb90869084905f612928565b5091979650505050505050565b5f805b82518210156120595782828151811061202657612026614b7d565b602090810291909101015160018201546001600160a01b0391821691160361204e5750919050565b81600101915061200b565b60405162461bcd60e51b8152600401610a8e90615183565b5f80846001600160a01b0316639d63848a6040518163ffffffff1660e01b81526004015f60405180830381865afa1580156120ae573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526120d59190810190614d42565b90505f856001600160a01b03166310dd08306040518163ffffffff1660e01b81526004015f60405180830381865afa158015612113573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261213a91908101906151ae565b90505f805f6121498588612a3d565b9250925092506298968088838151811061216557612165614b7d565b602002602001015110156121cf5760405162461bcd60e51b815260206004820152602b60248201527f57656c6c3a204265616e2072657365727665206973206c657373207468616e2060448201526a746865206d696e696d756d60a81b6064820152608401610a8e565b8061221c5760405162461bcd60e51b815260206004820152601c60248201527f57656c6c3a20555344204f7261636c652063616c6c206661696c6564000000006044820152606401610a8e565b83516020850151604051631017d19360e31b81526001600160a01b03909216916380be8c9891612255918c918791899190600401615219565b602060405180830381865afa92505050801561228e575060408051601f3d908101601f1916820190925261228b91810190614b91565b60015b61229f575f95505050505050610cb7565b6122cb8984815181106122b4576122b4614b7d565b602002602001015182612cdd90919063ffffffff16565b9650505050505050610cb7565b5f610cb7835f84612ce8565b60c9546060905f9081816001600160401b0381111561230557612305614c0d565b60405190808252806020026020018201604052801561232e578160200160208202803683370190505b5093505f5b828110156110455760c9840180548290811061235157612351614b7d565b5f91825260209091200154600160b01b900460ff168015612399575060c9840180548290811061238357612383614b7d565b5f91825260209091200154600160b81b900460ff165b156124065760c984018054829081106123b4576123b4614b7d565b5f918252602090912001546001600160a01b031685836123d381614c21565b9450815181106123e5576123e5614b7d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101612333565b606081831261241e575082610cb7565b5f600261242b858561510b565b6124359190614e18565b61243f90856150f8565b905061245a604080518082019091525f808252602082015290565b85828151811061246c5761246c614b7d565b60200260200101516020015186868151811061248a5761248a614b7d565b6020026020010151602001511315612565578584815181106124ae576124ae614b7d565b6020026020010151602001518686815181106124cc576124cc614b7d565b60200260200101516020015112156124ff578585815181106124f0576124f0614b7d565b6020026020010151905061262a565b85828151811061251157612511614b7d565b60200260200101516020015186858151811061252f5761252f614b7d565b6020026020010151602001511315612553578584815181106124f0576124f0614b7d565b8582815181106124f0576124f0614b7d565b85848151811061257757612577614b7d565b60200260200101516020015186838151811061259557612595614b7d565b60200260200101516020015112156125b9578582815181106124f0576124f0614b7d565b8585815181106125cb576125cb614b7d565b6020026020010151602001518685815181106125e9576125e9614b7d565b602002602001015160200151131561260d578584815181106124f0576124f0614b7d565b85858151811061261f5761261f614b7d565b602002602001015190505b84845b808213612742575b826020015188838151811061264c5761264c614b7d565b6020026020010151602001511315612670578161266881615257565b925050612635565b87818151811061268257612682614b7d565b602002602001015160200151836020015113156126ab57806126a38161526e565b915050612670565b80821361273d578781815181106126c4576126c4614b7d565b60200260200101518883815181106126de576126de614b7d565b60200260200101518984815181106126f8576126f8614b7d565b602002602001018a848151811061271157612711614b7d565b602002602001018290528290525050818061272b90615257565b92505080806127399061526e565b9150505b61262d565b808712156127585761275588888361240e565b97505b858212156127765761276b88838861240e565b945050505050610cb7565b50959695505050505050565b606061278d82612cf5565b9050805f815181106127a1576127a1614b7d565b6020026020010151600103610c145761091f82612db0565b6001600160a01b0382165f908152601f60205260408120545f806127dc86611600565b91509150600183111561282b5761282183610c91670de0b6b3a764000088858151811061280b5761280b614b7d565b60200260200101516115ea90919063ffffffff16565b935050505061091f565b825f0361283d575f935050505061091f565b5f826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561287a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061289e9190615289565b90506128dd6128ae82600a615381565b610c9164e8d4a51000610c8b8a87815181106128cc576128cc614b7d565b6020026020010151610c8b8961171f565b979650505050505050565b60408051602081019091525f8152604051806020016040528061291485670de0b6b3a764000086612f1a565b90529392505050565b5f610cb7828461510b565b5f60608060605f886001600160a01b0316639d63848a6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561296a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129919190810190614d42565b90505f805f6129a0848a612a3d565b925092509250629896808b83815181106129bc576129bc614b7d565b602002602001015110156129ec575050604080515f8082526020820190925290965088955093509150612a329050565b80612a1557604080515f808252602082019092528b908d90975097509750975050505050612a32565b5f612a228d8d8686612f29565b98508a97508b9650929450505050505b945094509450949050565b60605f80806001915085516001600160401b03811115612a5f57612a5f614c0d565b604051908082528060200260200182016040528015612a88578160200160208202803683370190505b5060018201549094505f1993505f906001600160a01b0316815b8851811015612b7557816001600160a01b0316898281518110612ac757612ac7614b7d565b60200260200101516001600160a01b031603612ae557809550612b6d565b6008898281518110612af957612af9614b7d565b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b609190615289565b60ff1611612b6d57600192505b600101612aa2565b505f5b8851811015612cb257816001600160a01b0316898281518110612b9d57612b9d614b7d565b60200260200101516001600160a01b031603612bf8578215612be25764e8d4a51000878281518110612bd157612bd1614b7d565b602002602001018181525050612caa565b620f4240878281518110612bd157612bd1614b7d565b8215612c4457612c21898281518110612c1357612c13614b7d565b60200260200101518961302d565b878281518110612c3357612c33614b7d565b602002602001018181525050612c86565b612c67898281518110612c5957612c59614b7d565b60200260200101518961309d565b878281518110612c7957612c79614b7d565b6020026020010181815250505b868181518110612c9857612c98614b7d565b60200260200101515f03612caa575f94505b600101612b78565b505f198503612cd35760405162461bcd60e51b8152600401610a8e90615183565b5050509250925092565b5f610cb7828461538f565b5f6114068484845f61310b565b60408051600280825260608281018452925f9291906020830190803683375050506001600160a01b0384165f908152601e8301602052604081205482519294506001600160801b031691849190612d4e57612d4e614b7d565b6020908102919091018101919091526001600160a01b0384165f908152601e830190915260409020548251600160801b9091046001600160801b03169083906001908110612d9e57612d9e614b7d565b60200260200101818152505050919050565b60605f80836001600160a01b031663a1d89d966040518163ffffffff1660e01b81526004015f60405180830381865afa158015612def573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612e169190810190614f0c565b9050805f81518110612e2a57612e2a614b7d565b60200260200101515f01516001600160a01b031663d393b27a8584600101601c015f886001600160a01b03166001600160a01b031681526020019081526020015f208560010160d30160030154855f81518110612e8957612e89614b7d565b6020026020010151602001516040518563ffffffff1660e01b8152600401612eb49493929190614fb5565b5f60405180830381865afa925050508015612ef057506040513d5f823e601f3d908101601f19168201604052612eed9190810190615099565b60015b610dba57604080516002808252606082018352909160208301908036833701905050949350505050565b5f61140682610c9186866115ea565b5f80856001600160a01b03166310dd08306040518163ffffffff1660e01b81526004015f60405180830381865afa158015612f66573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f8d91908101906151ae565b80516020820151604051631017d19360e31b81529293506001600160a01b03909116916380be8c9891612fc991899188918a9190600401615219565b602060405180830381865afa925050508015613002575060408051601f3d908101601f19168201909252612fff91810190614b91565b60015b61300f575f915050611406565b6130248685815181106122b4576122b4614b7d565b92505050611406565b5f610cb783846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561306e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130929190615289565b60ff1684600161310b565b5f610cb783846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131029190615289565b60ff1684612ce8565b6001600160a01b038481165f908152602260209081526040808320815160808101835281549586168152600160a01b860460e01b6001600160e01b03191693810193909352600160c01b90940460f81b6001600160f81b0319169082015260018301805492938493849392606084019161318490614ba8565b80601f01602080910402602001604051908101604052809291908181526020018280546131b090614ba8565b80156131fb5780601f106131d2576101008083540402835291602001916131fb565b820191905f5260205f20905b8154815290600101906020018083116131de57829003601f168201915b5050509190925250505060408101519091506001600160f81b03199081160161324557613024815f0151826060015180602001905181019061323d9190614b91565b888888613727565b60408101516001600160f81b031916607f60f91b0161360e575f815f01516001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561329e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132c291906153ae565b9050876001600160a01b0316816001600160a01b03160361334357815f01516001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561331c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061334091906153ae565b90505b6133db86156133525786613356565b6103845b83518a848b156133705761336b8c600a6153c9565b61374d565b8c6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133d09190615289565b61336b90600a615381565b6001600160a01b038281165f9081526022860160209081526040808320815160808101835281549586168152600160a01b860460e01b6001600160e01b03191693810193909352600160c01b90940460f81b6001600160f81b031916908201526001830180549498509193909291606084019161345790614ba8565b80601f016020809104026020016040519081016040528092919081815260200182805461348390614ba8565b80156134ce5780601f106134a5576101008083540402835291602001916134ce565b820191905f5260205f20905b8154815290600101906020018083116134b157829003601f168201915b50505050508152505090505f826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613516573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061353a9190615289565b60ff1690505f613574835f0151846060015180602001905181019061355f9190614b91565b8c1561356b578461356d565b8c5b8c5f613727565b905089156136005787156135ae578661358e8b600a6153c9565b61359d9064e8d4a51000614ded565b6135a79190614e18565b96506135d4565b866135ba8b600a6153c9565b6135c790620f4240614ded565b6135d19190614e18565b96505b6135df82600a6153c9565b6135e98289614ded565b6135f39190614e18565b9650505050505050611406565b620f42406135e98289614ded565b80516001600160a01b0316613627575f92505050611406565b6060810151841561365b578160600151856040516020016136499291906153d4565b60405160208183030381529060405290505b5f80835f01516001600160a01b031684602001518a8a86604051602401613684939291906153f1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516136c29190614de2565b5f60405180830381855afa9150503d805f81146136fa576040519150601f19603f3d011682016040523d82523d5f602084013e6136ff565b606091505b509150915081613716575f95505050505050611406565b602001519998505050505050505050565b5f8083116137405761373b868686856138ff565b611131565b6111318686868686613a80565b5f805f61375a8789613d76565b915091508161376d575f925050506108d7565b61377981858888613f3a565b92505f866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137dc9190615289565b60ff1690505f866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561381e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138429190615289565b60ff1690505f613852828461538f565b9050805f036138895761386683600a6153c9565b613873620f424088614ded565b61387d9190614e18565b955050505050506108d7565b5f8113156138ad5761389c81600a6153c9565b6138a69087614ded565b95506138ce565b6138b681614c39565b6138c190600a6153c9565b6138cb9087614e18565b95505b6138d983600a6153c9565b6138e6620f424088614ded565b6138f09190614e18565b9b9a5050505050505050505050565b5f808590505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561395f575060408051601f3d908101601f1916820190925261395c91810190615289565b60015b61396d575f92505050611406565b9050816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156139c9575060408051601f3d908101601f191682019092526139c691810190615425565b60015b6139d7575f92505050611406565b846001600160501b03165f036139f6575f975050505050505050611406565b613a028285428e614033565b15613a16575f975050505050505050611406565b8915613a53578815613a3057613a2d8a60066150f8565b99505b613a4c84613a4160ff89168d6150f8565b610c9190600a6153c9565b9750613a71565b613a6e613a6187600a615381565b610c9186620f42406115ea565b97505b50505050505050949350505050565b5f80866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613adc575060408051601f3d908101601f19168201909252613ad991810190615289565b60015b613ae9575f9150506108d7565b9050866001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa925050508015613b45575060408051601f3d908101601f19168201909252613b4291810190615425565b60015b613b52575f9150506108d7565b846001600160501b03165f03613b70575f96505050505050506108d7565b613b7c8285428e614033565b15613b8f575f96505050505050506108d7565b613bb060405180606001604052805f81526020015f81526020015f81525090565b613bba428b61291d565b60208201528815613bd357613bd08b60066150f8565b9a505b80602001518311613c1e578a15613c0357613bf585613a4160ff8a168e6150f8565b9750505050505050506108d7565b613bf5613c1188600a615381565b610c9187620f42406115ea565b4260408201525b8060200151831115613cda578a15613c5d5784613c4560ff89168d6150f8565b613c5090600a6153c9565b613c5a9190614e18565b94505b613c89613c81613c7a85846040015161291d90919063ffffffff16565b87906115ea565b8251906119ba565b8152613c96600187615471565b604082018490529550613ca98d8761407f565b8094508196505050613cc1838683604001518f614033565b15613cd5575f9750505050505050506108d7565b613c25565b8a15613d065784613cee60ff89168d6150f8565b613cf990600a6153c9565b613d039190614e18565b94505b613d27613c81613c7a8360200151846040015161291d90919063ffffffff16565b81528a15613d42578051613d3b908b6115f5565b9750613d66565b613d638a610c91613d548a600a615381565b8451610c9190620f42406115ea565b97505b5050505050505095945050505050565b5f808263ffffffff165f03613db25760405162461bcd60e51b8152602060048201526002602482015261042560f41b6044820152606401610a8e565b6040805160028082526060820183525f9260208301908036833701905050905083815f81518110613de557613de5614b7d565b602002602001019063ffffffff16908163ffffffff16815250505f81600181518110613e1357613e13614b7d565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526001600160a01b0386169063883bdbfd90613e54908490600401615491565b5f60405180830381865afa925050508015613e9057506040513d5f823e601f3d908101601f19168201604052613e8d919081019061553f565b60015b15613f32575f825f81518110613ea857613ea8614b7d565b602002602001015183600181518110613ec357613ec3614b7d565b6020026020010151613ed591906155f8565b9050613ef2613eea63ffffffff891683615625565b60060b614111565b94505f8160060b128015613f175750613f1163ffffffff881682615661565b60060b15155b15613f2a5784613f2681615682565b9550505b600195505050505b509250929050565b5f80613f4586614140565b90506001600160801b036001600160a01b03821611613fca575f613f726001600160a01b03831680614ded565b9050836001600160a01b0316856001600160a01b031610613faa57613fa5600160c01b876001600160801b031683614451565b613fc2565b613fc281876001600160801b0316600160c01b614451565b925050610dba565b5f613fe36001600160a01b03831680600160401b614451565b9050836001600160a01b0316856001600160a01b03161061401b57614016600160801b876001600160801b031683614451565b6128dd565b6128dd81876001600160801b0316600160801b614451565b5f84158061404057508285115b1561404d57506001611406565b81614058848761291d565b111561406657506001611406565b5f841361407557506001611406565b505f949350505050565b604051639a6fc8f560e01b81526001600160501b03821660048201525f9081906001600160a01b03851690639a6fc8f59060240160a060405180830381865afa9250505080156140ec575060408051601f3d908101601f191682019092526140e991810190615425565b60015b6140fb57505f1990505f61410a565b5091945090925061410a915050565b9250929050565b80600281900b8114610c145760405163327269a760e01b81526018600482015260248101839052604401610a8e565b5f805f8360020b12614155578260020b61415c565b8260020b5f035b9050620d89e8811115614182576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361419757600160801b6141a9565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b0316905060028216156141d3576ffff97272373d413259a46990580e213a0260801c5b60048216156141f2576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615614211576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615614230576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561424f576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561426e576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561428d576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156142ad576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156142cd576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156142ed576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561430d576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561432d576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561434d576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561436d576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561438d576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156143ae576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156143ce576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156143ed576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561440a576b048a170391f7dc42444e8fa20260801c5b5f8460020b131561442957805f198161442557614425614e04565b0490505b64010000000081061561443d57600161443f565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03614485575f841161447a575f80fd5b508290049050610cb7565b808411614490575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6040518061120001604052806090906020820280368337509192915050565b60408051610180810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810191909152610160810161457f61461f565b905290565b6040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200161457f61463e565b60405180608001604052805f81526020015f81526020015f6001600160801b0316815260200161457f61465d565b6040805160a0810182525f8082526020820181905291810182905260608101919091526080810161457f61467b565b6040518061010001604052806008906020820280368337509192915050565b604051806107800160405280603c906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b611200810181835f5b60908110156118ba5781518352602092830192909101906001016146a2565b805f5b60088110156146e35781518452602093840193909101906001016146c4565b50505050565b815163ffffffff1681526102608101602083015161470f602084018263ffffffff169052565b506040830151614727604084018263ffffffff169052565b50606083015161473f606084018263ffffffff169052565b506080830151614753608084018215159052565b5060a083015161476e60a08401826001600160401b03169052565b5060c083015161478260c084018215159052565b5060e08381015190830152610100808401519083015261012080840151908301526101408084015190830152610160808401516147c1828501826146c1565b505092915050565b5f6108608201905082518252602080840151602084015260408401516040840152606084015160608401526080840151608084015260a084015160a084015260c084015160c084015260e084015160e084015f5b603c81101561483a5782518252918301919083019060010161481d565b5050505092915050565b5f60208284031215614854575f80fd5b5035919050565b6001600160a01b038116811461486f575f80fd5b50565b5f8060408385031215614883575f80fd5b823563ffffffff81168114614896575f80fd5b915060208301356148a68161485b565b809150509250929050565b81518152602080830151818301526040808401516001600160801b03169083015260608084015160c08401929184015f5b600381101561483a578251825291830191908301906001016148e2565b5f6020828403121561490f575f80fd5b8135610cb78161485b565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610cb7602083018461491a565b81516001600160801b0316815260208083015163ffffffff90811682840152604080850151821690840152606080850151909116908301526080838101516101008401929184015f5b600481101561483a578251825291830191908301906001016149a3565b5f80602083850312156149d1575f80fd5b82356001600160401b03808211156149e7575f80fd5b818501915085601f8301126149fa575f80fd5b813581811115614a08575f80fd5b8660208260051b8501011115614a1c575f80fd5b60209290920196919550909350505050565b608080825285519082018190525f9060209060a0840190828901845b82811015614a7a57815180516001600160a01b031685528501518585015260409093019290840190600101614a4a565b505050602084019690965250506040810192909252606090910152919050565b6001600160a01b0391909116815260200190565b815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526101e0808301516001600160801b03811682840152610220830191905050610200838101516001600160801b038116848301526147c1565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215614ba1575f80fd5b5051919050565b600181811c90821680614bbc57607f821691505b6020821081036111f857634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018281125f8312801582168215821617156147c1576147c1614bda565b634e487b7160e01b5f52604160045260245ffd5b5f60018201614c3257614c32614bda565b5060010190565b5f600160ff1b8201614c4d57614c4d614bda565b505f0390565b604051601f8201601f191681016001600160401b0381118282101715614c7b57614c7b614c0d565b604052919050565b5f6001600160401b03821115614c9b57614c9b614c0d565b5060051b60200190565b5f82601f830112614cb4575f80fd5b81516020614cc9614cc483614c83565b614c53565b8083825260208201915060208460051b870101935086841115614cea575f80fd5b602086015b84811015614d065780518352918301918301614cef565b509695505050505050565b5f60208284031215614d21575f80fd5b81516001600160401b03811115614d36575f80fd5b61140684828501614ca5565b5f6020808385031215614d53575f80fd5b82516001600160401b03811115614d68575f80fd5b8301601f81018513614d78575f80fd5b8051614d86614cc482614c83565b81815260059190911b82018301908381019087831115614da4575f80fd5b928401925b828410156128dd578351614dbc8161485b565b82529284019290840190614da9565b5f81518060208401855e5f93019283525090919050565b5f610cb78284614dcb565b808202811582820484141761091f5761091f614bda565b634e487b7160e01b5f52601260045260245ffd5b5f82614e2657614e26614e04565b500490565b5f82601f830112614e3a575f80fd5b81516001600160401b03811115614e5357614e53614c0d565b614e66601f8201601f1916602001614c53565b818152846020838601011115614e7a575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60408284031215614ea6575f80fd5b604051604081016001600160401b038282108183111715614ec957614ec9614c0d565b8160405282935084519150614edd8261485b565b90825260208401519080821115614ef2575f80fd5b50614eff85828601614e2b565b6020830152505092915050565b5f6020808385031215614f1d575f80fd5b82516001600160401b0380821115614f33575f80fd5b818501915085601f830112614f46575f80fd5b8151614f54614cc482614c83565b81815260059190911b83018401908481019088831115614f72575f80fd5b8585015b83811015614fa857805185811115614f8c575f80fd5b614f9a8b89838a0101614e96565b845250918601918601614f76565b5098975050505050505050565b60018060a01b03851681525f6020608060208401525f86545f60018260011c91506001831680614fe657607f831692505b60208310810361500457634e487b7160e01b5f52602260045260245ffd5b6080880183905260a08801818015615023576001811461503957615062565b60ff198616825284151560051b82019650615062565b5f8d8152602090205f5b8681101561505c57815484820152908501908901615043565b83019750505b50505050505061507b604085018764ffffffffff169052565b838103606085015261508d818661491a565b98975050505050505050565b5f80604083850312156150aa575f80fd5b82516001600160401b03808211156150c0575f80fd5b6150cc86838701614ca5565b935060208501519150808211156150e1575f80fd5b506150ee85828601614e2b565b9150509250929050565b8082018082111561091f5761091f614bda565b8181038181111561091f5761091f614bda565b6001600160a01b03851681526080602082018190525f906151419083018661491a565b64ffffffffff8516604084015282810360608401526128dd818561491a565b6001600160a01b03831681526040602082018190525f906114069083018461491a565b6020808252601190820152702132b0b7103737ba1034b7102bb2b6361760791b604082015260600190565b5f602082840312156151be575f80fd5b81516001600160401b038111156151d3575f80fd5b61140684828501614e96565b5f815180845260208085019450602084015f5b8381101561520e578151875295820195908201906001016151f2565b509495945050505050565b608081525f61522b60808301876151df565b856020840152828103604084015261524381866151df565b905082810360608401526128dd818561491a565b5f6001600160ff1b018201614c3257614c32614bda565b5f600160ff1b820161528257615282614bda565b505f190190565b5f60208284031215615299575f80fd5b815160ff81168114610cb7575f80fd5b600181815b80851115613f3257815f19048211156152c9576152c9614bda565b808516156152d657918102915b93841c93908002906152ae565b5f826152f15750600161091f565b816152fd57505f61091f565b8160018114615313576002811461531d57615339565b600191505061091f565b60ff84111561532e5761532e614bda565b50506001821b61091f565b5060208310610133831016604e8410600b841016171561535c575081810a61091f565b61536683836152a9565b805f190482111561537957615379614bda565b029392505050565b5f610cb760ff8416836152e3565b8181035f831280158383131683831282161715610c6257610c62614bda565b5f602082840312156153be575f80fd5b8151610cb78161485b565b5f610cb783836152e3565b5f6153df8285614dcb565b92151560f81b83525050600101919050565b838152826020820152606060408201525f6108d7606083018461491a565b80516001600160501b0381168114610c14575f80fd5b5f805f805f60a08688031215615439575f80fd5b6154428661540f565b94506020860151935060408601519250606086015191506154656080870161540f565b90509295509295909350565b6001600160501b03828116828216039080821115610c6257610c62614bda565b602080825282518282018190525f9190848201906040850190845b818110156154ce57835163ffffffff16835292840192918401916001016154ac565b50909695505050505050565b5f82601f8301126154e9575f80fd5b815160206154f9614cc483614c83565b8083825260208201915060208460051b87010193508684111561551a575f80fd5b602086015b84811015614d065780516155328161485b565b835291830191830161551f565b5f8060408385031215615550575f80fd5b82516001600160401b0380821115615566575f80fd5b818501915085601f830112615579575f80fd5b81516020615589614cc483614c83565b82815260059290921b840181019181810190898411156155a7575f80fd5b948201945b838610156155d35785518060060b81146155c4575f80fd5b825294820194908201906155ac565b918801519196509093505050808211156155eb575f80fd5b506150ee858286016154da565b600682810b9082900b03667fffffffffffff198112667fffffffffffff8213171561091f5761091f614bda565b5f8160060b8360060b8061563b5761563b614e04565b667fffffffffffff1982145f198214161561565857615658614bda565b90059392505050565b5f8260060b8061567357615673614e04565b808360060b0791505092915050565b5f8160020b627fffff19810361569a5761569a614bda565b5f19019291505056fea264697066735822122066cd5a9b8d6f4acb4785eb9b3c038773a5b6bb854a5802e4150aa61e99c9579564736f6c63430008190033