0 txs
0 calls
constructor
constructor((address hedgeRebalancer, address nftPosMgr, address router, address mathLib, address gvFactory, address helperLib, address feeModel) params)
functions
calculateLPTokensToReserve
viewfunction calculateLPTokensToReserve(tuple params) view returns (int256)
canReserveLPTokens
viewfunction canReserveLPTokens(address gsPool, uint256 lpTokensToReserve, uint256 maxBorrowReservePct) view returns (bool)
feeModel
viewfunction feeModel() view returns (address)
getCollateral
viewfunction getCollateral(address cfmm, address lpPool, int24 tickLower, int24 tickUpper, uint256 totalLiquidity) view returns (uint256 collateral)
gvFactory
viewfunction gvFactory() view returns (address)
hedgeRebalancer
viewfunction hedgeRebalancer() view returns (address)
helperLib
viewfunction helperLib() view returns (address)
mathLib
viewfunction mathLib() view returns (address)
nftPosMgr
viewfunction nftPosMgr() view returns (address)
router
viewfunction router() view returns (address)
netDepositsAndWithdrawals
nonpayablefunction netDepositsAndWithdrawals() returns (uint8)
reserveLPTokens
nonpayablefunction reserveLPTokens() returns (int256 lpTokens)
events
DepositCount
event DepositCount(address indexed vault, uint256 count)
ReserveLPTokens
event ReserveLPTokens(address indexed pool, uint256 lpTokens, bool isDeposit)
TotalNetFees
event TotalNetFees(address indexed vault, uint256 _fees0, uint256 _fees1, uint64 _poolShare, uint16 _protocolShare)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
CastOverflow
error CastOverflow()
ExcessiveBurn
error ExcessiveBurn()
Expired
error Expired()
Forbidden
error Forbidden()
InvalidAssetToken
error InvalidAssetToken()
InvalidHedgeSize
error InvalidHedgeSize()
InvalidPath
error InvalidPath(uint8 id)
InvalidRatio
error InvalidRatio(uint8 typ)
Locked
error Locked()
LPTokenReserveLimit
error LPTokenReserveLimit()
MaxTick
error MaxTick()
PositionDetails
error PositionDetails()
StalePriceError
error StalePriceError(uint8 typ)
TotalLiquidity
error TotalLiquidity()
ZeroAddress
error ZeroAddress()
ZeroAmount
error ZeroAmount()
ZeroHedgeLiquidity
error ZeroHedgeLiquidity()
creation bytecode
0x6101606040523480156200001257600080fd5b506040516200303a3803806200303a8339810160408190526200003591620000a8565b60408101516001600160a01b0390811660809081528251821660c09081526020840151831660e052606084015183166101005290830151821660a090815283015182166101205290910151166101405262000175565b80516001600160a01b0381168114620000a357600080fd5b919050565b600060e08284031215620000bb57600080fd5b60405160e081016001600160401b0381118282101715620000ec57634e487b7160e01b600052604160045260246000fd5b604052620000fa836200008b565b81526200010a602084016200008b565b60208201526200011d604084016200008b565b604082015262000130606084016200008b565b606082015262000143608084016200008b565b60808201526200015660a084016200008b565b60a08201526200016960c084016200008b565b60c08201529392505050565b60805160a05160c05160e051610100516101205161014051612e56620001e4600039600061018b015260006101e80152600081816101640152818161034401528181610a5701526110990152600061023e0152600061013d0152600060fe015260006102170152612e566000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639f0477ec116100715780639f0477ec146101ad578063bbc0b019146101d0578063cb941d06146101e3578063f38668561461020a578063f887ea4014610212578063f9f1c9c41461023957600080fd5b80633777283a146100b95780635e8affd3146100d8578063622f18f8146100f95780637a3b3fbe1461013857806389cdfb8f1461015f57806397ee114414610186575b600080fd5b6100c1610260565b60405160ff90911681526020015b60405180910390f35b6100eb6100e636600461255a565b610909565b6040519081526020016100cf565b6101207f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100cf565b6101207f000000000000000000000000000000000000000000000000000000000000000081565b6101207f000000000000000000000000000000000000000000000000000000000000000081565b6101207f000000000000000000000000000000000000000000000000000000000000000081565b6101c06101bb3660046125be565b610a88565b60405190151581526020016100cf565b6100eb6101de36600461277f565b610bac565b6101207f000000000000000000000000000000000000000000000000000000000000000081565b6100eb610ca9565b6101207f000000000000000000000000000000000000000000000000000000000000000081565b6101207f000000000000000000000000000000000000000000000000000000000000000081565b60408051610100810182526009546001600160a01b039081168252600a5481166020830152600e549282019290925260006060820181905260808201819052600654600160601b900460ff16151560a083015260085490921660c0820152815460e08201526102cf6001611033565b506060820190815260408051636ff55f8560e01b815283516001600160a01b039081166004830152602085015181166024830152918401516044820152915160648301526080830151608483015260a0830151151560a483015260c0830151811660c483015260e083015160e48301526000917f000000000000000000000000000000000000000000000000000000000000000090911690636ff55f85906101040161014060405180830381865afa15801561038f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b39190612862565b905060006103bf61111b565b905080826000015111156105875780826040015111156104b557600a5460095460405163b8b94db960e01b81526001600160a01b039182166004820152600019602482015291169063b8b94db990604401600060405180830381600087803b15801561042a57600080fd5b505af115801561043e573d6000803e3d6000fd5b5050600954600a54604086810151905163b8b94db960e01b81526001600160a01b03928316600482015260248101919091529116925063b8b94db99150604401600060405180830381600087803b15801561049857600080fd5b505af11580156104ac573d6000803e3d6000fd5b5050505061051f565b600a5460095460405163b8b94db960e01b81526001600160a01b039182166004820152600019602482015291169063b8b94db990604401600060405180830381600087803b15801561050657600080fd5b505af115801561051a573d6000803e3d6000fd5b505050505b600a5460408051636eee909960e11b815290516001600160a01b039092169163dddd21329160048082019260009290919082900301818387803b15801561056557600080fd5b505af1158015610579573d6000803e3d6000fd5b505050506001935050505090565b808260a0015111156107715760008360400151846060015184606001516105ae91906128f7565b6105b89190612924565b90508181111561069e57600954600a5460405163b8b94db960e01b81526001600160a01b039182166004820152600019602482015291169063b8b94db990604401600060405180830381600087803b15801561061357600080fd5b505af1158015610627573d6000803e3d6000fd5b5050600a54600954606087015160405163b8b94db960e01b81526001600160a01b03928316600482015260248101919091529116925063b8b94db99150604401600060405180830381600087803b15801561068157600080fd5b505af1158015610695573d6000803e3d6000fd5b50505050610708565b600954600a5460405163b8b94db960e01b81526001600160a01b039182166004820152600019602482015291169063b8b94db990604401600060405180830381600087803b1580156106ef57600080fd5b505af1158015610703573d6000803e3d6000fd5b505050505b60095460408051636eee909960e11b815290516001600160a01b039092169163dddd21329160048082019260009290919082900301818387803b15801561074e57600080fd5b505af1158015610762573d6000803e3d6000fd5b50505050600294505050505090565b600a5460095460405163b8b94db960e01b81526001600160a01b039182166004820152600019602482015291169063b8b94db990604401600060405180830381600087803b1580156107c257600080fd5b505af11580156107d6573d6000803e3d6000fd5b5050600954600a5460405163b8b94db960e01b81526001600160a01b03918216600482015260001960248201529116925063b8b94db99150604401600060405180830381600087803b15801561082b57600080fd5b505af115801561083f573d6000803e3d6000fd5b5050600a5460408051636eee909960e11b815290516001600160a01b03909216935063dddd2132925060048082019260009290919082900301818387803b15801561088957600080fd5b505af115801561089d573d6000803e3d6000fd5b505060095460408051636eee909960e11b815290516001600160a01b03909216935063dddd2132925060048082019260009290919082900301818387803b1580156108e757600080fd5b505af11580156108fb573d6000803e3d6000fd5b505050506000935050505090565b600080856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa15801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e919061294a565b5050505050509050600080600080610998856109898b61115e565b6109928b61115e565b8a61148a565b915091508193508092505050610a7b898383610a148c6001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0f91906129dc565b611526565b610a558d6001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109eb573d6000803e3d6000fd5b7f00000000000000000000000000000000000000000000000000000000000000006115dd565b9998505050505050505050565b6000806000856001600160a01b03166352375bb16040518163ffffffff1660e01b8152600401600060405180830381865afa158015610acb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af39190810190612a1c565b505050925092505060006064858385610b0c9190612af6565b610b1691906128f7565b610b209190612924565b90506000876001600160a01b031663ad451a9d6040518163ffffffff1660e01b81526004016040805180830381865afa158015610b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b859190612b09565b915082905087610b958386612af6565b610b9f9190612af6565b1098975050505050505050565b600080600083610160015160800151610bcd8561016001516000015161168f565b610bd79190612af6565b90506000846101200151610bea57506000905b610c2082828760200151886040015189606001518a60e001516001600160401b03168b61010001516001600160401b0316611767565b925050508260c00151600003610c395750600092915050565b6000670de0b6b3a76400008460c0015183610c5491906128f7565b610c5e9190612924565b90506064610c7385610140015160ff166117bd565b610c7d90836128f7565b610c879190612924565b610c919082612af6565b9050610ca18460000151826117e6565b949350505050565b6000806000610cb86000611033565b6040805161018081018252600b546001600160a01b03908116825283166020820152600654939550919350610e219290820190610cfd9062010000900460020b61115e565b6001600160a01b03168152600654602090910190610d269065010000000000900460020b61115e565b6001600160a01b0390811682526003546001600160801b03808216602080860191909152600160801b928390049091166040808601919091526007546001600160401b03600160a01b90910481166060808801919091526006549485048216608080890191909152600160c01b860490921660a08089019190915260ff600160601b87048116151560c0808b01829052600160681b90980490911660e0808b0191909152855161010081810188526009548b168252600a548b1698820198909852600e54968101969096529285018d905260009385018490529084015260085490951693820193909352915492820192909252910152610bac565b925050506000808212159081610e3f57610e3a83612b2d565b610e41565b825b600854600080549293506001600160a01b039091169190819003610edf576008546040516397b48f1560e01b8152600160e01b90910461ffff1660048201526001600160a01b038316906397b48f15906024016020604051808303816000875af1158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed79190612b49565b600081905590505b600254610eed90848661189f565b945092508215610fe7578315610f5457600654610f179083908590600160681b900460ff16610a88565b610f3457604051638d4f706560e01b815260040160405180910390fd5b8260006002016000828254610f499190612af6565b90915550610f6b9050565b600254610f6181856118d9565b9081900360025592505b604051633f9a10cd60e21b8152600481018290526024810184905284151560448201526001600160a01b0383169063fe684334906064016020604051808303816000875af1158015610fc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe59190612b49565b505b6040805184815285151560208201526001600160a01b038416917ff1937930de0bea82fa06c488e5a815a36a726f7fcbeb2c3e5db6c42bda0ed91d910160405180910390a25050505090565b60008061103e6118ef565b60065490915060009061106b906001600160a01b03841690600160801b90046001600160401b0316611969565b60405163b4c2c92360e01b8152306004820152602481018290526000604482015285151560648201529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b4c2c9239060840160a060405180830381865afa1580156110e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110c9190612b62565b50929794965093945050505050565b600654600090600160601b900460ff16156111475750600454600160801b90046001600160401b031690565b50600454600160c01b90046001600160401b031690565b60008060008360020b12611175578260020b611182565b8260020b61118290612b2d565b9050611191620d89e719612baf565b62ffffff168111156111b65760405163d63f4fb360e01b815260040160405180910390fd5b6000816001166000036111cd57600160801b6111df565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615611209576ffff97272373d413259a46990580e213a0260801c5b6004821615611228576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611247576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611266576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611285576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156112a4576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156112c3576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156112e3576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611303576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611323576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611343576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611363576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611383576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156113a3576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156113c3576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156113e4576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611404576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611423576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611440576b048a170391f7dc42444e8fa20260801c5b60008460020b131561146157806000198161145d5761145d61290e565b0490505b640100000000810615611475576001611478565b60005b60ff16602082901c0192505050919050565b600080836001600160a01b0316856001600160a01b031611156114ab579293925b846001600160a01b0316866001600160a01b0316116114d6576114cf858585611982565b915061151d565b836001600160a01b0316866001600160a01b0316101561150f576114fb868585611982565b91506115088587856119f5565b905061151d565b61151a8585856119f5565b90505b94509492505050565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b1790529051600091829182916001600160a01b0386169161156c9190612bd1565b600060405180830381855afa9150503d80600081146115a7576040519150601f19603f3d011682016040523d82523d6000602084013e6115ac565b606091505b50915091508180156115c057506001815110155b6115c957600080fd5b80806020019051810190610ca19190612c00565b6000806000886001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116449190612c34565b506001600160701b031691506001600160701b03169150600061166f898985858b8b8b6126f2611a3f565b905061167f818a8a86868a611c73565b93505050505b9695505050505050565b600080826001600160a01b031663ef78d4fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f49190612b49565b604051633b0a781560e11b8152600481018290529091506001600160a01b03841690637614f02a90602401602060405180830381865afa15801561173c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117609190612b49565b9392505050565b600087158015611775575086155b15611782575060006117b2565b61179188888888888888611dcc565b5091995097506117a690508686868b8b611e46565b6001600160801b031690505b979650505050505050565b60006117ca600a83612c84565b6117d59060056128f7565b6117e090600a612af6565b92915050565b6000806000846001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184d9190612c34565b506001600160701b039182169350169050600061187b61186d8385612c98565b6001600160801b0316611f0a565b9050600061188887611f9f565b90508161189582886128f7565b6117b29190612924565b600080600083156118c857858511156118bb57508484036118cb565b50600092508385036118cb565b50845b91508290505b935093915050565b60008183106118e85781611760565b5090919050565b60075460408051633850c7bd60e01b815290516000926001600160a01b031691633850c7bd9160048083019260e09291908290030181865afa158015611939573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195d919061294a565b50949695505050505050565b6000806119768484612056565b9050610ca181806128f7565b6000826001600160a01b0316846001600160a01b031611156119a2579192915b6001600160a01b0384166119eb6fffffffffffffffffffffffffffffffff60601b606085901b166119d38787612cc3565b6001600160a01b0316866001600160a01b031661207a565b610ca19190612924565b6000826001600160a01b0316846001600160a01b03161115611a15579192915b610ca16001600160801b038316611a2c8686612cc3565b6001600160a01b0316600160601b61207a565b60408051600280825260608083018452926020830190803683370190505090506000611a918a6001600160801b03168a6001600160801b03168a6001600160801b03168a6001600160801b03166120de565b60ff16905080600103611b8057604051600162d7fbdd60e01b031981526001600160a01b0385169063ff28042390611adb908d908d908d908d908a90612710908f90600401612cea565b600060405180830381865afa158015611af8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b209190810190612d34565b915081600181518110611b3557611b35612db9565b6020026020010151600083600081518110611b5257611b52612db9565b6020026020010184600181518110611b6c57611b6c612db9565b602090810291909101019190915252611c66565b80600203611c6657604051600162d7fbdd60e01b031981526001600160a01b0385169063ff28042390611bc5908c908e908c908e908a90612710908e90600401612cea565b600060405180830381865afa158015611be2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c0a9190810190612d34565b9150600082600181518110611c2157611c21612db9565b602002602001015183600081518110611c3c57611c3c612db9565b6020026020010184600181518110611c5657611c56612db9565b6020908102919091010191909152525b5098975050505050505050565b60008087600081518110611c8957611c89612db9565b60200260200101511315611d3557816001600160a01b031663a4a299c288600081518110611cb957611cb9612db9565b6020026020010151888888886126f26127106040518863ffffffff1660e01b8152600401611ced9796959493929190612dcf565b602060405180830381865afa158015611d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2e9190612b49565b9050611685565b600087600181518110611d4a57611d4a612db9565b60200260200101511315611dae57816001600160a01b031663a4a299c288600181518110611d7a57611d7a612db9565b6020026020010151878987896126f26127106040518863ffffffff1660e01b8152600401611ced9796959493929190612dcf565b6117b2611dc76001600160801b038088169089166128f7565b611f0a565b60008080808a158015611ddd575089155b15611df357506000925082915081905080611e38565b600080611e038b8b8b8b8b61212e565b915091506000611e1c8c6001600160a01b03168a611969565b9050611e2c8e8e8585858e6121a9565b96509650965096505050505b975097509750979350505050565b6000836001600160a01b0316856001600160a01b03161115611e66579293925b846001600160a01b0316866001600160a01b031611611e9157611e8a8585856121ea565b9050611f01565b836001600160a01b0316866001600160a01b03161015611ef3576000611eb88786866121ea565b90506000611ec7878986612254565b9050806001600160801b0316826001600160801b031610611ee85780611eea565b815b92505050611f01565b611efe858584612254565b90505b95945050505050565b600081600003611f1c57506000919050565b506001600160881b03811160071b81811c68ffffffffffffffffff1060061b1781811c64ffffffffff1060051b1781811c62ffffff1060041b1781811c620100000160b5600192831c1b0260121c80830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900390565b60408051600481526024810182526020810180516001600160e01b03166318160ddd60e01b1790529051600091829182916001600160a01b03861691611fe59190612bd1565b600060405180830381855afa9150503d8060008114612020576040519150601f19603f3d011682016040523d82523d6000602084013e612025565b606091505b509150915081801561203957506020815110155b61204257600080fd5b80806020019051810190610ca19190612b49565b6000600160601b61206683611f0a565b61207090856128f7565b6117609190612924565b600080600061208a86868661228a565b91509150806000146120d55760405162461bcd60e51b815260206004820152600f60248201526e4d554c4449565f4f564552464c4f5760881b60448201526064015b60405180910390fd5b50949350505050565b6000806120eb85856128f7565b905060006120f987856128f7565b90508082111561210e57600192505050610ca1565b8082101561212157600292505050610ca1565b5060009695505050505050565b600080856001600160a01b0316876001600160a01b031610156121565750829050600061219f565b846001600160a01b0316876001600160a01b0316111561217b5750600090508161219f565b600061218a611dc785876128f7565b90506121988888888461148a565b9093509150505b9550959350505050565b6000806000806121bd8a8a8a8a8a8a612304565b9094509250838a11156121d057838a0391505b828911156121dd57508188035b9650965096509692505050565b6000826001600160a01b0316846001600160a01b0316111561220a579192915b600061222d856001600160a01b0316856001600160a01b0316600160601b61207a565b9050611f0161224f84836122418989612cc3565b6001600160a01b031661207a565b61240c565b6000826001600160a01b0316846001600160a01b03161115612274579192915b610ca161224f83600160601b6122418888612cc3565b600080826000036122d35760405162461bcd60e51b815260206004820152601360248201527226aaa62224ab2fad22a927afa224ab24a9a7a960691b60448201526064016120cc565b6000806000198688098688029250828110838203039150506122f682828761243b565b909890975095505050505050565b60008080612312868a6128f7565b90506000612320888a6128f7565b905080821115612396576123348183612e0d565b91508685612342888b6128f7565b61234c9190612924565b6123569190612af6565b90506123628183612924565b915061236e828b612e0d565b99508461237b87846128f7565b6123859190612924565b61238f908a612af6565b98506123fe565b6123a08282612e0d565b915086856123ae888b6128f7565b6123b89190612924565b6123c29190612af6565b90506123ce8183612924565b91506123da828b612af6565b9950846123e787846128f7565b6123f19190612924565b6123fb908a612e0d565b98505b509798969750505050505050565b806001600160801b038116811461243657604051631cb1a8e360e31b815260040160405180910390fd5b919050565b600080826000036124815760405162461bcd60e51b815260206004820152601060248201526f4449564953494f4e5f42595f5a45524f60801b60448201526064016120cc565b8360000361249e576124938386612924565b6000915091506118d1565b826001036124b05750839050826118d1565b6000838103848104600101919085900690805b8715612514576000198489098489028781019788108183108284030397880101969093509150600019848a0990508389029250828110838203039150508882019850818910600082010197506124c3565b505050509190930483019392841001919050565b6001600160a01b038116811461253d57600080fd5b50565b803561243681612528565b8060020b811461253d57600080fd5b600080600080600060a0868803121561257257600080fd5b853561257d81612528565b9450602086013561258d81612528565b9350604086013561259d8161254b565b925060608601356125ad8161254b565b949793965091946080013592915050565b6000806000606084860312156125d357600080fd5b83356125de81612528565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b038111828210171561262c5761262c6125f3565b60405290565b60405161014081016001600160401b038111828210171561262c5761262c6125f3565b604051601f8201601f191681016001600160401b038111828210171561267d5761267d6125f3565b604052919050565b80356001600160401b038116811461243657600080fd5b801515811461253d57600080fd5b80356124368161269c565b60ff8116811461253d57600080fd5b8035612436816126b5565b60006101008083850312156126e357600080fd5b604051908101906001600160401b0382118183101715612705576127056125f3565b816040528092508335915061271982612528565b81815261272860208501612540565b602082015260408401356040820152606084013560608201526080840135608082015261275760a085016126aa565b60a082015261276860c08501612540565b60c082015260e084013560e0820152505092915050565b6000610260828403121561279257600080fd5b61279a612609565b6127a383612540565b81526127b160208401612540565b60208201526127c260408401612540565b60408201526127d360608401612540565b60608201526080830135608082015260a083013560a082015260c083013560c082015261280260e08401612685565b60e0820152610100612815818501612685565b908201526101206128278482016126aa565b908201526101406128398482016126c4565b9082015261016061284c858583016126cf565b908201529392505050565b8051612436816126b5565b6000610140828403121561287557600080fd5b61287d612632565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e082015261010080840151818301525061012061284c818501612857565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176117e0576117e06128e1565b634e487b7160e01b600052601260045260246000fd5b6000826129335761293361290e565b500490565b805161ffff8116811461243657600080fd5b600080600080600080600060e0888a03121561296557600080fd5b875161297081612528565b60208901519097506129818161254b565b955061298f60408901612938565b945061299d60608901612938565b93506129ab60808901612938565b925060a08801516129bb816126b5565b60c08901519092506129cc8161269c565b8091505092959891949750929550565b6000602082840312156129ee57600080fd5b815161176081612528565b60006001600160401b03821115612a1257612a126125f3565b5060051b60200190565b60008060008060008060c08789031215612a3557600080fd5b86516001600160401b03811115612a4b57600080fd5b8701601f81018913612a5c57600080fd5b80516020612a71612a6c836129f9565b612655565b82815260059290921b8301810191818101908c841115612a9057600080fd5b938201935b83851015612ac45784516001600160801b0381168114612ab55760008081fd5b82529382019390820190612a95565b918b015160408c015160608d015160808e015160a0909e0151949f929e50909c909b5099509197509095505050505050565b808201808211156117e0576117e06128e1565b60008060408385031215612b1c57600080fd5b505080516020909101519092909150565b6000600160ff1b8201612b4257612b426128e1565b5060000390565b600060208284031215612b5b57600080fd5b5051919050565b600080600080600060a08688031215612b7a57600080fd5b855194506020860151935060408601519250606086015191506080860151612ba18161269c565b809150509295509295909350565b60008160020b627fffff198103612bc857612bc86128e1565b60000392915050565b6000825160005b81811015612bf25760208186018101518583015201612bd8565b506000920191825250919050565b600060208284031215612c1257600080fd5b8151611760816126b5565b80516001600160701b038116811461243657600080fd5b600080600060608486031215612c4957600080fd5b612c5284612c1d565b9250612c6060208501612c1d565b9150604084015163ffffffff81168114612c7957600080fd5b809150509250925092565b600082612c9357612c9361290e565b500690565b6001600160801b03818116838216028082169190828114612cbb57612cbb6128e1565b505092915050565b6001600160a01b03828116828216039080821115612ce357612ce36128e1565b5092915050565b6001600160801b0397881681529587166020870152938616604086015291909416606084015262ffffff909316608083015260a082019290925260ff90911660c082015260e00190565b60006020808385031215612d4757600080fd5b82516001600160401b03811115612d5d57600080fd5b8301601f81018513612d6e57600080fd5b8051612d7c612a6c826129f9565b81815260059190911b82018301908381019087831115612d9b57600080fd5b928401925b828410156117b257835182529284019290840190612da0565b634e487b7160e01b600052603260045260246000fd5b9687526001600160801b03958616602088015293851660408701529184166060860152909216608084015260a083019190915260c082015260e00190565b818103818111156117e0576117e06128e156fea26469706673582212208dc2d3af971fd1eb0434eacecf18abe7a0dfff1d79b4d94ce368686ac170dd2964736f6c63430008150033000000000000000000000000bcd8a78a74ced322a15b12a38800b904cdf5d649000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000004689903fbbd2b49b872cf1f315bf60d2eb83169800000000000000000000000022801e12ff90e8c9dc6c17e0fa21ed42a2d41f430000000000000000000000003e9955c6c6aa6af4f72cfaa7e9b7573f7ac25429000000000000000000000000e80bca82ba6106c190d9f74ef5fb20c8f6afca3f000000000000000000000000984bf792dc72048e38e9cac6f34dbb1361aca06a